mirror of
https://github.com/tiennm99/coolify.git
synced 2026-10-14 20:17:05 +00:00
refactor(backups): centralize storage deletion guard
This commit is contained in:
1 parent
4e03be755d
commit
bf72fd5d88
6 files changed
+38
-21
No files matched your search
@@ -37,6 +37,7 @@ use Illuminate\Support\Facades\Route;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Livewire\Livewire;
|
||||
use Symfony\Component\HttpKernel\Exception\HttpException;
|
||||
|
||||
uses(RefreshDatabase::class);
|
||||
|
||||
@@ -1456,6 +1457,26 @@ it('prevents a volume with tracked backup archives from being deleted', function
|
||||
expect($volume->fresh())->not->toBeNull();
|
||||
});
|
||||
|
||||
it('aborts storage deletion when scheduled backups exist', function () {
|
||||
$team = Team::factory()->create();
|
||||
[$application, $volume] = createVolumeBackupApplication($team);
|
||||
$directory = createApplicationBackupDirectory($application);
|
||||
|
||||
$volume->scheduledBackups()->create([
|
||||
'team_id' => $team->id,
|
||||
'frequency' => 'daily',
|
||||
]);
|
||||
$directory->scheduledBackups()->create([
|
||||
'team_id' => $team->id,
|
||||
'frequency' => 'daily',
|
||||
]);
|
||||
|
||||
expect(fn () => $volume->abortIfScheduledBackupsExist())
|
||||
->toThrow(HttpException::class, 'Delete this volume backup schedule and its archives before deleting the volume.')
|
||||
->and(fn () => $directory->abortIfScheduledBackupsExist())
|
||||
->toThrow(HttpException::class, 'Delete this directory backup schedule and its archives before deleting the directory.');
|
||||
});
|
||||
|
||||
it('deletes disabled volume backup archives before deleting their application', function () {
|
||||
Process::fake();
|
||||
Queue::fake();
|
||||
|
||||
Reference in new issue
Block a user