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]); | ||
|  |     } | ||
|  | } |