Fixed issue when after deleting user, the related subscription wasn't deleted

This commit is contained in:
Čarodej
2022-06-22 10:30:39 +02:00
parent aedd6d9120
commit df3303b527
6 changed files with 106 additions and 75 deletions

View File

@@ -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);
}
}