1
0
mirror of https://github.com/BookStackApp/BookStack.git synced 2024-10-29 23:22:34 +01:00

Cleanup Command: Allowed running non-interactively

For #4541
This commit is contained in:
Dan Brown 2023-09-14 14:17:20 +01:00
parent 417705651c
commit dfaf6f7c13
No known key found for this signature in database
GPG Key ID: 46D9F943C24A2EF9
2 changed files with 20 additions and 6 deletions

View File

@ -35,7 +35,7 @@ class CleanupImagesCommand extends Command
if (!$dryRun) {
$this->warn("This operation is destructive and is not guaranteed to be fully accurate.\nEnsure you have a backup of your images.\n");
$proceed = $this->confirm("Are you sure you want to proceed?");
$proceed = !$this->input->isInteractive() || $this->confirm("Are you sure you want to proceed?");
if (!$proceed) {
return 0;
}
@ -46,7 +46,7 @@ class CleanupImagesCommand extends Command
if ($dryRun) {
$this->comment('Dry run, no images have been deleted');
$this->comment($deleteCount . ' images found that would have been deleted');
$this->comment($deleteCount . ' image(s) found that would have been deleted');
$this->showDeletedImages($deleted);
$this->comment('Run with -f or --force to perform deletions');
@ -54,7 +54,8 @@ class CleanupImagesCommand extends Command
}
$this->showDeletedImages($deleted);
$this->comment($deleteCount . ' images deleted');
$this->comment("{$deleteCount} image(s) deleted");
return 0;
}
@ -65,7 +66,7 @@ class CleanupImagesCommand extends Command
}
if (count($paths) > 0) {
$this->line('Images to delete:');
$this->line('Image(s) to delete:');
}
foreach ($paths as $path) {

View File

@ -14,7 +14,7 @@ class CleanupImagesCommandTest extends TestCase
$this->artisan('bookstack:cleanup-images -v')
->expectsOutput('Dry run, no images have been deleted')
->expectsOutput('1 images found that would have been deleted')
->expectsOutput('1 image(s) found that would have been deleted')
->expectsOutputToContain($image->path)
->assertExitCode(0);
@ -29,7 +29,7 @@ class CleanupImagesCommandTest extends TestCase
$this->artisan('bookstack:cleanup-images --force')
->expectsOutputToContain('This operation is destructive and is not guaranteed to be fully accurate')
->expectsConfirmation('Are you sure you want to proceed?', 'yes')
->expectsOutput('1 images deleted')
->expectsOutput('1 image(s) deleted')
->assertExitCode(0);
$this->assertDatabaseMissing('images', ['id' => $image->id]);
@ -46,4 +46,17 @@ class CleanupImagesCommandTest extends TestCase
$this->assertDatabaseHas('images', ['id' => $image->id]);
}
public function test_command_force_no_interaction_run()
{
$page = $this->entities->page();
$image = Image::factory()->create(['uploaded_to' => $page->id]);
$this->artisan('bookstack:cleanup-images --force --no-interaction')
->expectsOutputToContain('This operation is destructive and is not guaranteed to be fully accurate')
->expectsOutput('1 image(s) deleted')
->assertExitCode(0);
$this->assertDatabaseMissing('images', ['id' => $image->id]);
}
}