From b005acdd6caa446bf6d91604586ac227050c7680 Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Sat, 21 Aug 2021 18:54:38 +0100 Subject: [PATCH] Updated pages API to not clear content if not provided Can now update page details without supplying page content. Added test to cover. Closes #2856 --- app/Entities/Repos/PageRepo.php | 4 ++-- tests/Api/PagesApiTest.php | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/app/Entities/Repos/PageRepo.php b/app/Entities/Repos/PageRepo.php index 28949b2dd..c37c64373 100644 --- a/app/Entities/Repos/PageRepo.php +++ b/app/Entities/Repos/PageRepo.php @@ -218,8 +218,8 @@ class PageRepo $pageContent = new PageContent($page); if (!empty($input['markdown'] ?? '')) { $pageContent->setNewMarkdown($input['markdown']); - } else { - $pageContent->setNewHTML($input['html'] ?? ''); + } else if (isset($input['html'])) { + $pageContent->setNewHTML($input['html']); } } diff --git a/tests/Api/PagesApiTest.php b/tests/Api/PagesApiTest.php index d52c6b513..eca606234 100644 --- a/tests/Api/PagesApiTest.php +++ b/tests/Api/PagesApiTest.php @@ -219,6 +219,27 @@ class PagesApiTest extends TestCase $resp->assertStatus(403); } + public function test_update_endpoint_does_not_wipe_content_if_no_html_or_md_provided() + { + $this->actingAsApiEditor(); + $page = Page::visible()->first(); + $originalContent = $page->html; + $details = [ + 'name' => 'My updated API page', + 'tags' => [ + [ + 'name' => 'freshtag', + 'value' => 'freshtagval', + ], + ], + ]; + + $this->putJson($this->baseEndpoint . "/{$page->id}", $details); + $page->refresh(); + + $this->assertEquals($originalContent, $page->html); + } + public function test_delete_endpoint() { $this->actingAsApiEditor();