| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace Tests\Commands; | 
					
						
							| 
									
										
										
										
											2021-02-12 06:42:36 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | use BookStack\Entities\Models\Page; | 
					
						
							|  |  |  | use BookStack\Entities\Repos\PageRepo; | 
					
						
							|  |  |  | use Illuminate\Support\Facades\Artisan; | 
					
						
							|  |  |  | use Tests\TestCase; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class ClearRevisionsCommandTest extends TestCase | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     public function test_clear_revisions_command() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $this->asEditor(); | 
					
						
							|  |  |  |         $pageRepo = app(PageRepo::class); | 
					
						
							|  |  |  |         $page = Page::first(); | 
					
						
							|  |  |  |         $pageRepo->update($page, ['name' => 'updated page', 'html' => '<p>new content</p>', 'summary' => 'page revision testing']); | 
					
						
							|  |  |  |         $pageRepo->updatePageDraft($page, ['name' => 'updated page', 'html' => '<p>new content in draft</p>', 'summary' => 'page revision testing']); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $this->assertDatabaseHas('page_revisions', [ | 
					
						
							|  |  |  |             'page_id' => $page->id, | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  |             'type'    => 'version', | 
					
						
							| 
									
										
										
										
											2021-02-12 06:42:36 +08:00
										 |  |  |         ]); | 
					
						
							|  |  |  |         $this->assertDatabaseHas('page_revisions', [ | 
					
						
							|  |  |  |             'page_id' => $page->id, | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  |             'type'    => 'update_draft', | 
					
						
							| 
									
										
										
										
											2021-02-12 06:42:36 +08:00
										 |  |  |         ]); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $exitCode = Artisan::call('bookstack:clear-revisions'); | 
					
						
							|  |  |  |         $this->assertTrue($exitCode === 0, 'Command executed successfully'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $this->assertDatabaseMissing('page_revisions', [ | 
					
						
							|  |  |  |             'page_id' => $page->id, | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  |             'type'    => 'version', | 
					
						
							| 
									
										
										
										
											2021-02-12 06:42:36 +08:00
										 |  |  |         ]); | 
					
						
							|  |  |  |         $this->assertDatabaseHas('page_revisions', [ | 
					
						
							|  |  |  |             'page_id' => $page->id, | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  |             'type'    => 'update_draft', | 
					
						
							| 
									
										
										
										
											2021-02-12 06:42:36 +08:00
										 |  |  |         ]); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $exitCode = Artisan::call('bookstack:clear-revisions', ['--all' => true]); | 
					
						
							|  |  |  |         $this->assertTrue($exitCode === 0, 'Command executed successfully'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $this->assertDatabaseMissing('page_revisions', [ | 
					
						
							|  |  |  |             'page_id' => $page->id, | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  |             'type'    => 'update_draft', | 
					
						
							| 
									
										
										
										
											2021-02-12 06:42:36 +08:00
										 |  |  |         ]); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  | } |