]> BookStack Code Mirror - bookstack/blobdiff - tests/Sorting/SortRuleTest.php
Opensearch: Fixed XML declaration when php short tags enabled
[bookstack] / tests / Sorting / SortRuleTest.php
index 85b3d7991c44af7e89cd89aa21ffab0c53f4b950..4a9d3a7b33f2365754380b24fd1be9d30189e2b4 100644 (file)
@@ -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();