3 namespace Tests\Commands;
5 use BookStack\Entities\Models\Page;
6 use BookStack\Entities\Repos\PageRepo;
7 use Illuminate\Support\Facades\Artisan;
10 class ClearRevisionsCommandTest extends TestCase
12 public function test_clear_revisions_command()
15 $pageRepo = app(PageRepo::class);
16 $page = Page::first();
17 $pageRepo->update($page, ['name' => 'updated page', 'html' => '<p>new content</p>', 'summary' => 'page revision testing']);
18 $pageRepo->updatePageDraft($page, ['name' => 'updated page', 'html' => '<p>new content in draft</p>', 'summary' => 'page revision testing']);
20 $this->assertDatabaseHas('page_revisions', [
21 'page_id' => $page->id,
24 $this->assertDatabaseHas('page_revisions', [
25 'page_id' => $page->id,
26 'type' => 'update_draft',
29 $exitCode = Artisan::call('bookstack:clear-revisions');
30 $this->assertTrue($exitCode === 0, 'Command executed successfully');
32 $this->assertDatabaseMissing('page_revisions', [
33 'page_id' => $page->id,
36 $this->assertDatabaseHas('page_revisions', [
37 'page_id' => $page->id,
38 'type' => 'update_draft',
41 $exitCode = Artisan::call('bookstack:clear-revisions', ['--all' => true]);
42 $this->assertTrue($exitCode === 0, 'Command executed successfully');
44 $this->assertDatabaseMissing('page_revisions', [
45 'page_id' => $page->id,
46 'type' => 'update_draft',