]> BookStack Code Mirror - bookstack/commitdiff
Fixed issue thrown upon empty markdown content save
authorDan Brown <redacted>
Sat, 15 May 2021 16:33:53 +0000 (17:33 +0100)
committerDan Brown <redacted>
Sat, 15 May 2021 16:33:53 +0000 (17:33 +0100)
Closes #2741

app/Entities/Repos/PageRepo.php
tests/Entity/PageTest.php

index 6a4eaeb1553f834ccafdd3e6b642d160e96d81d3..5eb882a026a3f803369b56b06b6334c46e8773c9 100644 (file)
@@ -212,7 +212,7 @@ class PageRepo
         if (!empty($input['markdown'] ?? '')) {
             $pageContent->setNewMarkdown($input['markdown']);
         } else {
-            $pageContent->setNewHTML($input['html']);
+            $pageContent->setNewHTML($input['html'] ?? '');
         }
     }
 
index 615bae21eb6f6940c6d0cc54adab25369c55ed61..e1dffb61faf05ae078502ed0a7f5bd2de9ea30a9 100644 (file)
@@ -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