entities->page(); $resp = $this->asEditor()->get($page->getUrl('/export/markdown')); $resp->assertStatus(200); $resp->assertSee($page->name); $resp->assertHeader('Content-Disposition', 'attachment; filename="' . $page->slug . '.md"'); } public function test_page_markdown_export_uses_existing_markdown_if_apparent() { $page = $this->entities->page()->forceFill([ 'markdown' => '# A header', 'html' => '

Dogcat

', ]); $page->save(); $resp = $this->asEditor()->get($page->getUrl('/export/markdown')); $resp->assertSee('A header'); $resp->assertDontSee('Dogcat'); } public function test_page_markdown_export_converts_html_where_no_markdown() { $page = $this->entities->page()->forceFill([ 'markdown' => '', 'html' => '

Dogcat

Some bold text

', ]); $page->save(); $resp = $this->asEditor()->get($page->getUrl('/export/markdown')); $resp->assertSee("# Dogcat\n\nSome **bold** text"); } public function test_chapter_markdown_export() { $chapter = $this->entities->chapter(); $page = $chapter->pages()->first(); $resp = $this->asEditor()->get($chapter->getUrl('/export/markdown')); $resp->assertSee('# ' . $chapter->name); $resp->assertSee('# ' . $page->name); } public function test_book_markdown_export() { $book = Book::query()->whereHas('pages')->whereHas('chapters')->first(); $chapter = $book->chapters()->first(); $page = $chapter->pages()->first(); $resp = $this->asEditor()->get($book->getUrl('/export/markdown')); $resp->assertSee('# ' . $book->name); $resp->assertSee('# ' . $chapter->name); $resp->assertSee('# ' . $page->name); } public function test_book_markdown_export_concats_immediate_pages_with_newlines() { /** @var Book $book */ $book = Book::query()->whereHas('pages')->first(); $this->asEditor()->get($book->getUrl('/create-page')); $this->get($book->getUrl('/create-page')); [$pageA, $pageB] = $book->pages()->where('chapter_id', '=', 0)->get(); $pageA->html = '

hello tester

'; $pageA->save(); $pageB->name = 'The second page in this test'; $pageB->save(); $resp = $this->get($book->getUrl('/export/markdown')); $resp->assertDontSee('hello tester# The second page in this test'); $resp->assertSee("hello tester\n\n# The second page in this test"); } }