$this->asAdmin()
->visit('/books')
// Choose to create a book
- ->click('Add new book')
+ ->click('Create New Book')
->seePageIs('/books/create')
// Fill out form & save
->type($book->name, '#name')
->visit('/books/create')
->type($book->name, '#name')
->type($book->description, '#description')
- ->press('Save Book')
- ->seePageIs('/books/my-first-book-2');
+ ->press('Save Book');
+
+ $expectedPattern = '/\/books\/my-first-book-[0-9a-zA-Z]{3}/';
+ $this->assertRegExp($expectedPattern, $this->currentUri, "Did not land on expected page [$expectedPattern].\n");
$book = \BookStack\Book::where('slug', '=', 'my-first-book')->first();
return $book;
public function test_old_page_slugs_redirect_to_new_pages()
{
- $page = \BookStack\Page::all()->first();
+ $page = \BookStack\Page::first();
$pageUrl = $page->getUrl();
$newPageUrl = '/books/' . $page->book->slug . '/page/super-test-page';
+ // Need to save twice since revisions are not generated in seeder.
$this->asAdmin()->visit($pageUrl)
+ ->clickInElement('#content', 'Edit')
+ ->type('super test', '#name')
+ ->press('Save Page');
+
+ $page = \BookStack\Page::first();
+ $pageUrl = $page->getUrl();
+
+ // Second Save
+ $this->visit($pageUrl)
->clickInElement('#content', 'Edit')
->type('super test page', '#name')
->press('Save Page')
- ->seePageIs($newPageUrl)
- ->visit($pageUrl)
+ // Check redirect
+ ->seePageIs($newPageUrl);
+
+ $this->visit($pageUrl)
->seePageIs($newPageUrl);
}