CommandsTest.php
3.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<?php namespace Tests;
use BookStack\JointPermission;
use BookStack\Page;
use BookStack\Repos\EntityRepo;
class CommandsTest extends TestCase
{
public function test_clear_views_command()
{
$this->asEditor();
$page = Page::first();
$this->get($page->getUrl());
$this->assertDatabaseHas('views', [
'user_id' => $this->getEditor()->id,
'viewable_id' => $page->id,
'views' => 1
]);
$exitCode = \Artisan::call('bookstack:clear-views');
$this->assertTrue($exitCode === 0, 'Command executed successfully');
$this->assertDatabaseMissing('views', [
'user_id' => $this->getEditor()->id
]);
}
public function test_clear_activity_command()
{
$this->asEditor();
$page = Page::first();
\Activity::add($page, 'page_update', $page->book->id);
$this->assertDatabaseHas('activities', [
'key' => 'page_update',
'entity_id' => $page->id,
'user_id' => $this->getEditor()->id
]);
$exitCode = \Artisan::call('bookstack:clear-activity');
$this->assertTrue($exitCode === 0, 'Command executed successfully');
$this->assertDatabaseMissing('activities', [
'key' => 'page_update'
]);
}
public function test_clear_revisions_command()
{
$this->asEditor();
$entityRepo = $this->app[EntityRepo::class];
$page = Page::first();
$entityRepo->updatePage($page, $page->book_id, ['name' => 'updated page', 'html' => '<p>new content</p>', 'summary' => 'page revision testing']);
$entityRepo->updatePageDraft($page, ['name' => 'updated page', 'html' => '<p>new content in draft</p>', 'summary' => 'page revision testing']);
$this->assertDatabaseHas('page_revisions', [
'page_id' => $page->id,
'type' => 'version'
]);
$this->assertDatabaseHas('page_revisions', [
'page_id' => $page->id,
'type' => 'update_draft'
]);
$exitCode = \Artisan::call('bookstack:clear-revisions');
$this->assertTrue($exitCode === 0, 'Command executed successfully');
$this->assertDatabaseMissing('page_revisions', [
'page_id' => $page->id,
'type' => 'version'
]);
$this->assertDatabaseHas('page_revisions', [
'page_id' => $page->id,
'type' => 'update_draft'
]);
$exitCode = \Artisan::call('bookstack:clear-revisions', ['--all' => true]);
$this->assertTrue($exitCode === 0, 'Command executed successfully');
$this->assertDatabaseMissing('page_revisions', [
'page_id' => $page->id,
'type' => 'update_draft'
]);
}
public function test_regen_permissions_command()
{
JointPermission::query()->truncate();
$page = Page::first();
$this->assertDatabaseMissing('joint_permissions', ['entity_id' => $page->id]);
$exitCode = \Artisan::call('bookstack:regenerate-permissions');
$this->assertTrue($exitCode === 0, 'Command executed successfully');
$this->assertDatabaseHas('joint_permissions', ['entity_id' => $page->id]);
}
}