added it_dump_trash test

This commit is contained in:
Peter Papp
2021-03-01 20:50:48 +01:00
parent b66d47bf2b
commit 9583c22b72
3 changed files with 98 additions and 5 deletions

View File

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

View File

@@ -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

View File

@@ -0,0 +1,91 @@
<?php
namespace Tests\Feature;
use App\Models\File;
use App\Models\Folder;
use App\Models\User;
use App\Services\SetupService;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Http\UploadedFile;
use Laravel\Sanctum\Sanctum;
use Storage;
use Tests\TestCase;
class TrashTest extends TestCase
{
use DatabaseMigrations;
public function __construct()
{
parent::__construct();
$this->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"
);
}
}