From 3a36d3c847d235da3926f80303715e5349ee449f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Ren=C3=A9=20ROUET?= Date: Tue, 11 Jul 2023 14:11:13 +0200 Subject: [PATCH] add tests for priority --- dev/api/requests/chapters-create.json | 6 +++-- dev/api/requests/chapters-update.json | 5 ++-- dev/api/requests/pages-create.json | 5 ++-- dev/api/requests/pages-update.json | 5 ++-- tests/Api/ChaptersApiTest.php | 32 +++++++++++++++++++++++++ tests/Api/PagesApiTest.php | 34 +++++++++++++++++++++++++++ 6 files changed, 79 insertions(+), 8 deletions(-) diff --git a/dev/api/requests/chapters-create.json b/dev/api/requests/chapters-create.json index ca06fc298..afd3c71f1 100644 --- a/dev/api/requests/chapters-create.json +++ b/dev/api/requests/chapters-create.json @@ -5,5 +5,7 @@ "tags": [ {"name": "Category", "value": "Top Content"}, {"name": "Rating", "value": "Highest"} - ] -} \ No newline at end of file + ], + "priority": 15 +} +} diff --git a/dev/api/requests/chapters-update.json b/dev/api/requests/chapters-update.json index 6bd3a3e5c..f62d63d1e 100644 --- a/dev/api/requests/chapters-update.json +++ b/dev/api/requests/chapters-update.json @@ -5,5 +5,6 @@ "tags": [ {"name": "Category", "value": "Kinda Good Content"}, {"name": "Rating", "value": "Medium"} - ] -} \ No newline at end of file + ], + "priority": 15 +} diff --git a/dev/api/requests/pages-create.json b/dev/api/requests/pages-create.json index 1f53b42d4..5a21a80c7 100644 --- a/dev/api/requests/pages-create.json +++ b/dev/api/requests/pages-create.json @@ -5,5 +5,6 @@ "tags": [ {"name": "Category", "value": "Not Bad Content"}, {"name": "Rating", "value": "Average"} - ] -} \ No newline at end of file + ], + "priority": 15 +} diff --git a/dev/api/requests/pages-update.json b/dev/api/requests/pages-update.json index b9bfeb630..fc8c73c0c 100644 --- a/dev/api/requests/pages-update.json +++ b/dev/api/requests/pages-update.json @@ -5,5 +5,6 @@ "tags": [ {"name": "Category", "value": "API Examples"}, {"name": "Rating", "value": "Alright"} - ] -} \ No newline at end of file + ], + "priority": 15 +} diff --git a/tests/Api/ChaptersApiTest.php b/tests/Api/ChaptersApiTest.php index 713d8bba4..a99a85af8 100644 --- a/tests/Api/ChaptersApiTest.php +++ b/tests/Api/ChaptersApiTest.php @@ -61,6 +61,37 @@ class ChaptersApiTest extends TestCase $this->assertActivityExists('chapter_create', $newItem); } + public function test_create_applies_correct_priority() + { + $this->actingAsApiEditor(); + $book = $this->entities->book(); + $details = [ + 'name' => 'My API chapter', + 'description' => 'A chapter created via the API', + 'book_id' => $book->id, + 'tags' => [ + [ + 'name' => 'tagname', + 'value' => 'tagvalue', + ], + ], + 'priority' => 15, + ]; + + $resp = $this->postJson($this->baseEndpoint, $details); + $resp->assertStatus(200); + $newItem = Chapter::query()->orderByDesc('id')->where('name', '=', $details['name'])->first(); + $resp->assertJson(array_merge($details, ['id' => $newItem->id, 'slug' => $newItem->slug])); + $this->assertDatabaseHas('tags', [ + 'entity_id' => $newItem->id, + 'entity_type' => $newItem->getMorphClass(), + 'name' => 'tagname', + 'value' => 'tagvalue', + ]); + $resp->assertJsonMissing(['pages' => []]); + $this->assertActivityExists('chapter_create', $newItem); + } + public function test_chapter_name_needed_to_create() { $this->actingAsApiEditor(); @@ -137,6 +168,7 @@ class ChaptersApiTest extends TestCase 'value' => 'freshtagval', ], ], + 'priority' => 15, ]; $resp = $this->putJson($this->baseEndpoint . "/{$chapter->id}", $details); diff --git a/tests/Api/PagesApiTest.php b/tests/Api/PagesApiTest.php index 4a81f738b..a1f65692f 100644 --- a/tests/Api/PagesApiTest.php +++ b/tests/Api/PagesApiTest.php @@ -63,6 +63,39 @@ class PagesApiTest extends TestCase $this->assertActivityExists('page_create', $newItem); } + public function test_create_applies_correct_priority() + { + $this->actingAsApiEditor(); + $book = $this->entities->book(); + $details = [ + 'name' => 'My API page', + 'book_id' => $book->id, + 'html' => '

My new page content

', + 'tags' => [ + [ + 'name' => 'tagname', + 'value' => 'tagvalue', + ], + ], + 'priority' => 15, + ]; + + $resp = $this->postJson($this->baseEndpoint, $details); + unset($details['html']); + $resp->assertStatus(200); + $newItem = Page::query()->orderByDesc('id')->where('name', '=', $details['name'])->first(); + $resp->assertJson(array_merge($details, ['id' => $newItem->id, 'slug' => $newItem->slug])); + $this->assertDatabaseHas('tags', [ + 'entity_id' => $newItem->id, + 'entity_type' => $newItem->getMorphClass(), + 'name' => 'tagname', + 'value' => 'tagvalue', + ]); + $resp->assertSeeText('My new page content'); + $resp->assertJsonMissing(['book' => []]); + $this->assertActivityExists('page_create', $newItem); + } + public function test_page_name_needed_to_create() { $this->actingAsApiEditor(); @@ -207,6 +240,7 @@ class PagesApiTest extends TestCase 'value' => 'freshtagval', ], ], + 'priority' => 15, ]; $resp = $this->putJson($this->baseEndpoint . "/{$page->id}", $details);