From 9583c22b726e797e288a58119ea8d73858190d35 Mon Sep 17 00:00:00 2001 From: Peter Papp Date: Mon, 1 Mar 2021 20:50:48 +0100 Subject: [PATCH] added it_dump_trash test --- .../FileFunctions/TrashController.php | 10 +- routes/api.php | 2 +- tests/Feature/TrashTest.php | 91 +++++++++++++++++++ 3 files changed, 98 insertions(+), 5 deletions(-) create mode 100644 tests/Feature/TrashTest.php diff --git a/app/Http/Controllers/FileFunctions/TrashController.php b/app/Http/Controllers/FileFunctions/TrashController.php index 3edcdf39..831b6380 100644 --- a/app/Http/Controllers/FileFunctions/TrashController.php +++ b/app/Http/Controllers/FileFunctions/TrashController.php @@ -9,8 +9,8 @@ use Illuminate\Support\Facades\Storage; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Auth; use Illuminate\Http\Request; -use App\Folder; -use App\File; +use App\Models\Folder; +use App\Models\File; class TrashController extends Controller { @@ -39,10 +39,12 @@ class TrashController extends Controller foreach ($files as $file) { // Delete file - Storage::delete('/file-manager/' . $file->basename); + Storage::delete("/files/$user_id/{$file->basename}"); // Delete thumbnail if exist - if ($file->thumbnail) Storage::delete('/file-manager/' . $file->getRawOriginal('thumbnail')); + if ($file->thumbnail) { + Storage::delete("/files/$user_id/{$file->getRawOriginal('thumbnail')}"); + } // Delete file permanently $file->forceDelete(); diff --git a/routes/api.php b/routes/api.php index a986df02..f38655e6 100644 --- a/routes/api.php +++ b/routes/api.php @@ -59,7 +59,7 @@ Route::group(['middleware' => ['auth:sanctum']], function () { // Trash Route::group(['prefix' => 'trash'], function () { Route::post('/restore-items', [TrashController::class, 'restore']); - Route::delete('/empty-trash', [TrashController::class, 'clear']); + Route::delete('/dump', [TrashController::class, 'clear']); }); // Favourites diff --git a/tests/Feature/TrashTest.php b/tests/Feature/TrashTest.php new file mode 100644 index 00000000..24730975 --- /dev/null +++ b/tests/Feature/TrashTest.php @@ -0,0 +1,91 @@ +setup = app()->make(SetupService::class); + } + + /** + * @test + */ + public function it_dump_trash() + { + Storage::fake('local'); + + $this->setup->create_directories(); + + $user = User::factory(User::class) + ->create(); + + Sanctum::actingAs($user); + + $folder = Folder::factory(Folder::class) + ->create([ + 'user_id' => $user->id + ]); + + $image = UploadedFile::fake() + ->image('fake-image.jpg'); + + $this->postJson('/api/upload', [ + 'file' => $image, + 'folder_id' => null, + 'is_last' => true, + ])->assertStatus(201); + + $file = File::first(); + + $this->postJson("/api/remove", [ + 'items' => [ + [ + 'id' => $file->id, + 'type' => 'file', + 'force_delete' => false, + ], + [ + 'id' => $folder->id, + 'type' => 'folder', + 'force_delete' => false, + ], + ], + ])->assertStatus(204); + + $this->deleteJson("/api/trash/dump") + ->assertStatus(204); + + $this->assertDatabaseMissing('files', [ + 'id' => $file->id + ]); + + $this->assertDatabaseMissing('folders', [ + 'id' => $folder->id + ]); + + $disk = Storage::disk('local'); + + $disk->assertMissing( + "files/$user->id/fake-image.jpg" + ); + + $disk->assertMissing( + "files/$user->id/thumbnail-fake-image.jpg" + ); + } +}