mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-18 16:22:14 +00:00
Fixed issue when after deleting user, the related subscription wasn't deleted
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Domain\Admin;
|
||||
|
||||
use Storage;
|
||||
@@ -11,6 +12,7 @@ use Domain\Sharing\Models\Share;
|
||||
use Domain\Folders\Models\Folder;
|
||||
use Illuminate\Http\UploadedFile;
|
||||
use App\Users\Notifications\ResetPassword;
|
||||
use VueFileManager\Subscription\Domain\Subscriptions\Models\Subscription;
|
||||
|
||||
class AdminTest extends TestCase
|
||||
{
|
||||
@@ -44,8 +46,7 @@ class AdminTest extends TestCase
|
||||
->create(['role' => 'admin']);
|
||||
|
||||
$users->each(
|
||||
fn ($user) =>
|
||||
$this
|
||||
fn($user) => $this
|
||||
->actingAs($admin)
|
||||
->getJson('/api/admin/users?page=1')
|
||||
->assertStatus(200)
|
||||
@@ -169,7 +170,7 @@ class AdminTest extends TestCase
|
||||
])->assertStatus(200);
|
||||
|
||||
$this->assertDatabaseHas('user_settings', [
|
||||
'user_id' => $user->id,
|
||||
'user_id' => $user->id,
|
||||
])->assertDatabaseHas('user_limitations', [
|
||||
'max_storage_amount' => 10,
|
||||
]);
|
||||
@@ -214,13 +215,13 @@ class AdminTest extends TestCase
|
||||
$this
|
||||
->actingAs($admin)
|
||||
->postJson('/api/admin/users', [
|
||||
'name' => 'John Doe',
|
||||
'role' => 'user',
|
||||
'email' => 'john@doe.com',
|
||||
'password' => 'VerySecretPassword',
|
||||
'max_storage_amount' => 15,
|
||||
'password_confirmation' => 'VerySecretPassword',
|
||||
'avatar' => $avatar,
|
||||
'name' => 'John Doe',
|
||||
'role' => 'user',
|
||||
'email' => 'john@doe.com',
|
||||
'password' => 'VerySecretPassword',
|
||||
'max_storage_amount' => 15,
|
||||
'password_confirmation' => 'VerySecretPassword',
|
||||
'avatar' => $avatar,
|
||||
])->assertStatus(201);
|
||||
|
||||
$this->assertDatabaseHas('users', [
|
||||
@@ -235,7 +236,10 @@ class AdminTest extends TestCase
|
||||
'last_name' => 'Doe',
|
||||
]);
|
||||
|
||||
$avatar = User::whereEmail('john@doe.com')->first()->settings->getRawOriginal('avatar');
|
||||
$avatar = User::where('email', 'john@doe.com')
|
||||
->first()
|
||||
->settings
|
||||
->getRawOriginal('avatar');
|
||||
|
||||
collect(config('vuefilemanager.avatar_sizes'))
|
||||
->each(
|
||||
@@ -257,6 +261,15 @@ class AdminTest extends TestCase
|
||||
|
||||
Sanctum::actingAs($user);
|
||||
|
||||
// Create subscription
|
||||
Subscription::factory()
|
||||
->hasDriver()
|
||||
->create([
|
||||
'user_id' => $user->id,
|
||||
'type' => 'pre-paid',
|
||||
'status' => 'active',
|
||||
]);
|
||||
|
||||
// Create folders
|
||||
$folders = Folder::factory()
|
||||
->count(2)
|
||||
@@ -279,10 +292,10 @@ class AdminTest extends TestCase
|
||||
->create("fake-file-$index.pdf", 1200, 'application/pdf');
|
||||
|
||||
$this->postJson('/api/upload/chunks', [
|
||||
'name' => $file->name,
|
||||
'extension' => 'pdf',
|
||||
'chunk' => $file,
|
||||
'is_last_chunk' => 1,
|
||||
'name' => $file->name,
|
||||
'extension' => 'pdf',
|
||||
'chunk' => $file,
|
||||
'is_last_chunk' => 1,
|
||||
])->assertStatus(201);
|
||||
});
|
||||
|
||||
@@ -304,33 +317,33 @@ class AdminTest extends TestCase
|
||||
$admin = User::factory()
|
||||
->create(['role' => 'admin']);
|
||||
|
||||
Sanctum::actingAs($admin);
|
||||
|
||||
// Delete user
|
||||
$this->deleteJson("/api/admin/users/$user->id/delete", [
|
||||
'name' => $user->settings->name,
|
||||
])
|
||||
$this
|
||||
->actingAs($admin)
|
||||
->deleteJson("/api/admin/users/$user->id", [
|
||||
'name' => $user->settings->name,
|
||||
])
|
||||
->assertStatus(200);
|
||||
|
||||
$this->assertDatabaseMissing('user_settings', [
|
||||
'user_id' => $user->id,
|
||||
]);
|
||||
|
||||
$this->assertDatabaseMissing('folders', [
|
||||
'user_id' => $user->id,
|
||||
]);
|
||||
|
||||
$this->assertDatabaseMissing('shares', [
|
||||
'user_id' => $user->id,
|
||||
]);
|
||||
|
||||
$this->assertDatabaseMissing('favourite_folder', [
|
||||
'user_id' => $user->id,
|
||||
]);
|
||||
|
||||
$this->assertDatabaseMissing('files', [
|
||||
'user_id' => $user->id,
|
||||
]);
|
||||
$this
|
||||
->assertDatabaseMissing('subscriptions', [
|
||||
'user_id' => $user->id,
|
||||
])
|
||||
->assertDatabaseMissing('user_settings', [
|
||||
'user_id' => $user->id,
|
||||
])
|
||||
->assertDatabaseMissing('folders', [
|
||||
'user_id' => $user->id,
|
||||
])
|
||||
->assertDatabaseMissing('shares', [
|
||||
'user_id' => $user->id,
|
||||
])
|
||||
->assertDatabaseMissing('favourite_folder', [
|
||||
'user_id' => $user->id,
|
||||
])
|
||||
->assertDatabaseMissing('files', [
|
||||
'user_id' => $user->id,
|
||||
]);
|
||||
|
||||
$file_ids
|
||||
->each(function ($id, $index) use ($user) {
|
||||
@@ -346,6 +359,6 @@ class AdminTest extends TestCase
|
||||
});
|
||||
|
||||
Storage::disk('local')
|
||||
->assertMissing($user->settings->getRawOriginal('avatar'));
|
||||
->assertMissing($user->settings->avatar);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user