X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/71167426bb5196483b85ebcaecc33745bcfa25b6..refs/pull/3693/head:/tests/Entity/PageTemplateTest.php
diff --git a/tests/Entity/PageTemplateTest.php b/tests/Entity/PageTemplateTest.php
index 17450f494..3d1689510 100644
--- a/tests/Entity/PageTemplateTest.php
+++ b/tests/Entity/PageTemplateTest.php
@@ -1,6 +1,8 @@
-actingAs($editor);
$pageUpdateData = [
- 'name' => $page->name,
- 'html' => $page->html,
+ 'name' => $page->name,
+ 'html' => $page->html,
'template' => 'true',
];
$this->put($page->getUrl(), $pageUpdateData);
$this->assertDatabaseHas('pages', [
- 'id' => $page->id,
+ 'id' => $page->id,
'template' => false,
]);
@@ -42,9 +44,48 @@ class PageTemplateTest extends TestCase
$this->put($page->getUrl(), $pageUpdateData);
$this->assertDatabaseHas('pages', [
- 'id' => $page->id,
+ 'id' => $page->id,
'template' => true,
]);
}
-}
\ No newline at end of file
+ public function test_templates_content_should_be_fetchable_only_if_page_marked_as_template()
+ {
+ $content = '
my_custom_template_content
';
+ $page = Page::first();
+ $editor = $this->getEditor();
+ $this->actingAs($editor);
+
+ $templateFetch = $this->get('/templates/' . $page->id);
+ $templateFetch->assertStatus(404);
+
+ $page->html = $content;
+ $page->template = true;
+ $page->save();
+
+ $templateFetch = $this->get('/templates/' . $page->id);
+ $templateFetch->assertStatus(200);
+ $templateFetch->assertJson([
+ 'html' => $content,
+ 'markdown' => '',
+ ]);
+ }
+
+ public function test_template_endpoint_returns_paginated_list_of_templates()
+ {
+ $editor = $this->getEditor();
+ $this->actingAs($editor);
+
+ $toBeTemplates = Page::query()->orderBy('name', 'asc')->take(12)->get();
+ $page = $toBeTemplates->first();
+
+ $emptyTemplatesFetch = $this->get('/templates');
+ $emptyTemplatesFetch->assertDontSee($page->name);
+
+ Page::query()->whereIn('id', $toBeTemplates->pluck('id')->toArray())->update(['template' => true]);
+
+ $templatesFetch = $this->get('/templates');
+ $templatesFetch->assertSee($page->name);
+ $templatesFetch->assertSee('pagination');
+ }
+}