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