]> BookStack Code Mirror - bookstack/commitdiff
Migrated much test entity usage via find/replace
authorDan Brown <redacted>
Thu, 29 Sep 2022 16:31:38 +0000 (17:31 +0100)
committerDan Brown <redacted>
Thu, 29 Sep 2022 16:31:38 +0000 (17:31 +0100)
45 files changed:
tests/Actions/AuditLogTest.php
tests/Actions/WebhookCallTest.php
tests/Actions/WebhookFormatTesting.php
tests/Api/AttachmentsApiTest.php
tests/Api/ChaptersApiTest.php
tests/Api/PagesApiTest.php
tests/Api/RecycleBinApiTest.php
tests/Api/SearchApiTest.php
tests/Auth/AuthTest.php
tests/Commands/ClearActivityCommandTest.php
tests/Commands/CopyShelfPermissionsCommandTest.php
tests/Commands/RegenerateReferencesCommandTest.php
tests/Commands/UpdateUrlCommandTest.php
tests/Entity/BookShelfTest.php
tests/Entity/BookTest.php
tests/Entity/ChapterTest.php
tests/Entity/ConvertTest.php
tests/Entity/EntitySearchTest.php
tests/Entity/ExportTest.php
tests/Entity/PageContentTest.php
tests/Entity/PageDraftTest.php
tests/Entity/PageEditorTest.php
tests/Entity/PageRevisionTest.php
tests/Entity/PageTest.php
tests/Entity/SortTest.php
tests/Entity/TagTest.php
tests/ErrorTest.php
tests/FavouriteTest.php
tests/Helpers/EntityProvider.php
tests/HomepageTest.php
tests/OpenGraphTest.php
tests/Permissions/EntityOwnerChangeTest.php
tests/Permissions/EntityPermissionsTest.php
tests/Permissions/ExportPermissionsTest.php
tests/Permissions/RolesTest.php
tests/PublicActionTest.php
tests/References/CrossLinkParserTest.php
tests/References/ReferencesTest.php
tests/Settings/RecycleBinTest.php
tests/ThemeTest.php
tests/Uploads/AttachmentTest.php
tests/Uploads/ImageTest.php
tests/Uploads/UsesImages.php
tests/User/UserManagementTest.php
tests/User/UserPreferencesTest.php

