diff --git a/app/Entities/Tools/SiblingFetcher.php b/app/Entities/Tools/SiblingFetcher.php index 34d0fc6b0..156209fd2 100644 --- a/app/Entities/Tools/SiblingFetcher.php +++ b/app/Entities/Tools/SiblingFetcher.php @@ -43,13 +43,13 @@ class SiblingFetcher if ($contextShelf) { $entities = $contextShelf->visibleBooks()->get(); } else { - $entities = $this->queries->books->visibleForList()->get(); + $entities = $this->queries->books->visibleForList()->orderBy('name', 'asc')->get(); } } // Shelf if ($entity instanceof Bookshelf) { - $entities = $this->queries->shelves->visibleForList()->get(); + $entities = $this->queries->shelves->visibleForList()->orderBy('name', 'asc')->get(); } return $entities; diff --git a/tests/Entity/EntitySearchTest.php b/tests/Entity/EntitySearchTest.php index dcc062044..4b032bfc3 100644 --- a/tests/Entity/EntitySearchTest.php +++ b/tests/Entity/EntitySearchTest.php @@ -356,6 +356,42 @@ class EntitySearchTest extends TestCase } } + public function test_sibling_search_for_books_provides_results_in_alphabetical_order() + { + $contextBook = $this->entities->book(); + $searchBook = $this->entities->book(); + + $searchBook->name = 'Zebras'; + $searchBook->save(); + + $search = $this->actingAs($this->users->viewer())->get("/search/entity/siblings?entity_id={$contextBook->id}&entity_type=book"); + $this->withHtml($search)->assertElementNotContains('a:first-child', 'Zebras'); + + $searchBook->name = 'AAAAAAArdvarks'; + $searchBook->save(); + + $search = $this->actingAs($this->users->viewer())->get("/search/entity/siblings?entity_id={$contextBook->id}&entity_type=book"); + $this->withHtml($search)->assertElementContains('a:first-child', 'AAAAAAArdvarks'); + } + + public function test_sibling_search_for_shelves_provides_results_in_alphabetical_order() + { + $contextShelf = $this->entities->shelf(); + $searchShelf = $this->entities->shelf(); + + $searchShelf->name = 'Zebras'; + $searchShelf->save(); + + $search = $this->actingAs($this->users->viewer())->get("/search/entity/siblings?entity_id={$contextShelf->id}&entity_type=bookshelf"); + $this->withHtml($search)->assertElementNotContains('a:first-child', 'Zebras'); + + $searchShelf->name = 'AAAAAAArdvarks'; + $searchShelf->save(); + + $search = $this->actingAs($this->users->viewer())->get("/search/entity/siblings?entity_id={$contextShelf->id}&entity_type=bookshelf"); + $this->withHtml($search)->assertElementContains('a:first-child', 'AAAAAAArdvarks'); + } + public function test_search_works_on_updated_page_content() { $page = $this->entities->page();