]> BookStack Code Mirror - bookstack/blob - tests/Commands/ClearRevisionsCommandTest.php
Merge branch 'master' into docker-tests
[bookstack] / tests / Commands / ClearRevisionsCommandTest.php
1 <?php namespace Tests\Commands;
2
3 use BookStack\Entities\Models\Page;
4 use BookStack\Entities\Repos\PageRepo;
5 use Illuminate\Support\Facades\Artisan;
6 use Tests\TestCase;
7
8 class ClearRevisionsCommandTest extends TestCase
9 {
10     public function test_clear_revisions_command()
11     {
12         $this->asEditor();
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']);
17
18         $this->assertDatabaseHas('page_revisions', [
19             'page_id' => $page->id,
20             'type' => 'version'
21         ]);
22         $this->assertDatabaseHas('page_revisions', [
23             'page_id' => $page->id,
24             'type' => 'update_draft'
25         ]);
26
27         $exitCode = Artisan::call('bookstack:clear-revisions');
28         $this->assertTrue($exitCode === 0, 'Command executed successfully');
29
30         $this->assertDatabaseMissing('page_revisions', [
31             'page_id' => $page->id,
32             'type' => 'version'
33         ]);
34         $this->assertDatabaseHas('page_revisions', [
35             'page_id' => $page->id,
36             'type' => 'update_draft'
37         ]);
38
39         $exitCode = Artisan::call('bookstack:clear-revisions', ['--all' => true]);
40         $this->assertTrue($exitCode === 0, 'Command executed successfully');
41
42         $this->assertDatabaseMissing('page_revisions', [
43             'page_id' => $page->id,
44             'type' => 'update_draft'
45         ]);
46     }
47 }