index 8fbf66e760f925f09598d5e19683d2b3aff312ec..f4eebb364fdcc3d79caf5ea52e0b8754a7f3ebd9 100644 (file)
@@ -46,7 +46,7 @@ class AuditLogTest extends TestCase
     {
         $admin = $this->getAdmin();
         $this->actingAs($admin);
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->activityService->add(ActivityType::PAGE_CREATE, $page);
         $activity = Activity::query()->orderBy('id', 'desc')->first();
 
@@ -60,7 +60,7 @@ class AuditLogTest extends TestCase
     public function test_shows_name_for_deleted_items()
     {
         $this->actingAs($this->getAdmin());
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $pageName = $page->name;
         $this->activityService->add(ActivityType::PAGE_CREATE, $page);
 
@@ -76,7 +76,7 @@ class AuditLogTest extends TestCase
     {
         $viewer = $this->getViewer();
         $this->actingAs($viewer);
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->activityService->add(ActivityType::PAGE_CREATE, $page);
 
         $this->actingAs($this->getAdmin());
@@ -89,7 +89,7 @@ class AuditLogTest extends TestCase
     public function test_filters_by_key()
     {
         $this->actingAs($this->getAdmin());
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->activityService->add(ActivityType::PAGE_CREATE, $page);
 
         $resp = $this->get('settings/audit');
@@ -102,7 +102,7 @@ class AuditLogTest extends TestCase
     public function test_date_filters()
     {
         $this->actingAs($this->getAdmin());
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->activityService->add(ActivityType::PAGE_CREATE, $page);
 
         $yesterday = (Carbon::now()->subDay()->format('Y-m-d'));
@@ -126,11 +126,11 @@ class AuditLogTest extends TestCase
         $admin = $this->getAdmin();
         $editor = $this->getEditor();
         $this->actingAs($admin);
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->activityService->add(ActivityType::PAGE_CREATE, $page);
 
         $this->actingAs($editor);
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
         $this->activityService->add(ActivityType::CHAPTER_UPDATE, $chapter);
 
         $resp = $this->actingAs($admin)->get('settings/audit?user=' . $admin->id);
@@ -146,8 +146,7 @@ class AuditLogTest extends TestCase
     {
         config()->set('app.proxies', '*');
         $editor = $this->getEditor();
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $this->actingAs($editor)->put($page->getUrl(), [
             'name' => 'Updated page',
@@ -171,8 +170,7 @@ class AuditLogTest extends TestCase
     {
         config()->set('app.proxies', '*');
         $editor = $this->getEditor();
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $this->actingAs($editor)->put($page->getUrl(), [
             'name' => 'Updated page',
@@ -198,8 +196,7 @@ class AuditLogTest extends TestCase
         config()->set('app.proxies', '*');
         config()->set('app.env', 'demo');
         $editor = $this->getEditor();
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $this->actingAs($editor)->put($page->getUrl(), [
             'name' => 'Updated page',
@@ -222,8 +219,7 @@ class AuditLogTest extends TestCase
         config()->set('app.proxies', '*');
         config()->set('app.ip_address_precision', 2);
         $editor = $this->getEditor();
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $this->actingAs($editor)->put($page->getUrl(), [
             'name' => 'Updated page',
index d9f9ddad591cd61ea26f5953e22f0bf827b003ae..7964fd8af985ee26c06ded33dcac23494d55c3ca 100644 (file)
@@ -88,8 +88,7 @@ class WebhookCallTest extends TestCase
             '*' => Http::response('', 200),
         ]);
         $webhook = $this->newWebhook(['active' => true, 'endpoint' => 'https://wh.example.com'], ['all']);
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $editor = $this->getEditor();
 
         $this->runEvent(ActivityType::PAGE_UPDATE, $page, $editor);
index 4e9ba5e477c69a75ce59f84ef65da66f29143339..35467a76a7ba1c7a8a80e3e8e1c9d2112d1f6a92 100644 (file)
@@ -32,8 +32,7 @@ class WebhookFormatTesting extends TestCase
 
     public function test_page_create_and_update_events_show_revision_info()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->asEditor()->put($page->getUrl(), ['name' => 'Updated page', 'html' => 'new page html', 'summary' => 'Update a']);
 
         $data = $this->getWebhookData(ActivityType::PAGE_UPDATE, $page);
index dfd57deb8c3091a696eec28c720524e0bd9cb0ce..c295f738439c2cd1a5cc53d8d0a6b378207e077c 100644 (file)
@@ -17,7 +17,7 @@ class AttachmentsApiTest extends TestCase
     public function test_index_endpoint_returns_expected_book()
     {
         $this->actingAsApiEditor();
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $attachment = $this->createAttachmentForPage($page, [
             'name'     => 'My test attachment',
             'external' => true,
@@ -37,8 +37,7 @@ class AttachmentsApiTest extends TestCase
     public function test_attachments_listing_based_upon_page_visibility()
     {
         $this->actingAsApiEditor();
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $attachment = $this->createAttachmentForPage($page, [
             'name'     => 'My test attachment',
             'external' => true,
@@ -66,8 +65,7 @@ class AttachmentsApiTest extends TestCase
     public function test_create_endpoint_for_link_attachment()
     {
         $this->actingAsApiAdmin();
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $details = [
             'name'        => 'My attachment',
@@ -85,8 +83,7 @@ class AttachmentsApiTest extends TestCase
     public function test_create_endpoint_for_upload_attachment()
     {
         $this->actingAsApiAdmin();
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $file = $this->getTestFile('textfile.txt');
 
         $details = [
@@ -106,8 +103,7 @@ class AttachmentsApiTest extends TestCase
     public function test_upload_limit_restricts_attachment_uploads()
     {
         $this->actingAsApiAdmin();
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         config()->set('app.upload_limit', 1);
 
@@ -130,8 +126,7 @@ class AttachmentsApiTest extends TestCase
     public function test_name_needed_to_create()
     {
         $this->actingAsApiAdmin();
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $details = [
             'uploaded_to' => $page->id,
@@ -146,8 +141,7 @@ class AttachmentsApiTest extends TestCase
     public function test_link_or_file_needed_to_create()
     {
         $this->actingAsApiAdmin();
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $details = [
             'name'        => 'my attachment',
@@ -165,8 +159,7 @@ class AttachmentsApiTest extends TestCase
     public function test_message_shown_if_file_is_not_a_valid_file()
     {
         $this->actingAsApiAdmin();
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $details = [
             'name'        => 'my attachment',
@@ -182,8 +175,7 @@ class AttachmentsApiTest extends TestCase
     public function test_read_endpoint_for_link_attachment()
     {
         $this->actingAsApiAdmin();
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $attachment = $this->createAttachmentForPage($page, [
             'name'  => 'my attachment',
@@ -216,8 +208,7 @@ class AttachmentsApiTest extends TestCase
     public function test_read_endpoint_for_file_attachment()
     {
         $this->actingAsApiAdmin();
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $file = $this->getTestFile('textfile.txt');
 
         $details = [
@@ -259,8 +250,7 @@ class AttachmentsApiTest extends TestCase
         $this->actingAsApiAdmin();
         $editor = $this->getEditor();
 
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $page->draft = true;
         $page->owned_by = $editor->id;
         $page->save();
@@ -280,8 +270,7 @@ class AttachmentsApiTest extends TestCase
     public function test_update_endpoint()
     {
         $this->actingAsApiAdmin();
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $attachment = $this->createAttachmentForPage($page);
 
         $details = [
@@ -298,8 +287,7 @@ class AttachmentsApiTest extends TestCase
     public function test_update_link_attachment_to_file()
     {
         $this->actingAsApiAdmin();
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $attachment = $this->createAttachmentForPage($page);
         $file = $this->getTestFile('textfile.txt');
 
@@ -318,8 +306,7 @@ class AttachmentsApiTest extends TestCase
     public function test_update_file_attachment_to_link()
     {
         $this->actingAsApiAdmin();
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $file = $this->getTestFile('textfile.txt');
         $this->call('POST', $this->baseEndpoint, ['name' => 'My file attachment', 'uploaded_to' => $page->id], [], ['file' => $file]);
         /** @var Attachment $attachment */
@@ -346,8 +333,7 @@ class AttachmentsApiTest extends TestCase
     public function test_delete_endpoint()
     {
         $this->actingAsApiAdmin();
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $attachment = $this->createAttachmentForPage($page);
 
         $resp = $this->deleteJson("{$this->baseEndpoint}/{$attachment->id}");
index 8d31500ebc19ce3360cddfd7d823eab03fe4cab4..22be2482c2b7e517dc559746d67edf2278bba1d1 100644 (file)
@@ -34,7 +34,7 @@ class ChaptersApiTest extends TestCase
     public function test_create_endpoint()
     {
         $this->actingAsApiEditor();
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $details = [
             'name'        => 'My API chapter',
             'description' => 'A chapter created via the API',
@@ -64,7 +64,7 @@ class ChaptersApiTest extends TestCase
     public function test_chapter_name_needed_to_create()
     {
         $this->actingAsApiEditor();
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $details = [
             'book_id'     => $book->id,
             'description' => 'A chapter created via the API',
index 20c6977ddac82556ad1761c07c3b31d8ec4faa96..fe1fc8d36cbbb762e6d2fc7d8eed05f4c4e1d5d6 100644 (file)
@@ -35,7 +35,7 @@ class PagesApiTest extends TestCase
     public function test_create_endpoint()
     {
         $this->actingAsApiEditor();
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $details = [
             'name'    => 'My API page',
             'book_id' => $book->id,
@@ -67,7 +67,7 @@ class PagesApiTest extends TestCase
     public function test_page_name_needed_to_create()
     {
         $this->actingAsApiEditor();
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $details = [
             'book_id' => $book->id,
             'html'    => '<p>A page created via the API</p>',
index 83cd82480310a137c5e7313c2eab41f6320ca6d2..cdb51f85af759acad4164839027b4f8cbc85793c 100644 (file)
@@ -50,8 +50,8 @@ class RecycleBinApiTest extends TestCase
     {
         $admin = $this->getAdmin();
 
-        $page = Page::query()->first();
-        $book = Book::query()->first();
+        $page = $this->entities->page();
+        $book = $this->entities->book();
         $this->actingAs($admin)->delete($page->getUrl());
         $this->delete($book->getUrl());
 
@@ -139,7 +139,7 @@ class RecycleBinApiTest extends TestCase
 
     public function test_restore_endpoint()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->asAdmin()->delete($page->getUrl());
         $page->refresh();
 
@@ -163,7 +163,7 @@ class RecycleBinApiTest extends TestCase
 
     public function test_destroy_endpoint()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->asAdmin()->delete($page->getUrl());
         $page->refresh();
 
index 1f38c7fd98441b17371273730598e2877c5c98be..cdc954ec3259e7d7827d22e905589c140b33c997 100644 (file)
@@ -38,8 +38,7 @@ class SearchApiTest extends TestCase
 
     public function test_all_endpoint_returns_entity_url()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $page->update(['name' => 'name with superuniquevalue within']);
         $page->indexForSearch();
 
@@ -52,8 +51,7 @@ class SearchApiTest extends TestCase
 
     public function test_all_endpoint_returns_items_with_preview_html()
     {
-        /** @var Book $book */
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $book->update(['name' => 'name with superuniquevalue within', 'description' => 'Description with superuniquevalue within']);
         $book->indexForSearch();
 
index 8494697667ab20762bacd65ec663ade5615dd939..4456ed459cffc03d721ad74d2d33db0072f1b44e 100644 (file)
@@ -58,8 +58,7 @@ class AuthTest extends TestCase
     public function test_login_redirects_to_initially_requested_url_correctly()
     {
         config()->set('app.url', 'http://localhost');
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $this->get($page->getUrl())->assertRedirect(url('/login'));
         $this->login('[email protected]', 'password')
index 71baa0ca667cb0a913074bd1ca95cf4ccb2b809a..abc8bc7f41e726b6a36b9a6d859d17bb71aa8222 100644 (file)
@@ -14,8 +14,7 @@ class ClearActivityCommandTest extends TestCase
     public function test_clear_activity_command()
     {
         $this->asEditor();
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         Activity::add(ActivityType::PAGE_UPDATE, $page);
 
         $this->assertDatabaseHas('activities', [
index dd39317ae6f6879520716f66f86d2cd87ab264d3..bd96f2cc559e990d0ecfe84978912c89d8d0fded 100644 (file)
@@ -36,7 +36,7 @@ class CopyShelfPermissionsCommandTest extends TestCase
 
     public function test_copy_shelf_permissions_command_using_all()
     {
-        $shelf = Bookshelf::query()->first();
+        $shelf = $this->entities->shelf();
         Bookshelf::query()->where('id', '!=', $shelf->id)->delete();
         $child = $shelf->books()->first();
         $editorRole = $this->getEditor()->roles()->first();
index 27dde749b2a49e81e3b7320a6048c8e2f8889d55..2c737712ac50988fdeff35bc330804c992a1072e 100644 (file)
@@ -10,8 +10,7 @@ class RegenerateReferencesCommandTest extends TestCase
 {
     public function test_regenerate_references_command()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $book = $page->book;
 
         $page->html = '<a href="' . $book->getUrl() . '">Book Link</a>';
index 0acccd80cc2adc14a4e2254247002974fc02a583..c4b09162e80bd5705a37694724fdb371b3095bdc 100644 (file)
@@ -10,7 +10,7 @@ class UpdateUrlCommandTest extends TestCase
 {
     public function test_command_updates_page_content()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $page->html = '<a href="https://example.com/donkeys"></a>';
         $page->save();
 
index 748f63da887dcc9e5b12fe9940520153595e1400..798edeadff479a090cca626550a6ca1860f2e959 100644 (file)
@@ -62,7 +62,7 @@ class BookShelfTest extends TestCase
         config()->set([
             'setting-defaults.user.bookshelves_view_type' => 'list',
         ]);
-        $shelf = Bookshelf::query()->first();
+        $shelf = $this->entities->shelf();
         $book = $shelf->books()->first();
 
         $resp = $this->asEditor()->get('/shelves');
@@ -160,7 +160,7 @@ class BookShelfTest extends TestCase
 
     public function test_shelf_view_has_sort_control_that_defaults_to_default()
     {
-        $shelf = Bookshelf::query()->first();
+        $shelf = $this->entities->shelf();
         $resp = $this->asAdmin()->get($shelf->getUrl());
         $this->withHtml($resp)->assertElementExists('form[action$="change-sort/shelf_books"]');
         $this->withHtml($resp)->assertElementContains('form[action$="change-sort/shelf_books"] [aria-haspopup="true"]', 'Default');
@@ -373,8 +373,7 @@ class BookShelfTest extends TestCase
 
     public function test_cancel_on_child_book_creation_returns_to_original_shelf()
     {
-        /** @var Bookshelf $shelf */
-        $shelf = Bookshelf::query()->first();
+        $shelf = $this->entities->shelf();
         $resp = $this->asEditor()->get($shelf->getUrl('/create-book'));
         $this->withHtml($resp)->assertElementContains('form a[href="' . $shelf->getUrl() . '"]', 'Cancel');
     }
index ec430ae84b1a77ab9d4d2d2085e41a09e09ecc76..2914162cf6dfb7f3b9a10f5a4f7ea330e38467c2 100644 (file)
@@ -80,8 +80,7 @@ class BookTest extends TestCase
 
     public function test_update()
     {
-        /** @var Book $book */
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         // Cheeky initial update to refresh slug
         $this->asEditor()->put($book->getUrl(), ['name' => $book->name . '5', 'description' => $book->description]);
         $book->refresh();
@@ -104,8 +103,7 @@ class BookTest extends TestCase
 
     public function test_update_sets_tags()
     {
-        /** @var Book $book */
-        $book = Book::query()->first();
+        $book = $this->entities->book();
 
         $this->assertEquals(0, $book->tags()->count());
 
@@ -167,15 +165,14 @@ class BookTest extends TestCase
 
     public function test_cancel_on_edit_book_page_leads_back_to_book()
     {
-        /** @var Book $book */
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $resp = $this->asEditor()->get($book->getUrl('/edit'));
         $this->withHtml($resp)->assertElementContains('form a[href="' . $book->getUrl() . '"]', 'Cancel');
     }
 
     public function test_next_previous_navigation_controls_show_within_book_content()
     {
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $chapter = $book->chapters->first();
 
         $resp = $this->asEditor()->get($chapter->getUrl());
@@ -270,8 +267,7 @@ class BookTest extends TestCase
 
     public function test_show_view_has_copy_button()
     {
-        /** @var Book $book */
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $resp = $this->asEditor()->get($book->getUrl());
 
         $this->withHtml($resp)->assertElementContains("a[href=\"{$book->getUrl('/copy')}\"]", 'Copy');
@@ -279,8 +275,7 @@ class BookTest extends TestCase
 
     public function test_copy_view()
     {
-        /** @var Book $book */
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $resp = $this->asEditor()->get($book->getUrl('/copy'));
 
         $resp->assertOk();
@@ -338,8 +333,7 @@ class BookTest extends TestCase
 
     public function test_copy_clones_cover_image_if_existing()
     {
-        /** @var Book $book */
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $bookRepo = $this->app->make(BookRepo::class);
         $coverImageFile = $this->getTestImage('cover.png');
         $bookRepo->updateCoverImage($book, $coverImageFile);
@@ -357,8 +351,7 @@ class BookTest extends TestCase
         /** @var Bookshelf $shelfA */
         /** @var Bookshelf $shelfB */
         [$shelfA, $shelfB] = Bookshelf::query()->take(2)->get();
-        /** @var Book $book */
-        $book = Book::query()->first();
+        $book = $this->entities->book();
 
         $shelfA->appendBook($book);
         $shelfB->appendBook($book);
index c1c746102557e58a02803cb09ccdad34a33bc83e..fc8adb01d14192384ec272d005e7299ea238e96a 100644 (file)
@@ -11,8 +11,7 @@ class ChapterTest extends TestCase
 {
     public function test_create()
     {
-        /** @var Book $book */
-        $book = Book::query()->first();
+        $book = $this->entities->book();
 
         $chapter = Chapter::factory()->make([
             'name' => 'My First Chapter',
@@ -58,8 +57,7 @@ class ChapterTest extends TestCase
 
     public function test_show_view_has_copy_button()
     {
-        /** @var Chapter $chapter */
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
 
         $resp = $this->asEditor()->get($chapter->getUrl());
         $this->withHtml($resp)->assertElementContains("a[href$=\"{$chapter->getUrl('/copy')}\"]", 'Copy');
@@ -67,8 +65,7 @@ class ChapterTest extends TestCase
 
     public function test_copy_view()
     {
-        /** @var Chapter $chapter */
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
 
         $resp = $this->asEditor()->get($chapter->getUrl('/copy'));
         $resp->assertOk();
@@ -149,8 +146,7 @@ class ChapterTest extends TestCase
 
     public function test_sort_book_action_visible_if_permissions_allow()
     {
-        /** @var Chapter $chapter */
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
 
         $resp = $this->actingAs($this->getViewer())->get($chapter->getUrl());
         $this->withHtml($resp)->assertLinkNotExists($chapter->book->getUrl('sort'));
index 58f694f604adc9cbbd51dadc7a7982554bc536ad..15205c9adb7d68138fd4a1c82f418b720531d1be 100644 (file)
@@ -14,8 +14,7 @@ class ConvertTest extends TestCase
 {
     public function test_chapter_edit_view_shows_convert_option()
     {
-        /** @var Chapter $chapter */
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
 
         $resp = $this->asEditor()->get($chapter->getUrl('/edit'));
         $resp->assertSee('Convert to Book');
@@ -50,8 +49,7 @@ class ConvertTest extends TestCase
 
     public function test_convert_chapter_to_book_requires_permissions()
     {
-        /** @var Chapter $chapter */
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
         $user = $this->getViewer();
 
         $permissions = ['chapter-delete-all', 'book-create-all', 'chapter-update-all'];
@@ -71,7 +69,7 @@ class ConvertTest extends TestCase
 
     public function test_book_edit_view_shows_convert_option()
     {
-        $book = Book::query()->first();
+        $book = $this->entities->book();
 
         $resp = $this->asEditor()->get($book->getUrl('/edit'));
         $resp->assertSee('Convert to Shelf');
@@ -124,8 +122,7 @@ class ConvertTest extends TestCase
 
     public function test_book_convert_to_shelf_requires_permissions()
     {
-        /** @var Book $book */
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $user = $this->getViewer();
 
         $permissions = ['book-delete-all', 'bookshelf-create-all', 'book-update-all', 'book-create-all'];
index eabcf6f76491a062f28bd549409ca7ca01f18a54..82b97e6f3711dd90f8dc06a847270b979700b5a1 100644 (file)
@@ -23,8 +23,7 @@ class EntitySearchTest extends TestCase
 
     public function test_bookshelf_search()
     {
-        /** @var Bookshelf $shelf */
-        $shelf = Bookshelf::query()->first();
+        $shelf = $this->entities->shelf();
 
         $search = $this->asEditor()->get('/search?term=' . urlencode($shelf->name) . '  {type:bookshelf}');
         $search->assertSee('Search Results');
@@ -232,7 +231,7 @@ class EntitySearchTest extends TestCase
 
     public function test_ajax_entity_search_reflects_items_without_permission()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $baseSelector = 'a[data-entity-type="page"][data-entity-id="' . $page->id . '"]';
         $searchUrl = '/ajax/search/entities?permission=update&term=' . urlencode($page->name);
 
@@ -318,7 +317,7 @@ class EntitySearchTest extends TestCase
 
     public function test_search_works_on_updated_page_content()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->asEditor();
 
         $update = $this->put($page->getUrl(), [
index 0d13d208e9f0409fe2006c4471e1ea738a5008d9..1d4a23560c8e4a456787a718286eabdeb8153da6 100644 (file)
@@ -15,7 +15,7 @@ class ExportTest extends TestCase
 {
     public function test_page_text_export()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->asEditor();
 
         $resp = $this->get($page->getUrl('/export/plaintext'));
@@ -26,7 +26,7 @@ class ExportTest extends TestCase
 
     public function test_page_pdf_export()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->asEditor();
 
         $resp = $this->get($page->getUrl('/export/pdf'));
@@ -36,7 +36,7 @@ class ExportTest extends TestCase
 
     public function test_page_html_export()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->asEditor();
 
         $resp = $this->get($page->getUrl('/export/html'));
@@ -47,7 +47,7 @@ class ExportTest extends TestCase
 
     public function test_book_text_export()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $book = $page->book;
         $this->asEditor();
 
@@ -60,7 +60,7 @@ class ExportTest extends TestCase
 
     public function test_book_pdf_export()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $book = $page->book;
         $this->asEditor();
 
@@ -71,7 +71,7 @@ class ExportTest extends TestCase
 
     public function test_book_html_export()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $book = $page->book;
         $this->asEditor();
 
@@ -85,7 +85,7 @@ class ExportTest extends TestCase
     public function test_book_html_export_shows_chapter_descriptions()
     {
         $chapterDesc = 'My custom test chapter description ' . Str::random(12);
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
         $chapter->description = $chapterDesc;
         $chapter->save();
 
@@ -98,7 +98,7 @@ class ExportTest extends TestCase
 
     public function test_chapter_text_export()
     {
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
         $page = $chapter->pages[0];
         $this->asEditor();
 
@@ -111,7 +111,7 @@ class ExportTest extends TestCase
 
     public function test_chapter_pdf_export()
     {
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
         $this->asEditor();
 
         $resp = $this->get($chapter->getUrl('/export/pdf'));
@@ -121,7 +121,7 @@ class ExportTest extends TestCase
 
     public function test_chapter_html_export()
     {
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
         $page = $chapter->pages[0];
         $this->asEditor();
 
@@ -134,7 +134,7 @@ class ExportTest extends TestCase
 
     public function test_page_html_export_contains_custom_head_if_set()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $customHeadContent = '<style>p{color: red;}</style>';
         $this->setSettings(['app-custom-head' => $customHeadContent]);
@@ -145,7 +145,7 @@ class ExportTest extends TestCase
 
     public function test_page_html_export_does_not_break_with_only_comments_in_custom_head()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $customHeadContent = '<!-- A comment -->';
         $this->setSettings(['app-custom-head' => $customHeadContent]);
@@ -157,7 +157,7 @@ class ExportTest extends TestCase
 
     public function test_page_html_export_use_absolute_dates()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $resp = $this->asEditor()->get($page->getUrl('/export/html'));
         $resp->assertSee($page->created_at->formatLocalized('%e %B %Y %H:%M:%S'));
@@ -168,7 +168,7 @@ class ExportTest extends TestCase
 
     public function test_page_export_does_not_include_user_or_revision_links()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $resp = $this->asEditor()->get($page->getUrl('/export/html'));
         $resp->assertDontSee($page->getUrl('/revisions'));
@@ -178,7 +178,7 @@ class ExportTest extends TestCase
 
     public function test_page_export_sets_right_data_type_for_svg_embeds()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         Storage::disk('local')->makeDirectory('uploads/images/gallery');
         Storage::disk('local')->put('uploads/images/gallery/svg_test.svg', '<svg></svg>');
         $page->html = '<img src="http://localhost/uploads/images/gallery/svg_test.svg">';
@@ -194,7 +194,7 @@ class ExportTest extends TestCase
 
     public function test_page_image_containment_works_on_multiple_images_within_a_single_line()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         Storage::disk('local')->makeDirectory('uploads/images/gallery');
         Storage::disk('local')->put('uploads/images/gallery/svg_test.svg', '<svg></svg>');
         Storage::disk('local')->put('uploads/images/gallery/svg_test2.svg', '<svg></svg>');
@@ -210,7 +210,7 @@ class ExportTest extends TestCase
 
     public function test_page_export_contained_html_image_fetches_only_run_when_url_points_to_image_upload_folder()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $page->html = '<img src="http://localhost/uploads/images/gallery/svg_test.svg"/>'
             . '<img src="http://localhost/uploads/svg_test.svg"/>'
             . '<img src="/uploads/svg_test.svg"/>';
@@ -235,7 +235,7 @@ class ExportTest extends TestCase
         $contents = file_get_contents(public_path('.htaccess'));
         config()->set('filesystems.images', 'local');
 
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $page->html = '<img src="http://localhost/uploads/images/../../.htaccess"/>';
         $page->save();
 
@@ -249,7 +249,7 @@ class ExportTest extends TestCase
         config()->set('filesystems.images', 'local_secure');
         file_put_contents($testFilePath, 'I am a cat');
 
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $page->html = '<img src="http://localhost/uploads/images/../../logs/test.txt"/>';
         $page->save();
 
@@ -276,7 +276,7 @@ class ExportTest extends TestCase
     public function test_page_export_with_deleted_creator_and_updater()
     {
         $user = $this->getViewer(['name' => 'ExportWizardTheFifth']);
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $page->created_by = $user->id;
         $page->updated_by = $user->id;
         $page->save();
@@ -329,7 +329,7 @@ class ExportTest extends TestCase
 
     public function test_page_markdown_export()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $resp = $this->asEditor()->get($page->getUrl('/export/markdown'));
         $resp->assertStatus(200);
@@ -364,7 +364,7 @@ class ExportTest extends TestCase
 
     public function test_chapter_markdown_export()
     {
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
         $page = $chapter->pages()->first();
         $resp = $this->asEditor()->get($chapter->getUrl('/export/markdown'));
 
@@ -430,8 +430,7 @@ class ExportTest extends TestCase
 
     public function test_wkhtmltopdf_only_used_when_allow_untrusted_is_true()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         config()->set('snappy.pdf.binary', '/abc123');
         config()->set('app.allow_untrusted_server_fetching', false);
@@ -460,7 +459,7 @@ class ExportTest extends TestCase
 
     public function test_html_exports_contain_body_classes_for_export_identification()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $resp = $this->asEditor()->get($page->getUrl('/export/html'));
         $this->withHtml($resp)->assertElementExists('body.export.export-format-html.export-engine-none');
index 1c0519586306c1eae66f0f0ee8cfc6b390cfd2f5..c6de4dc51ef345eb76c8d17e5e25fcc8f7388af7 100644 (file)
@@ -15,7 +15,7 @@ class PageContentTest extends TestCase
 
     public function test_page_includes()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $secondPage = Page::query()->where('id', '!=', $page->id)->first();
 
         $secondPage->html = "<p id='section1'>Hello, This is a test</p><p id='section2'>This is a second block of content</p>";
@@ -44,7 +44,7 @@ class PageContentTest extends TestCase
 
     public function test_saving_page_with_includes()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $secondPage = Page::query()->where('id', '!=', $page->id)->first();
 
         $this->asEditor();
@@ -62,10 +62,8 @@ class PageContentTest extends TestCase
 
     public function test_page_includes_do_not_break_tables()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
-        /** @var Page $secondPage */
-        $secondPage = Page::query()->where('id', '!=', $page->id)->first();
+        $page = $this->entities->page();
+        $secondPage = $this->entities->page();
 
         $content = '<table id="table"><tbody><tr><td>test</td></tr></tbody></table>';
         $secondPage->html = $content;
@@ -80,10 +78,8 @@ class PageContentTest extends TestCase
 
     public function test_page_includes_do_not_break_code()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
-        /** @var Page $secondPage */
-        $secondPage = Page::query()->where('id', '!=', $page->id)->first();
+        $page = $this->entities->page();
+        $secondPage = $this->entities->page();
 
         $content = '<pre id="bkmrk-code"><code>var cat = null;</code></pre>';
         $secondPage->html = $content;
@@ -98,7 +94,7 @@ class PageContentTest extends TestCase
 
     public function test_page_includes_rendered_on_book_export()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $secondPage = Page::query()
             ->where('book_id', '!=', $page->book_id)
             ->first();
@@ -118,7 +114,7 @@ class PageContentTest extends TestCase
     public function test_page_content_scripts_removed_by_default()
     {
         $this->asEditor();
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $script = 'abc123<script>console.log("hello-test")</script>abc123';
         $page->html = "escape {$script}";
         $page->save();
@@ -141,7 +137,7 @@ class PageContentTest extends TestCase
         ];
 
         $this->asEditor();
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         foreach ($checks as $check) {
             $page->html = $check;
@@ -177,7 +173,7 @@ class PageContentTest extends TestCase
         ];
 
         $this->asEditor();
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         foreach ($checks as $check) {
             $page->html = $check;
@@ -206,7 +202,7 @@ class PageContentTest extends TestCase
         ];
 
         $this->asEditor();
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         foreach ($checks as $check) {
             $page->html = $check;
@@ -230,7 +226,7 @@ class PageContentTest extends TestCase
         ];
 
         $this->asEditor();
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         foreach ($checks as $check) {
             $page->html = $check;
@@ -255,7 +251,7 @@ class PageContentTest extends TestCase
         ];
 
         $this->asEditor();
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         foreach ($checks as $check) {
             $page->html = $check;
@@ -273,7 +269,7 @@ class PageContentTest extends TestCase
     public function test_page_inline_on_attributes_removed_by_default()
     {
         $this->asEditor();
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $script = '<p onmouseenter="console.log(\'test\')">Hello</p>';
         $page->html = "escape {$script}";
         $page->save();
@@ -298,7 +294,7 @@ class PageContentTest extends TestCase
         ];
 
         $this->asEditor();
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         foreach ($checks as $check) {
             $page->html = $check;
@@ -313,7 +309,7 @@ class PageContentTest extends TestCase
     public function test_page_content_scripts_show_when_configured()
     {
         $this->asEditor();
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         config()->push('app.allow_content_scripts', 'true');
 
         $script = 'abc123<script>console.log("hello-test")</script>abc123';
@@ -339,7 +335,7 @@ class PageContentTest extends TestCase
         ];
 
         $this->asEditor();
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         foreach ($checks as $check) {
             $page->html = $check;
@@ -358,7 +354,7 @@ class PageContentTest extends TestCase
     public function test_page_inline_on_attributes_show_if_configured()
     {
         $this->asEditor();
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         config()->push('app.allow_content_scripts', 'true');
 
         $script = '<p onmouseenter="console.log(\'test\')">Hello</p>';
@@ -390,7 +386,7 @@ class PageContentTest extends TestCase
     public function test_duplicate_ids_fixed_on_page_save()
     {
         $this->asEditor();
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $content = '<ul id="bkmrk-test"><li>test a</li><li><ul id="bkmrk-test"><li>test b</li></ul></li></ul>';
         $pageSave = $this->put($page->getUrl(), [
@@ -407,7 +403,7 @@ class PageContentTest extends TestCase
     public function test_anchors_referencing_non_bkmrk_ids_rewritten_after_save()
     {
         $this->asEditor();
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $content = '<h1 id="non-standard-id">test</h1><p><a href="#non-standard-id">link</a></p>';
         $this->put($page->getUrl(), [
@@ -485,7 +481,7 @@ class PageContentTest extends TestCase
 
     public function test_page_text_decodes_html_entities()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $this->actingAs($this->getAdmin())
             ->put($page->getUrl(''), [
@@ -500,7 +496,7 @@ class PageContentTest extends TestCase
     public function test_page_markdown_table_rendering()
     {
         $this->asEditor();
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $content = '| Syntax      | Description |
 | ----------- | ----------- |
@@ -521,7 +517,7 @@ class PageContentTest extends TestCase
     public function test_page_markdown_task_list_rendering()
     {
         $this->asEditor();
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $content = '- [ ] Item a
 - [x] Item b';
@@ -542,7 +538,7 @@ class PageContentTest extends TestCase
     public function test_page_markdown_strikethrough_rendering()
     {
         $this->asEditor();
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $content = '~~some crossed out text~~';
         $this->put($page->getUrl(), [
@@ -560,7 +556,7 @@ class PageContentTest extends TestCase
     public function test_page_markdown_single_html_comment_saving()
     {
         $this->asEditor();
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $content = '<!-- Test Comment -->';
         $this->put($page->getUrl(), [
@@ -579,7 +575,7 @@ class PageContentTest extends TestCase
     public function test_base64_images_get_extracted_from_page_content()
     {
         $this->asEditor();
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $this->put($page->getUrl(), [
             'name' => $page->name, 'summary' => '',
@@ -601,7 +597,7 @@ class PageContentTest extends TestCase
     public function test_base64_images_get_extracted_when_containing_whitespace()
     {
         $this->asEditor();
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $base64PngWithWhitespace = "iVBORw0KGg\noAAAANSUhE\tUgAAAAEAAAA BCA   YAAAAfFcSJAAA\n\t ACklEQVR4nGMAAQAABQAB";
         $base64PngWithoutWhitespace = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACklEQVR4nGMAAQAABQAB';
@@ -632,7 +628,7 @@ class PageContentTest extends TestCase
 
         foreach ($extensions as $extension) {
             $this->asEditor();
-            $page = Page::query()->first();
+            $page = $this->entities->page();
 
             $this->put($page->getUrl(), [
                 'name' => $page->name, 'summary' => '',
@@ -647,7 +643,7 @@ class PageContentTest extends TestCase
     public function test_base64_images_get_extracted_from_markdown_page_content()
     {
         $this->asEditor();
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $this->put($page->getUrl(), [
             'name'     => $page->name, 'summary' => '',
@@ -672,7 +668,7 @@ class PageContentTest extends TestCase
         $pcreRecursionLimit = ini_get('pcre.recursion_limit');
 
         $this->asEditor();
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         ini_set('pcre.backtrack_limit', '500');
         ini_set('pcre.recursion_limit', '500');
@@ -701,7 +697,7 @@ class PageContentTest extends TestCase
 
     public function test_base64_images_within_markdown_blanked_if_not_supported_extension_for_extract()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $this->asEditor()->put($page->getUrl(), [
             'name'     => $page->name, 'summary' => '',
@@ -713,7 +709,7 @@ class PageContentTest extends TestCase
 
     public function test_nested_headers_gets_assigned_an_id()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $content = '<table><tbody><tr><td><h5>Simple Test</h5></td></tr></tbody></table>';
         $this->asEditor()->put($page->getUrl(), [
@@ -729,8 +725,7 @@ class PageContentTest extends TestCase
 
     public function test_non_breaking_spaces_are_preserved()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $content = '<p>&nbsp;</p>';
         $this->asEditor()->put($page->getUrl(), [
index 8ca73847af51388bc4f1d0c2738edddb68953294..acf6b01e894950f5ada5f75d3f0a5ac54c96ec50 100644 (file)
@@ -85,8 +85,7 @@ class PageDraftTest extends TestCase
     {
         $admin = $this->getAdmin();
         $editor = $this->getEditor();
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $this->actingAs($editor)->put('/ajax/page/' . $page->id . '/save-draft', [
             'name' => $page->name,
@@ -120,8 +119,7 @@ class PageDraftTest extends TestCase
     {
         $admin = $this->getAdmin();
         $editor = $this->getEditor();
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $this->actingAs($admin)->put('/ajax/page/' . $page->id . '/save-draft', [
             'name' => $page->name,
@@ -140,8 +138,7 @@ class PageDraftTest extends TestCase
 
     public function test_draft_pages_show_on_homepage()
     {
-        /** @var Book $book */
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $resp = $this->asAdmin()->get('/');
         $this->withHtml($resp)->assertElementNotContains('#recent-drafts', 'New Page');
 
@@ -152,8 +149,7 @@ class PageDraftTest extends TestCase
 
     public function test_draft_pages_not_visible_by_others()
     {
-        /** @var Book $book */
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $chapter = $book->chapters->first();
         $newUser = $this->getEditor();
 
@@ -171,8 +167,7 @@ class PageDraftTest extends TestCase
     public function test_page_html_in_ajax_fetch_response()
     {
         $this->asAdmin();
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $this->getJson('/ajax/page/' . $page->id)->assertJson([
             'html' => $page->html,
@@ -181,8 +176,7 @@ class PageDraftTest extends TestCase
 
     public function test_updating_page_draft_with_markdown_retains_markdown_content()
     {
-        /** @var Book $book */
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $this->asEditor()->get($book->getUrl('/create-page'));
         /** @var Page $draft */
         $draft = Page::query()->where('draft', '=', true)->where('book_id', '=', $book->id)->firstOrFail();
@@ -207,8 +201,7 @@ class PageDraftTest extends TestCase
 
     public function test_slug_generated_on_draft_publish_to_page_when_no_name_change()
     {
-        /** @var Book $book */
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $this->asEditor()->get($book->getUrl('/create-page'));
         /** @var Page $draft */
         $draft = Page::query()->where('draft', '=', true)->where('book_id', '=', $book->id)->firstOrFail();
index e5aa549b35e6d8f5b9a98e897872d835d6ec04b4..6ce649a5420239d60dfcae79de6ae4a3387d7e2e 100644 (file)
@@ -58,8 +58,7 @@ class PageEditorTest extends TestCase
     public function test_empty_markdown_still_saves_without_error()
     {
         $this->setSettings(['app-editor' => 'markdown']);
-        /** @var Book $book */
-        $book = Book::query()->first();
+        $book = $this->entities->book();
 
         $this->asEditor()->get($book->getUrl('/create-page'));
         $draft = Page::query()->where('book_id', '=', $book->id)
@@ -108,8 +107,7 @@ class PageEditorTest extends TestCase
 
     public function test_switching_from_html_to_clean_markdown_works()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $page->html = '<h2>A Header</h2><p>Some <strong>bold</strong> content.</p>';
         $page->save();
 
@@ -121,8 +119,7 @@ class PageEditorTest extends TestCase
 
     public function test_switching_from_html_to_stable_markdown_works()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $page->html = '<h2>A Header</h2><p>Some <strong>bold</strong> content.</p>';
         $page->save();
 
@@ -134,8 +131,7 @@ class PageEditorTest extends TestCase
 
     public function test_switching_from_markdown_to_wysiwyg_works()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $page->html = '';
         $page->markdown = "## A Header\n\nSome content with **bold** text!";
         $page->save();
@@ -180,8 +176,7 @@ class PageEditorTest extends TestCase
 
     public function test_page_editor_type_switch_does_not_work_without_change_editor_permissions()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $page->html = '<h2>A Header</h2><p>Some <strong>bold</strong> content.</p>';
         $page->save();
 
@@ -193,8 +188,7 @@ class PageEditorTest extends TestCase
 
     public function test_page_save_does_not_change_active_editor_without_change_editor_permissions()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $page->html = '<h2>A Header</h2><p>Some <strong>bold</strong> content.</p>';
         $page->editor = 'wysiwyg';
         $page->save();
index 05c86c97d8519e89afabcf13de8a090c5b46a2c6..eabece4c69db52ff5ce0de85658da153d5a4934d 100644 (file)
@@ -10,8 +10,7 @@ class PageRevisionTest extends TestCase
 {
     public function test_revision_links_visible_to_viewer()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $html = $this->withHtml($this->asViewer()->get($page->getUrl()));
         $html->assertLinkExists($page->getUrl('/revisions'));
@@ -143,8 +142,7 @@ class PageRevisionTest extends TestCase
 
     public function test_revision_deletion()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->createRevisions($page, 2);
         $beforeRevisionCount = $page->revisions->count();
 
@@ -208,8 +206,7 @@ class PageRevisionTest extends TestCase
 
     public function test_revision_restore_action_only_visible_with_permission()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->createRevisions($page, 2);
 
         $viewer = $this->getViewer();
@@ -227,8 +224,7 @@ class PageRevisionTest extends TestCase
 
     public function test_revision_delete_action_only_visible_with_permission()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->createRevisions($page, 2);
 
         $viewer = $this->getViewer();
index 0f906460b1fd74823b3be6c215957a10e589cd96..067fceeb4db00951c65b3f79e2b93567dd482deb 100644 (file)
@@ -12,8 +12,7 @@ class PageTest extends TestCase
 {
     public function test_create()
     {
-        /** @var Chapter $chapter */
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
         $page = Page::factory()->make([
             'name' => 'My First Page',
         ]);
@@ -39,7 +38,7 @@ class PageTest extends TestCase
 
     public function test_page_view_when_creator_is_deleted_but_owner_exists()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $user = $this->getViewer();
         $owner = $this->getEditor();
         $page->created_by = $user->id;
@@ -55,7 +54,7 @@ class PageTest extends TestCase
     public function test_page_creation_with_markdown_content()
     {
         $this->setSettings(['app-editor' => 'markdown']);
-        $book = Book::query()->first();
+        $book = $this->entities->book();
 
         $this->asEditor()->get($book->getUrl('/create-page'));
         $draft = Page::query()->where('book_id', '=', $book->id)
@@ -83,7 +82,7 @@ class PageTest extends TestCase
 
     public function test_page_delete()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->assertNull($page->deleted_at);
 
         $deleteViewReq = $this->asEditor()->get($page->getUrl('/delete'));
@@ -103,8 +102,7 @@ class PageTest extends TestCase
 
     public function test_page_full_delete_removes_all_revisions()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $page->revisions()->create([
             'html' => '<p>ducks</p>',
             'name' => 'my page revision',
@@ -221,8 +219,7 @@ class PageTest extends TestCase
 
     public function test_old_page_slugs_redirect_to_new_pages()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         // Need to save twice since revisions are not generated in seeder.
         $this->asAdmin()->put($page->getUrl(), [
@@ -244,8 +241,7 @@ class PageTest extends TestCase
 
     public function test_page_within_chapter_deletion_returns_to_chapter()
     {
-        /** @var Chapter $chapter */
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
         $page = $chapter->pages()->first();
 
         $this->asEditor()->delete($page->getUrl())
@@ -264,8 +260,7 @@ class PageTest extends TestCase
     public function test_recently_updated_pages_view_shows_updated_by_details()
     {
         $user = $this->getEditor();
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $this->actingAs($user)->put($page->getUrl(), [
             'name' => 'Updated title',
index 93b668a0e2c81680ae61daa1665b5043cf202c18..83a8f700524874e6e94be2417a533a3c376375a8 100644 (file)
@@ -33,7 +33,7 @@ class SortTest extends TestCase
 
     public function test_page_move_into_book()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $currentBook = $page->book;
         $newBook = Book::query()->where('id', '!=', $currentBook->id)->first();
 
@@ -55,7 +55,7 @@ class SortTest extends TestCase
 
     public function test_page_move_into_chapter()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $currentBook = $page->book;
         $newBook = Book::query()->where('id', '!=', $currentBook->id)->first();
         $newChapter = $newBook->chapters()->first();
@@ -93,7 +93,7 @@ class SortTest extends TestCase
 
     public function test_page_move_requires_create_permissions_on_parent()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $currentBook = $page->book;
         $newBook = Book::query()->where('id', '!=', $currentBook->id)->first();
         $editor = $this->getEditor();
@@ -118,7 +118,7 @@ class SortTest extends TestCase
 
     public function test_page_move_requires_delete_permissions()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $currentBook = $page->book;
         $newBook = Book::query()->where('id', '!=', $currentBook->id)->first();
         $editor = $this->getEditor();
@@ -145,7 +145,7 @@ class SortTest extends TestCase
 
     public function test_chapter_move()
     {
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
         $currentBook = $chapter->book;
         $pageToCheck = $chapter->pages->first();
         $newBook = Book::query()->where('id', '!=', $currentBook->id)->first();
@@ -173,7 +173,7 @@ class SortTest extends TestCase
 
     public function test_chapter_move_requires_delete_permissions()
     {
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
         $currentBook = $chapter->book;
         $newBook = Book::query()->where('id', '!=', $currentBook->id)->first();
         $editor = $this->getEditor();
@@ -200,7 +200,7 @@ class SortTest extends TestCase
 
     public function test_chapter_move_requires_create_permissions_in_new_book()
     {
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
         $currentBook = $chapter->book;
         $newBook = Book::query()->where('id', '!=', $currentBook->id)->first();
         $editor = $this->getEditor();
index d22dc2f4482c963d8f90c527f152997369268995..18ee318267cff69c7c245f36f60e9e8c63d55a27 100644 (file)
@@ -102,8 +102,7 @@ class TagTest extends TestCase
 
     public function test_tags_index_shows_tag_name_as_expected_with_right_counts()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $page->tags()->create(['name' => 'Category', 'value' => 'GreatTestContent']);
         $page->tags()->create(['name' => 'Category', 'value' => 'OtherTestContent']);
 
@@ -120,8 +119,7 @@ class TagTest extends TestCase
         $html->assertElementContains('a[title="Assigned to Shelves"]', '0');
         $html->assertElementContains('a[href$="/tags?name=Category"]', '2 unique values');
 
-        /** @var Book $book */
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $book->tags()->create(['name' => 'Category', 'value' => 'GreatTestContent']);
         $resp = $this->asEditor()->get('/tags');
         $this->withHtml($resp)->assertElementContains('a[title="Total tag usages"]', '3');
@@ -131,8 +129,7 @@ class TagTest extends TestCase
 
     public function test_tag_index_can_be_searched()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $page->tags()->create(['name' => 'Category', 'value' => 'GreatTestContent']);
 
         $resp = $this->asEditor()->get('/tags?search=cat');
@@ -148,8 +145,7 @@ class TagTest extends TestCase
 
     public function test_tag_index_search_will_show_mulitple_values_of_a_single_tag_name()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $page->tags()->create(['name' => 'Animal', 'value' => 'Catfish']);
         $page->tags()->create(['name' => 'Animal', 'value' => 'Catdog']);
 
@@ -160,8 +156,7 @@ class TagTest extends TestCase
 
     public function test_tag_index_can_be_scoped_to_specific_tag_name()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $page->tags()->create(['name' => 'Category', 'value' => 'GreatTestContent']);
         $page->tags()->create(['name' => 'Category', 'value' => 'OtherTestContent']);
         $page->tags()->create(['name' => 'OtherTagName', 'value' => 'OtherValue']);
@@ -178,8 +173,7 @@ class TagTest extends TestCase
 
     public function test_tags_index_adheres_to_page_permissions()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $page->tags()->create(['name' => 'SuperCategory', 'value' => 'GreatTestContent']);
 
         $resp = $this->asEditor()->get('/tags');
@@ -216,7 +210,7 @@ class TagTest extends TestCase
 
     public function test_tag_classes_are_escaped()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $page->tags()->create(['name' => '<>']);
         $resp = $this->asEditor()->get($page->getUrl());
         $resp->assertDontSee('tag-name-<>', false);
index 2eeb6537e0e0b9afaf5823ad99a66e2eab7a1322..c46d65bde7ff787be73e60791142509dacbb14ab 100644 (file)
@@ -27,7 +27,7 @@ class ErrorTest extends TestCase
     {
         $this->actingAs($this->getViewer());
         $handler = $this->withTestLogger();
-        $book = Book::query()->first();
+        $book = $this->entities->book();
 
         // Ensure we're seeing errors
         Log::error('cat');
index de36c77e1e0117b6f0691ab44abcc0069380963e..03a71231679bf2425d8d4d3c23569f4cad131844 100644 (file)
@@ -13,7 +13,7 @@ class FavouriteTest extends TestCase
 {
     public function test_page_add_favourite_flow()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $editor = $this->getEditor();
 
         $resp = $this->actingAs($editor)->get($page->getUrl());
@@ -36,7 +36,7 @@ class FavouriteTest extends TestCase
 
     public function test_page_remove_favourite_flow()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $editor = $this->getEditor();
         Favourite::query()->forceCreate([
             'user_id'           => $editor->id,
@@ -62,8 +62,7 @@ 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();
@@ -115,8 +114,7 @@ class FavouriteTest extends TestCase
         $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('/');
@@ -126,8 +124,7 @@ class FavouriteTest extends TestCase
 
     public function test_favourites_list_page_shows_favourites_and_has_working_pagination()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $editor = $this->getEditor();
 
         $resp = $this->actingAs($editor)->get('/favourites');
index d3888e71f66392b91f71a55192c71a6c2c2b90ba..152f7a3ac1abc9557c3045b2ac5ead0071b5df3a 100644 (file)
@@ -141,7 +141,7 @@ class EntityProvider
      */
     public function newPage(array $input = ['name' => 'test page', 'html' => 'My new test page']): Page
     {
-        $book = Book::query()->first();
+        $book = $this->book();
         $pageRepo = app(PageRepo::class);
         $draftPage = $pageRepo->getNewDraftPage($book);
         $this->addToCache($draftPage);
index bb42f49f2d353a56221fff53b540f42ee1dd4bf9..60e10a087317357da9663fedfb26d405dc467f57 100644 (file)
@@ -81,8 +81,7 @@ class HomepageTest extends TestCase
 
     public function test_custom_homepage_cannot_be_deleted_from_parent_deletion()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->setSettings([
             'app-homepage'      => $page->id,
             'app-homepage-type' => 'page',
@@ -161,7 +160,7 @@ class HomepageTest extends TestCase
         $this->setSettings(['app-homepage-type' => 'bookshelves']);
         $this->asEditor();
 
-        $shelf = Bookshelf::query()->first();
+        $shelf = $this->entities->shelf();
         $book = $shelf->books()->first();
 
         // Ensure initially visible
index 3f807f024ef9c6f5cc4b02b9ceb6ae4fa451fa37..f3c439767575d337b5a79504de64c89c627349d9 100644 (file)
@@ -18,7 +18,7 @@ class OpenGraphTest extends TestCase
 
     public function test_page_tags()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $resp = $this->asEditor()->get($page->getUrl());
         $tags = $this->getOpenGraphTags($resp);
 
@@ -29,7 +29,7 @@ class OpenGraphTest extends TestCase
 
     public function test_chapter_tags()
     {
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
         $resp = $this->asEditor()->get($chapter->getUrl());
         $tags = $this->getOpenGraphTags($resp);
 
@@ -40,7 +40,7 @@ class OpenGraphTest extends TestCase
 
     public function test_book_tags()
     {
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $resp = $this->asEditor()->get($book->getUrl());
         $tags = $this->getOpenGraphTags($resp);
 
@@ -60,7 +60,7 @@ class OpenGraphTest extends TestCase
 
     public function test_shelf_tags()
     {
-        $shelf = Bookshelf::query()->first();
+        $shelf = $this->entities->shelf();
         $resp = $this->asEditor()->get($shelf->getUrl());
         $tags = $this->getOpenGraphTags($resp);
 
index fe508668eae6fb660504dd3684d882a289753b8a..65a67dc0f41e19e4144dca26eb6b8e24ffcd39cb 100644 (file)
@@ -13,7 +13,7 @@ class EntityOwnerChangeTest extends TestCase
 {
     public function test_changing_page_owner()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $user = User::query()->where('id', '!=', $page->owned_by)->first();
 
         $this->asAdmin()->put($page->getUrl('permissions'), ['owned_by' => $user->id]);
@@ -22,7 +22,7 @@ class EntityOwnerChangeTest extends TestCase
 
     public function test_changing_chapter_owner()
     {
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
         $user = User::query()->where('id', '!=', $chapter->owned_by)->first();
 
         $this->asAdmin()->put($chapter->getUrl('permissions'), ['owned_by' => $user->id]);
@@ -31,7 +31,7 @@ class EntityOwnerChangeTest extends TestCase
 
     public function test_changing_book_owner()
     {
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $user = User::query()->where('id', '!=', $book->owned_by)->first();
 
         $this->asAdmin()->put($book->getUrl('permissions'), ['owned_by' => $user->id]);
@@ -40,7 +40,7 @@ class EntityOwnerChangeTest extends TestCase
 
     public function test_changing_shelf_owner()
     {
-        $shelf = Bookshelf::query()->first();
+        $shelf = $this->entities->shelf();
         $user = User::query()->where('id', '!=', $shelf->owned_by)->first();
 
         $this->asAdmin()->put($shelf->getUrl('permissions'), ['owned_by' => $user->id]);
index 9e80b752adc31b4a067724576edd61ce1920400d..9312b88cfa0d24ce8ab9f2c1920824256bf330c7 100644 (file)
@@ -41,8 +41,7 @@ class EntityPermissionsTest extends TestCase
 
     public function test_bookshelf_view_restriction()
     {
-        /** @var Bookshelf $shelf */
-        $shelf = Bookshelf::query()->first();
+        $shelf = $this->entities->shelf();
 
         $this->actingAs($this->user)
             ->get($shelf->getUrl())
@@ -61,8 +60,7 @@ class EntityPermissionsTest extends TestCase
 
     public function test_bookshelf_update_restriction()
     {
-        /** @var Bookshelf $shelf */
-        $shelf = Bookshelf::query()->first();
+        $shelf = $this->entities->shelf();
 
         $this->actingAs($this->user)
             ->get($shelf->getUrl('/edit'))
@@ -82,8 +80,7 @@ class EntityPermissionsTest extends TestCase
 
     public function test_bookshelf_delete_restriction()
     {
-        /** @var Bookshelf $shelf */
-        $shelf = Bookshelf::query()->first();
+        $shelf = $this->entities->shelf();
 
         $this->actingAs($this->user)
             ->get($shelf->getUrl('/delete'))
@@ -103,8 +100,7 @@ class EntityPermissionsTest extends TestCase
 
     public function test_book_view_restriction()
     {
-        /** @var Book $book */
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $bookPage = $book->pages->first();
         $bookChapter = $book->chapters->first();
 
@@ -134,8 +130,7 @@ class EntityPermissionsTest extends TestCase
 
     public function test_book_create_restriction()
     {
-        /** @var Book $book */
-        $book = Book::query()->first();
+        $book = $this->entities->book();
 
         $bookUrl = $book->getUrl();
         $resp = $this->actingAs($this->viewer)->get($bookUrl);
@@ -181,8 +176,7 @@ class EntityPermissionsTest extends TestCase
 
     public function test_book_update_restriction()
     {
-        /** @var Book $book */
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $bookPage = $book->pages->first();
         $bookChapter = $book->chapters->first();
 
@@ -209,8 +203,7 @@ class EntityPermissionsTest extends TestCase
 
     public function test_book_delete_restriction()
     {
-        /** @var Book $book */
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $bookPage = $book->pages->first();
         $bookChapter = $book->chapters->first();
 
@@ -236,8 +229,7 @@ class EntityPermissionsTest extends TestCase
 
     public function test_chapter_view_restriction()
     {
-        /** @var Chapter $chapter */
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
         $chapterPage = $chapter->pages->first();
 
         $chapterUrl = $chapter->getUrl();
@@ -256,8 +248,7 @@ class EntityPermissionsTest extends TestCase
 
     public function test_chapter_create_restriction()
     {
-        /** @var Chapter $chapter */
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
 
         $chapterUrl = $chapter->getUrl();
         $resp = $this->actingAs($this->user)->get($chapterUrl);
@@ -285,8 +276,7 @@ class EntityPermissionsTest extends TestCase
 
     public function test_chapter_update_restriction()
     {
-        /** @var Chapter $chapter */
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
         $chapterPage = $chapter->pages->first();
 
         $chapterUrl = $chapter->getUrl();
@@ -308,8 +298,7 @@ class EntityPermissionsTest extends TestCase
 
     public function test_chapter_delete_restriction()
     {
-        /** @var Chapter $chapter */
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
         $chapterPage = $chapter->pages->first();
 
         $chapterUrl = $chapter->getUrl();
@@ -332,8 +321,7 @@ class EntityPermissionsTest extends TestCase
 
     public function test_page_view_restriction()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $pageUrl = $page->getUrl();
         $this->actingAs($this->user)->get($pageUrl)->assertOk();
@@ -349,8 +337,7 @@ class EntityPermissionsTest extends TestCase
 
     public function test_page_update_restriction()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $pageUrl = $page->getUrl();
         $resp = $this->actingAs($this->user)
@@ -371,8 +358,7 @@ class EntityPermissionsTest extends TestCase
 
     public function test_page_delete_restriction()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $pageUrl = $page->getUrl();
         $this->actingAs($this->user)
@@ -436,8 +422,7 @@ class EntityPermissionsTest extends TestCase
 
     public function test_restricted_pages_not_visible_in_book_navigation_on_pages()
     {
-        /** @var Chapter $chapter */
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
         $page = $chapter->pages->first();
         $page2 = $chapter->pages[2];
 
@@ -449,8 +434,7 @@ class EntityPermissionsTest extends TestCase
 
     public function test_restricted_pages_not_visible_in_book_navigation_on_chapters()
     {
-        /** @var Chapter $chapter */
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
         $page = $chapter->pages->first();
 
         $this->setRestrictionsForTestRoles($page, []);
@@ -461,8 +445,7 @@ class EntityPermissionsTest extends TestCase
 
     public function test_restricted_pages_not_visible_on_chapter_pages()
     {
-        /** @var Chapter $chapter */
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
         $page = $chapter->pages->first();
 
         $this->setRestrictionsForTestRoles($page, []);
@@ -474,8 +457,7 @@ class EntityPermissionsTest extends TestCase
 
     public function test_restricted_chapter_pages_not_visible_on_book_page()
     {
-        /** @var Chapter $chapter */
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
         $this->actingAs($this->user)
             ->get($chapter->book->getUrl())
             ->assertSee($chapter->pages->first()->name);
@@ -491,8 +473,7 @@ class EntityPermissionsTest extends TestCase
 
     public function test_bookshelf_update_restriction_override()
     {
-        /** @var Bookshelf $shelf */
-        $shelf = Bookshelf::query()->first();
+        $shelf = $this->entities->shelf();
 
         $this->actingAs($this->viewer)
             ->get($shelf->getUrl('/edit'))
@@ -510,8 +491,7 @@ class EntityPermissionsTest extends TestCase
 
     public function test_bookshelf_delete_restriction_override()
     {
-        /** @var Bookshelf $shelf */
-        $shelf = Bookshelf::query()->first();
+        $shelf = $this->entities->shelf();
 
         $this->actingAs($this->viewer)
             ->get($shelf->getUrl('/delete'))
@@ -529,8 +509,7 @@ class EntityPermissionsTest extends TestCase
 
     public function test_book_create_restriction_override()
     {
-        /** @var Book $book */
-        $book = Book::query()->first();
+        $book = $this->entities->book();
 
         $bookUrl = $book->getUrl();
         $resp = $this->actingAs($this->viewer)->get($bookUrl);
@@ -571,8 +550,7 @@ class EntityPermissionsTest extends TestCase
 
     public function test_book_update_restriction_override()
     {
-        /** @var Book $book */
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $bookPage = $book->pages->first();
         $bookChapter = $book->chapters->first();
 
@@ -598,8 +576,7 @@ class EntityPermissionsTest extends TestCase
 
     public function test_book_delete_restriction_override()
     {
-        /** @var Book $book */
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $bookPage = $book->pages->first();
         $bookChapter = $book->chapters->first();
 
@@ -626,8 +603,7 @@ class EntityPermissionsTest extends TestCase
 
     public function test_page_visible_if_has_permissions_when_book_not_visible()
     {
-        /** @var Book $book */
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $bookChapter = $book->chapters->first();
         $bookPage = $bookChapter->pages->first();
 
@@ -667,8 +643,7 @@ class EntityPermissionsTest extends TestCase
 
     public function test_can_create_page_if_chapter_has_permissions_when_book_not_visible()
     {
-        /** @var Book $book */
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $this->setRestrictionsForTestRoles($book, []);
         $bookChapter = $book->chapters->first();
         $this->setRestrictionsForTestRoles($bookChapter, ['view']);
index 7e9ce6100bfe2dc75c6ec694038f16508397f7d9..44f1a35cccd6c32529e35866550412de715e8a55 100644 (file)
@@ -11,7 +11,7 @@ class ExportPermissionsTest extends TestCase
 {
     public function test_page_content_without_view_access_hidden_on_chapter_export()
     {
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
         $page = $chapter->pages()->firstOrFail();
         $pageContent = Str::random(48);
         $page->html = '<p>' . $pageContent . '</p>';
@@ -39,7 +39,7 @@ class ExportPermissionsTest extends TestCase
 
     public function test_page_content_without_view_access_hidden_on_book_export()
     {
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $page = $book->pages()->firstOrFail();
         $pageContent = Str::random(48);
         $page->html = '<p>' . $pageContent . '</p>';
index a24d5f8d80fb70005b825c50e5ec70a23d9556b0..23bfde74ce0a050670535954e1b04eae90fcb715 100644 (file)
@@ -520,8 +520,7 @@ class RolesTest extends TestCase
 
     public function test_chapter_create_all_permissions()
     {
-        /** @var Book $book */
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $this->checkAccessPermission('chapter-create-all', [
             $book->getUrl('/create-chapter'),
         ], [
@@ -603,10 +602,8 @@ class RolesTest extends TestCase
 
     public function test_page_create_own_permissions()
     {
-        /** @var Book $book */
-        $book = Book::query()->first();
-        /** @var Chapter $chapter */
-        $chapter = Chapter::query()->first();
+        $book = $this->entities->book();
+        $chapter = $this->entities->chapter();
 
         $entities = $this->entities->createChainBelongingToUser($this->user);
         $ownBook = $entities['book'];
@@ -652,10 +649,8 @@ class RolesTest extends TestCase
 
     public function test_page_create_all_permissions()
     {
-        /** @var Book $book */
-        $book = Book::query()->first();
-        /** @var Chapter $chapter */
-        $chapter = Chapter::query()->first();
+        $book = $this->entities->book();
+        $chapter = $this->entities->chapter();
         $createUrl = $book->getUrl('/create-page');
 
         $createUrlChapter = $chapter->getUrl('/create-page');
@@ -806,8 +801,7 @@ class RolesTest extends TestCase
     public function test_image_delete_own_permission()
     {
         $this->giveUserPermissions($this->user, ['image-update-all']);
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $image = Image::factory()->create([
             'uploaded_to' => $page->id,
             'created_by'  => $this->user->id,
@@ -826,8 +820,7 @@ class RolesTest extends TestCase
     {
         $this->giveUserPermissions($this->user, ['image-update-all']);
         $admin = $this->getAdmin();
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $image = Image::factory()->create(['uploaded_to' => $page->id, 'created_by' => $admin->id, 'updated_by' => $admin->id]);
 
         $this->actingAs($this->user)->json('delete', '/images/' . $image->id)->assertStatus(403);
@@ -845,8 +838,7 @@ class RolesTest extends TestCase
     public function test_role_permission_removal()
     {
         // To cover issue fixed in f99c8ff99aee9beb8c692f36d4b84dc6e651e50a.
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $viewerRole = Role::getRole('viewer');
         $viewer = $this->getViewer();
         $this->actingAs($viewer)->get($page->getUrl())->assertOk();
index 309e09600c04c4d811dd4297f8779c91ae803fa1..14759c5783a4eaed951dbb7c94eb01b52db3fec0 100644 (file)
@@ -17,11 +17,11 @@ class PublicActionTest extends TestCase
     public function test_app_not_public()
     {
         $this->setSettings(['app-public' => 'false']);
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $this->get('/books')->assertRedirect('/login');
         $this->get($book->getUrl())->assertRedirect('/login');
 
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->get($page->getUrl())->assertRedirect('/login');
     }
 
@@ -93,8 +93,7 @@ class PublicActionTest extends TestCase
         $this->app->make(JointPermissionBuilder::class)->rebuildForRole($publicRole);
         user()->clearPermissionCache();
 
-        /** @var Chapter $chapter */
-        $chapter = Chapter::query()->first();
+        $chapter = $this->entities->chapter();
         $resp = $this->get($chapter->getUrl());
         $resp->assertSee('New Page');
         $this->withHtml($resp)->assertElementExists('a[href="' . $chapter->getUrl('/create-page') . '"]');
@@ -118,7 +117,7 @@ class PublicActionTest extends TestCase
 
     public function test_content_not_listed_on_404_for_public_users()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $page->fill(['name' => 'my testing random unique page name'])->save();
         $this->asAdmin()->get($page->getUrl()); // Fake visit to show on recents
         $resp = $this->get('/cats/dogs/hippos');
@@ -162,8 +161,7 @@ class PublicActionTest extends TestCase
     public function test_public_view_then_login_redirects_to_previous_content()
     {
         $this->setSettings(['app-public' => 'true']);
-        /** @var Book $book */
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $resp = $this->get($book->getUrl());
         $resp->assertSee($book->name);
 
@@ -175,8 +173,7 @@ class PublicActionTest extends TestCase
     public function test_access_hidden_content_then_login_redirects_to_intended_content()
     {
         $this->setSettings(['app-public' => 'true']);
-        /** @var Book $book */
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $this->entities->setPermissions($book);
 
         $resp = $this->get($book->getUrl());
index 43b8a36ae3732e7b7c75faeeee0a86dbe17b2fc8..eb862a9fdabd79dda3a1e21378c8a30da31ce5d7 100644 (file)
@@ -40,7 +40,7 @@ class CrossLinkParserTest extends TestCase
 
     public function test_similar_page_and_book_reference_links_dont_conflict()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $book = $page->book;
 
         $html = '
index 59263ee0c5674015440695d71406b0b1ee21696e..16ea19ac5ab9d04a53ac43356cebd9791e5f151b 100644 (file)
@@ -97,7 +97,7 @@ class ReferencesTest extends TestCase
     {
         /** @var Page $page */
         /** @var Page $pageB */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $pageB = Page::query()->where('id', '!=', $page->id)->first();
         $this->createReference($pageB, $page);
 
@@ -109,8 +109,7 @@ class ReferencesTest extends TestCase
 
     public function test_reference_page_shows_empty_state_with_no_references()
     {
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $this->asEditor()
             ->get($page->getUrl('/references'))
@@ -124,7 +123,7 @@ class ReferencesTest extends TestCase
         /** @var Book $book */
         $pageA = Page::query()->first();
         $pageB = Page::query()->where('id', '!=', $pageA->id)->first();
-        $book = Book::query()->first();
+        $book = $this->entities->book();
 
         foreach ([$pageA, $pageB] as $page) {
             $page->html = '<a href="' . $book->getUrl() . '">Link</a>';
@@ -200,8 +199,8 @@ class ReferencesTest extends TestCase
     {
         /** @var Page $page */
         /** @var Book $book */
-        $page = Page::query()->first();
-        $book = Book::query()->first();
+        $page = $this->entities->page();
+        $book = $this->entities->book();
 
         $bookUrl = $book->getUrl();
         $markdown = '
index 465c1aaade5e8859d6e7c1b8da0fb18c541dd221..8b5705afdbfa9fc3e89aafbe66c35c64b2fc4d98 100644 (file)
@@ -16,7 +16,7 @@ class RecycleBinTest extends TestCase
 {
     public function test_recycle_bin_routes_permissions()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $editor = $this->getEditor();
         $this->actingAs($editor)->delete($page->getUrl());
         $deletion = Deletion::query()->firstOrFail();
@@ -57,7 +57,7 @@ class RecycleBinTest extends TestCase
 
     public function test_recycle_bin_view()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $book = Book::query()->whereHas('pages')->whereHas('chapters')->withCount(['pages', 'chapters'])->first();
         $editor = $this->getEditor();
         $this->actingAs($editor)->delete($page->getUrl());
@@ -74,7 +74,7 @@ class RecycleBinTest extends TestCase
 
     public function test_recycle_bin_empty()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $book = Book::query()->where('id', '!=', $page->book_id)->whereHas('pages')->whereHas('chapters')->with(['pages', 'chapters'])->firstOrFail();
         $editor = $this->getEditor();
         $this->actingAs($editor)->delete($page->getUrl());
index ac4b35de2029d070482c36f06db63e6b6fe7ce09..4d612a870b2e393f6f468c719ec83fe256c3e9ab 100644 (file)
@@ -64,7 +64,7 @@ class ThemeTest extends TestCase
         };
         Theme::listen(ThemeEvents::COMMONMARK_ENVIRONMENT_CONFIGURE, $callback);
 
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $content = new PageContent($page);
         $content->setNewMarkdown('# test');
 
@@ -199,7 +199,7 @@ class ThemeTest extends TestCase
 
     public function test_event_activity_logged()
     {
-        $book = Book::query()->first();
+        $book = $this->entities->book();
         $args = [];
         $callback = function (...$eventArgs) use (&$args) {
             $args = $eventArgs;
@@ -218,7 +218,7 @@ class ThemeTest extends TestCase
     {
         /** @var Page $page */
         /** @var Page $otherPage */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $otherPage = Page::query()->where('id', '!=', $page->id)->first();
         $otherPage->html = '<p id="bkmrk-cool">This is a really cool section</p>';
         $page->html = "<p>{{@{$otherPage->id}#bkmrk-cool}}</p>";
@@ -324,8 +324,7 @@ class ThemeTest extends TestCase
     {
         $bodyStartStr = 'garry-fought-against-the-panther';
         $bodyEndStr = 'garry-lost-his-fight-with-grace';
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $this->usingThemeFolder(function (string $folder) use ($bodyStartStr, $bodyEndStr, $page) {
             $viewDir = theme_path('layouts/parts');
index 7280510f3e5bd9885d0cd6466b99dc7122cb0047..915a9ba4d26a5fec7bcd4454919cecd19e2ecd8e 100644 (file)
@@ -73,7 +73,7 @@ class AttachmentTest extends TestCase
 
     public function test_file_upload()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->asAdmin();
         $admin = $this->getAdmin();
         $fileName = 'upload_test_file.txt';
@@ -101,7 +101,7 @@ class AttachmentTest extends TestCase
 
     public function test_file_upload_does_not_use_filename()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $fileName = 'upload_test_file.txt';
 
         $upload = $this->asAdmin()->uploadFile($fileName, $page->id);
@@ -115,7 +115,7 @@ class AttachmentTest extends TestCase
 
     public function test_file_display_and_access()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->asAdmin();
         $fileName = 'upload_test_file.txt';
 
@@ -136,7 +136,7 @@ class AttachmentTest extends TestCase
 
     public function test_attaching_link_to_page()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $admin = $this->getAdmin();
         $this->asAdmin();
 
@@ -173,7 +173,7 @@ class AttachmentTest extends TestCase
 
     public function test_attachment_updating()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->asAdmin();
 
         $attachment = $this->createAttachment($page);
@@ -197,7 +197,7 @@ class AttachmentTest extends TestCase
 
     public function test_file_deletion()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->asAdmin();
         $fileName = 'deletion_test.txt';
         $this->uploadFile($fileName, $page->id);
@@ -219,7 +219,7 @@ class AttachmentTest extends TestCase
 
     public function test_attachment_deletion_on_page_deletion()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->asAdmin();
         $fileName = 'deletion_test.txt';
         $this->uploadFile($fileName, $page->id);
@@ -247,7 +247,7 @@ class AttachmentTest extends TestCase
     {
         $admin = $this->getAdmin();
         $viewer = $this->getViewer();
-        $page = Page::query()->first(); /** @var Page $page */
+        $page = $this->entities->page(); /** @var Page $page */
         $this->actingAs($admin);
         $fileName = 'permission_test.txt';
         $this->uploadFile($fileName, $page->id);
@@ -269,7 +269,7 @@ class AttachmentTest extends TestCase
 
     public function test_data_and_js_links_cannot_be_attached_to_a_page()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->asAdmin();
 
         $badLinks = [
@@ -310,7 +310,7 @@ class AttachmentTest extends TestCase
 
     public function test_file_access_with_open_query_param_provides_inline_response_with_correct_content_type()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->asAdmin();
         $fileName = 'upload_test_file.txt';
 
@@ -329,7 +329,7 @@ class AttachmentTest extends TestCase
 
     public function test_html_file_access_with_open_forces_plain_content_type()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->asAdmin();
 
         $attachment = $this->createUploadAttachment($page, 'test_file.html', '<html></html><p>testing</p>', 'text/html');
@@ -346,7 +346,7 @@ class AttachmentTest extends TestCase
     {
         config()->set('filesystems.attachments', 'local_secure_restricted');
 
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $fileName = 'upload_test_file.txt';
 
         $upload = $this->asAdmin()->uploadFile($fileName, $page->id);
index 184da214c4a5d8d03da6e8db63f7bd5aa45adf60..e929d63ec60733e87846a8e7d43e2d5af93cf7f5 100644 (file)
@@ -15,7 +15,7 @@ class ImageTest extends TestCase
 
     public function test_image_upload()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $admin = $this->getAdmin();
         $this->actingAs($admin);
 
@@ -39,7 +39,7 @@ class ImageTest extends TestCase
 
     public function test_image_display_thumbnail_generation_does_not_increase_image_size()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $admin = $this->getAdmin();
         $this->actingAs($admin);
 
@@ -63,7 +63,7 @@ class ImageTest extends TestCase
 
     public function test_image_display_thumbnail_generation_for_apng_images_uses_original_file()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $admin = $this->getAdmin();
         $this->actingAs($admin);
 
@@ -125,7 +125,7 @@ class ImageTest extends TestCase
 
     public function test_image_usage()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $editor = $this->getEditor();
         $this->actingAs($editor);
 
@@ -145,7 +145,7 @@ class ImageTest extends TestCase
 
     public function test_php_files_cannot_be_uploaded()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $admin = $this->getAdmin();
         $this->actingAs($admin);
 
@@ -167,7 +167,7 @@ class ImageTest extends TestCase
 
     public function test_php_like_files_cannot_be_uploaded()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $admin = $this->getAdmin();
         $this->actingAs($admin);
 
@@ -184,7 +184,7 @@ class ImageTest extends TestCase
 
     public function test_files_with_double_extensions_will_get_sanitized()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $admin = $this->getAdmin();
         $this->actingAs($admin);
 
@@ -219,7 +219,7 @@ class ImageTest extends TestCase
         ];
         foreach ($badNames as $name) {
             $galleryFile = $this->getTestImage($name);
-            $page = Page::query()->first();
+            $page = $this->entities->page();
             $badPath = $this->getTestImagePath('gallery', $name);
             $this->deleteImage($badPath);
 
@@ -244,7 +244,7 @@ class ImageTest extends TestCase
         config()->set('filesystems.images', 'local_secure');
         $this->asEditor();
         $galleryFile = $this->getTestImage('my-secure-test-upload.png');
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $expectedPath = storage_path('uploads/images/gallery/' . date('Y-m') . '/my-secure-test-upload.png');
 
         $upload = $this->call('POST', '/images/gallery', ['uploaded_to' => $page->id], [], ['file' => $galleryFile], []);
@@ -292,7 +292,7 @@ class ImageTest extends TestCase
         config()->set('filesystems.images', 'local_secure');
         $this->asEditor();
         $galleryFile = $this->getTestImage('my-secure-test-upload.png');
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $expectedPath = storage_path('uploads/images/gallery/' . date('Y-m') . '/my-secure-test-upload.png');
 
         $upload = $this->call('POST', '/images/gallery', ['uploaded_to' => $page->id], [], ['file' => $galleryFile], []);
@@ -332,8 +332,7 @@ class ImageTest extends TestCase
         config()->set('filesystems.images', 'local_secure_restricted');
         $this->asEditor();
         $galleryFile = $this->getTestImage('my-secure-restricted-test-upload.png');
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $upload = $this->call('POST', '/images/gallery', ['uploaded_to' => $page->id], [], ['file' => $galleryFile], []);
         $upload->assertStatus(200);
@@ -357,8 +356,7 @@ class ImageTest extends TestCase
         config()->set('filesystems.images', 'local_secure_restricted');
         $this->asEditor();
         $galleryFile = $this->getTestImage('my-secure-restricted-thumb-test-test.png');
-        /** @var Page $page */
-        $page = Page::query()->first();
+        $page = $this->entities->page();
 
         $upload = $this->call('POST', '/images/gallery', ['uploaded_to' => $page->id], [], ['file' => $galleryFile], []);
         $upload->assertStatus(200);
@@ -412,7 +410,7 @@ class ImageTest extends TestCase
 
     public function test_image_delete()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->asAdmin();
         $imageName = 'first-image.png';
         $relPath = $this->getTestImagePath('gallery', $imageName);
@@ -434,7 +432,7 @@ class ImageTest extends TestCase
 
     public function test_image_delete_does_not_delete_similar_images()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->asAdmin();
         $imageName = 'first-image.png';
 
@@ -459,7 +457,7 @@ class ImageTest extends TestCase
 
     public function test_image_manager_delete_button_only_shows_with_permission()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->asAdmin();
         $imageName = 'first-image.png';
         $relPath = $this->getTestImagePath('gallery', $imageName);
@@ -539,7 +537,7 @@ class ImageTest extends TestCase
 
     public function test_deleted_unused_images()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $admin = $this->getAdmin();
         $this->actingAs($admin);
 
index b55572248a8bc1668da8b34cce264b696c5fa9b7..e2c16c37c65b84141a2ac7b2a3fd44782b11de76 100644 (file)
@@ -91,7 +91,7 @@ trait UsesImages
     protected function uploadGalleryImage(Page $page = null, ?string $testDataFileName = null)
     {
         if ($page === null) {
-            $page = Page::query()->first();
+            $page = $this->entities->page();
         }
 
         $imageName = $testDataFileName ?? 'first-image.png';
index 71d50e8d6b331562e23af05bd2bd3a1d47f90f5f..114088338d7e4e7e600a8217c54ace7ead1221bd 100644 (file)
@@ -150,7 +150,7 @@ class UserManagementTest extends TestCase
 
     public function test_delete_with_new_owner_id_changes_ownership()
     {
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $owner = $page->ownedBy;
         $newOwner = User::query()->where('id', '!=', $owner->id)->first();
 
index 88d54d316a2bc076a40d8f6214c752bd90aac547..2273be2b426b555b5b6a1f97bd825beebddc228d 100644 (file)
@@ -132,8 +132,7 @@ class UserPreferencesTest extends TestCase
     public function test_shelf_view_type_change()
     {
         $editor = $this->getEditor();
-        /** @var Bookshelf $shelf */
-        $shelf = Bookshelf::query()->first();
+        $shelf = $this->entities->shelf();
         setting()->putUser($editor, 'bookshelf_view_type', 'list');
 
         $resp = $this->actingAs($editor)->get($shelf->getUrl())->assertSee('Grid View');
@@ -155,7 +154,7 @@ class UserPreferencesTest extends TestCase
     public function test_update_code_language_favourite()
     {
         $editor = $this->getEditor();
-        $page = Page::query()->first();
+        $page = $this->entities->page();
         $this->actingAs($editor);
 
         $this->patch('/settings/users/update-code-language-favourite', ['language' => 'php', 'active' => true]);