From a8ce199e0de8974c8be60450797301839a5d1e82 Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Sun, 9 Jun 2024 17:18:23 +0100 Subject: [PATCH] Pages: Fixed unused changelog on first page publish Included test to cover. For #5056 --- app/Entities/Repos/PageRepo.php | 3 ++- tests/Entity/PageTest.php | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/app/Entities/Repos/PageRepo.php b/app/Entities/Repos/PageRepo.php index 2526b6c44..be139b050 100644 --- a/app/Entities/Repos/PageRepo.php +++ b/app/Entities/Repos/PageRepo.php @@ -77,7 +77,8 @@ class PageRepo $this->updateTemplateStatusAndContentFromInput($draft, $input); $this->baseRepo->update($draft, $input); - $this->revisionRepo->storeNewForPage($draft, trans('entities.pages_initial_revision')); + $summary = trim($input['summary'] ?? '') ?: trans('entities.pages_initial_revision'); + $this->revisionRepo->storeNewForPage($draft, $summary); $draft->refresh(); Activity::add(ActivityType::PAGE_CREATE, $draft); diff --git a/tests/Entity/PageTest.php b/tests/Entity/PageTest.php index daad82e76..b96d455eb 100644 --- a/tests/Entity/PageTest.php +++ b/tests/Entity/PageTest.php @@ -86,6 +86,32 @@ class PageTest extends TestCase $resp->assertSee('# a title'); } + public function test_page_creation_allows_summary_to_be_set() + { + $book = $this->entities->book(); + + $this->asEditor()->get($book->getUrl('/create-page')); + $draft = Page::query()->where('book_id', '=', $book->id) + ->where('draft', '=', true)->first(); + + $details = [ + 'html' => '

a title

', + 'name' => 'My page with summary', + 'summary' => 'Here is my changelog message for a new page!', + ]; + $resp = $this->post($book->getUrl("/draft/{$draft->id}"), $details); + $resp->assertRedirect(); + + $this->assertDatabaseHas('page_revisions', [ + 'page_id' => $draft->id, + 'summary' => 'Here is my changelog message for a new page!', + ]); + + $draft->refresh(); + $resp = $this->get($draft->getUrl('/revisions')); + $resp->assertSee('Here is my changelog message for a new page!'); + } + public function test_page_delete() { $page = $this->entities->page();