1 <?php namespace Tests\Commands;
3 use BookStack\Entities\Models\Page;
4 use BookStack\Entities\Repos\PageRepo;
5 use Illuminate\Support\Facades\Artisan;
8 class ClearRevisionsCommandTest extends TestCase
10 public function test_clear_revisions_command()
13 $pageRepo = app(PageRepo::class);
14 $page = Page::first();
15 $pageRepo->update($page, ['name' => 'updated page', 'html' => '<p>new content</p>', 'summary' => 'page revision testing']);
16 $pageRepo->updatePageDraft($page, ['name' => 'updated page', 'html' => '<p>new content in draft</p>', 'summary' => 'page revision testing']);
18 $this->assertDatabaseHas('page_revisions', [
19 'page_id' => $page->id,
22 $this->assertDatabaseHas('page_revisions', [
23 'page_id' => $page->id,
24 'type' => 'update_draft'
27 $exitCode = Artisan::call('bookstack:clear-revisions');
28 $this->assertTrue($exitCode === 0, 'Command executed successfully');
30 $this->assertDatabaseMissing('page_revisions', [
31 'page_id' => $page->id,
34 $this->assertDatabaseHas('page_revisions', [
35 'page_id' => $page->id,
36 'type' => 'update_draft'
39 $exitCode = Artisan::call('bookstack:clear-revisions', ['--all' => true]);
40 $this->assertTrue($exitCode === 0, 'Command executed successfully');
42 $this->assertDatabaseMissing('page_revisions', [
43 'page_id' => $page->id,
44 'type' => 'update_draft'