mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-08-27 20:51:57 +00:00
![Dan Brown](/assets/img/avatar_default.png)
Added testing to cover each command. Removed example laravel inspire command. Standardised command names to be behind 'bookstack' naming. In reference to #320.
103 lines
3.2 KiB
PHP
103 lines
3.2 KiB
PHP
<?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]);
|
|
}
|
|
}
|