]> BookStack Code Mirror - bookstack/blobdiff - tests/EntityTest.php
Found the source of the issue, not sure how to fix
[bookstack] / tests / EntityTest.php
index 02924c1231a5304e5cf679f68b4a707f53071be4..2936fc0475abe698fdbe420a6f1ece8718dadae0 100644 (file)
@@ -5,7 +5,7 @@ use Illuminate\Support\Facades\DB;
 class EntityTest extends TestCase
 {
 
-    public function testEntityCreation()
+    public function test_entity_creation()
     {
 
         // Test Creation
@@ -51,7 +51,7 @@ class EntityTest extends TestCase
         return \BookStack\Book::find($book->id);
     }
 
-    public function testBookSortPageShows()
+    public function test_book_sort_page_shows()
     {
         $books =  \BookStack\Book::all();
         $bookToSort = $books[0];
@@ -65,7 +65,7 @@ class EntityTest extends TestCase
             ->see($books[1]->name);
     }
 
-    public function testBookSortItemReturnsBookContent()
+    public function test_book_sort_item_returns_book_content()
     {
         $books =  \BookStack\Book::all();
         $bookToSort = $books[0];
@@ -155,45 +155,74 @@ class EntityTest extends TestCase
         return $book;
     }
 
-    public function testPageSearch()
-    {
-        $book = \BookStack\Book::all()->first();
-        $page = $book->pages->first();
-
-        $this->asAdmin()
-            ->visit('/')
-            ->type($page->name, 'term')
-            ->press('header-search-box-button')
-            ->see('Search Results')
-            ->see($page->name)
-            ->click($page->name)
-            ->seePageIs($page->getUrl());
-    }
-
-
-    public function testEntitiesViewableAfterCreatorDeletion()
+    public function test_entities_viewable_after_creator_deletion()
     {
+        // Create required assets and revisions
         $creator = $this->getNewUser();
         $updater = $this->getNewUser();
         $entities = $this->createEntityChainBelongingToUser($creator, $updater);
+        $this->actingAs($creator);
         app('BookStack\Repos\UserRepo')->destroy($creator);
+        app('BookStack\Repos\PageRepo')->saveRevision($entities['page']);
 
-        $this->asAdmin()->visit($entities['book']->getUrl())->seeStatusCode(200)
-            ->visit($entities['chapter']->getUrl())->seeStatusCode(200)
-            ->visit($entities['page']->getUrl())->seeStatusCode(200);
+        $this->checkEntitiesViewable($entities);
     }
 
-    public function testEntitiesViewableAfterUpdaterDeletion()
+    public function test_entities_viewable_after_updater_deletion()
     {
+        // Create required assets and revisions
         $creator = $this->getNewUser();
         $updater = $this->getNewUser();
         $entities = $this->createEntityChainBelongingToUser($creator, $updater);
+        $this->actingAs($updater);
         app('BookStack\Repos\UserRepo')->destroy($updater);
+        app('BookStack\Repos\PageRepo')->saveRevision($entities['page']);
 
-        $this->asAdmin()->visit($entities['book']->getUrl())->seeStatusCode(200)
+        $this->checkEntitiesViewable($entities);
+    }
+
+    private function checkEntitiesViewable($entities)
+    {
+        // Check pages and books are visible.
+        $this->asAdmin();
+        $this->visit($entities['book']->getUrl())->seeStatusCode(200)
             ->visit($entities['chapter']->getUrl())->seeStatusCode(200)
             ->visit($entities['page']->getUrl())->seeStatusCode(200);
+        // Check revision listing shows no errors.
+        $this->visit($entities['page']->getUrl())
+            ->click('Revisions')->seeStatusCode(200);
     }
 
+    public function test_recently_created_pages_view()
+    {
+        $user = $this->getNewUser();
+        $content = $this->createEntityChainBelongingToUser($user);
+
+        $this->asAdmin()->visit('/pages/recently-created')
+            ->seeInNthElement('.entity-list .page', 0, $content['page']->name);
+    }
+
+    public function test_recently_updated_pages_view()
+    {
+        $user = $this->getNewUser();
+        $content = $this->createEntityChainBelongingToUser($user);
+
+        $this->asAdmin()->visit('/pages/recently-updated')
+            ->seeInNthElement('.entity-list .page', 0, $content['page']->name);
+    }
+
+    public function test_old_page_slugs_redirect_to_new_pages()
+    {
+        $page = \BookStack\Page::all()->first();
+        $pageUrl = $page->getUrl();
+        $newPageUrl = '/books/' . $page->book->slug . '/page/super-test-page';
+        $this->asAdmin()->visit($pageUrl)
+            ->clickInElement('#content', 'Edit')
+            ->type('super test page', '#name')
+            ->press('Save Page')
+            ->seePageIs($newPageUrl)
+            ->visit($pageUrl)
+            ->seePageIs($newPageUrl);
+    }
 
 }