X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/dca14feaaad686bfbe9acb59f5eb11b815501e5b..HEAD:/tests/Sorting/SortRuleTest.php diff --git a/tests/Sorting/SortRuleTest.php b/tests/Sorting/SortRuleTest.php index 85b3d7991..4a9d3a7b3 100644 --- a/tests/Sorting/SortRuleTest.php +++ b/tests/Sorting/SortRuleTest.php @@ -187,6 +187,44 @@ class SortRuleTest extends TestCase $this->assertNotEquals($oldPriority, $chapter->priority); } + public function test_name_alphabetical_ordering() + { + $book = Book::factory()->create(); + $rule = SortRule::factory()->create(['sequence' => 'name_asc']); + $book->sort_rule_id = $rule->id; + $book->save(); + $this->permissions->regenerateForEntity($book); + + $namesToAdd = [ + "Beans", + "bread", + "Éclaire", + "egg", + "É😀ire", + "É🫠ire", + "Milk", + "pizza", + "Tomato", + ]; + + $reverseNamesToAdd = array_reverse($namesToAdd); + foreach ($reverseNamesToAdd as $name) { + $this->actingAsApiEditor()->post("/api/pages", [ + 'book_id' => $book->id, + 'name' => $name, + 'markdown' => 'Hello' + ]); + } + + foreach ($namesToAdd as $index => $name) { + $this->assertDatabaseHas('pages', [ + 'book_id' => $book->id, + 'name' => $name, + 'priority' => $index + 1, + ]); + } + } + public function test_name_numeric_ordering() { $book = Book::factory()->create();