diff --git a/app/Entities/Repos/PageRepo.php b/app/Entities/Repos/PageRepo.php index 6a4eaeb15..5eb882a02 100644 --- a/app/Entities/Repos/PageRepo.php +++ b/app/Entities/Repos/PageRepo.php @@ -212,7 +212,7 @@ class PageRepo if (!empty($input['markdown'] ?? '')) { $pageContent->setNewMarkdown($input['markdown']); } else { - $pageContent->setNewHTML($input['html']); + $pageContent->setNewHTML($input['html'] ?? ''); } } diff --git a/tests/Entity/PageTest.php b/tests/Entity/PageTest.php index 615bae21e..e1dffb61f 100644 --- a/tests/Entity/PageTest.php +++ b/tests/Entity/PageTest.php @@ -161,4 +161,27 @@ class PageTest extends TestCase 'book_id' => $newBook->id, ]); } + + public function test_empty_markdown_still_saves_without_error() + { + $this->setSettings(['app-editor' => 'markdown']); + $book = Book::query()->first(); + + $this->asEditor()->get($book->getUrl('/create-page')); + $draft = Page::query()->where('book_id', '=', $book->id) + ->where('draft', '=', true)->first(); + + $details = [ + 'name' => 'my page', + 'markdown' => '', + ]; + $resp = $this->post($book->getUrl("/draft/{$draft->id}"), $details); + $resp->assertRedirect(); + + $this->assertDatabaseHas('pages', [ + 'markdown' => $details['markdown'], + 'id' => $draft->id, + 'draft' => false + ]); + } } \ No newline at end of file