X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/375abca1ee6721feb8de792011f6798fba5e646c..refs/pull/4467/head:/tests/FavouriteTest.php diff --git a/tests/FavouriteTest.php b/tests/FavouriteTest.php index 032e46d0c..0e30cbd58 100644 --- a/tests/FavouriteTest.php +++ b/tests/FavouriteTest.php @@ -1,18 +1,16 @@ -first(); - $editor = $this->getEditor(); + $page = $this->entities->page(); + $editor = $this->users->editor(); $resp = $this->actingAs($editor)->get($page->getUrl()); $this->withHtml($resp)->assertElementContains('button', 'Favourite'); @@ -34,8 +32,8 @@ class FavouriteTest extends TestCase public function test_page_remove_favourite_flow() { - $page = Page::query()->first(); - $editor = $this->getEditor(); + $page = $this->entities->page(); + $editor = $this->users->editor(); Favourite::query()->forceCreate([ 'user_id' => $editor->id, 'favouritable_id' => $page->id, @@ -60,13 +58,12 @@ class FavouriteTest extends TestCase public function test_favourite_flow_with_own_permissions() { - /** @var Book $book */ - $book = Book::query()->first(); + $book = $this->entities->book(); $user = User::factory()->create(); $book->owned_by = $user->id; $book->save(); - $this->giveUserPermissions($user, ['book-view-own']); + $this->permissions->grantUserRolePermissions($user, ['book-view-own']); $this->actingAs($user)->get($book->getUrl()); $resp = $this->post('/favourites/add', [ @@ -82,16 +79,11 @@ class FavouriteTest extends TestCase ]); } - public function test_book_chapter_shelf_pages_contain_favourite_button() + public function test_each_entity_type_shows_favourite_button() { - $entities = [ - Bookshelf::query()->first(), - Book::query()->first(), - Chapter::query()->first(), - ]; - $this->actingAs($this->getEditor()); - - foreach ($entities as $entity) { + $this->actingAs($this->users->editor()); + + foreach ($this->entities->all() as $entity) { $resp = $this->get($entity->getUrl()); $this->withHtml($resp)->assertElementExists('form[method="POST"][action$="/favourites/add"]'); } @@ -102,19 +94,18 @@ class FavouriteTest extends TestCase $this->setSettings(['app-public' => 'true']); $resp = $this->get('/'); $this->withHtml($resp)->assertElementNotContains('header', 'My Favourites'); - $resp = $this->actingAs($this->getViewer())->get('/'); + $resp = $this->actingAs($this->users->viewer())->get('/'); $this->withHtml($resp)->assertElementContains('header a', 'My Favourites'); } public function test_favourites_shown_on_homepage() { - $editor = $this->getEditor(); + $editor = $this->users->editor(); $resp = $this->actingAs($editor)->get('/'); $this->withHtml($resp)->assertElementNotExists('#top-favourites'); - /** @var Page $page */ - $page = Page::query()->first(); + $page = $this->entities->page(); $page->favourites()->save((new Favourite())->forceFill(['user_id' => $editor->id])); $resp = $this->get('/'); @@ -124,9 +115,8 @@ class FavouriteTest extends TestCase public function test_favourites_list_page_shows_favourites_and_has_working_pagination() { - /** @var Page $page */ - $page = Page::query()->first(); - $editor = $this->getEditor(); + $page = $this->entities->page(); + $editor = $this->users->editor(); $resp = $this->actingAs($editor)->get('/favourites'); $resp->assertDontSee($page->name);