From e5f2e94b67fcd33d14598e02e42f383f45b86855 Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Sun, 19 Mar 2023 20:42:03 +0100 Subject: [PATCH 1/6] Create StaticSiteBuilderDocumentationModuleTest.php --- .../StaticSiteBuilderDocumentationModuleTest.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 packages/framework/tests/Feature/StaticSiteBuilderDocumentationModuleTest.php diff --git a/packages/framework/tests/Feature/StaticSiteBuilderDocumentationModuleTest.php b/packages/framework/tests/Feature/StaticSiteBuilderDocumentationModuleTest.php new file mode 100644 index 00000000000..0b72615e2d8 --- /dev/null +++ b/packages/framework/tests/Feature/StaticSiteBuilderDocumentationModuleTest.php @@ -0,0 +1,15 @@ + Date: Sun, 19 Mar 2023 20:44:03 +0100 Subject: [PATCH 2/6] Add test code based on post module test --- ...aticSiteBuilderDocumentationModuleTest.php | 54 ++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/packages/framework/tests/Feature/StaticSiteBuilderDocumentationModuleTest.php b/packages/framework/tests/Feature/StaticSiteBuilderDocumentationModuleTest.php index 0b72615e2d8..e9096aa965c 100644 --- a/packages/framework/tests/Feature/StaticSiteBuilderDocumentationModuleTest.php +++ b/packages/framework/tests/Feature/StaticSiteBuilderDocumentationModuleTest.php @@ -4,6 +4,10 @@ namespace Hyde\Framework\Testing\Feature; +use Hyde\Facades\Filesystem; +use Hyde\Framework\Actions\StaticPageBuilder; +use Hyde\Hyde; +use Hyde\Pages\DocumentationPage; use Hyde\Testing\TestCase; /** @@ -11,5 +15,53 @@ */ class StaticSiteBuilderDocumentationModuleTest extends TestCase { - // + protected DocumentationPage $page; + + protected function setUp(): void + { + parent::setUp(); + + $this->page = DocumentationPage::make('test-page', [ + 'title' => 'Adventures in Wonderland', + 'description' => 'All in the golden afternoon, full leisurely we glide.', + ], <<<'MARKDOWN' + ## CHAPTER I. DOWN THE RABBIT-HOLE. + + So she was considering in her own mind, as well as she could, for the hot day made her feel very sleepy and stupid. + MARKDOWN + ); + } + + protected function tearDown(): void + { + Filesystem::unlink('_site/docs/test-page.html'); + + parent::tearDown(); + } + + protected function inspectHtml(array $expectedStrings) + { + StaticPageBuilder::handle($this->page); + $stream = file_get_contents(Hyde::path('_site/docs/test-page.html')); + + foreach ($expectedStrings as $expectedString) { + $this->assertStringContainsString($expectedString, $stream); + } + } + + public function test_can_create_page() + { + StaticPageBuilder::handle($this->page); + + $this->assertFileExists(Hyde::path('_site/docs/test-page.html')); + } + + public function test_page_contains_expected_content() + { + $this->inspectHtml([ + 'Adventures in Wonderland', + '

CHAPTER I. DOWN THE RABBIT-HOLE.

', + '

So she was considering in her own mind, as well as she could', + ]); + } } From 109da1682774c77889c8df6e7468f893d360bdf9 Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Sun, 19 Mar 2023 20:46:17 +0100 Subject: [PATCH 3/6] Allow path to be overridden for test helper --- .../Feature/StaticSiteBuilderDocumentationModuleTest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/framework/tests/Feature/StaticSiteBuilderDocumentationModuleTest.php b/packages/framework/tests/Feature/StaticSiteBuilderDocumentationModuleTest.php index e9096aa965c..33bb08c0a63 100644 --- a/packages/framework/tests/Feature/StaticSiteBuilderDocumentationModuleTest.php +++ b/packages/framework/tests/Feature/StaticSiteBuilderDocumentationModuleTest.php @@ -39,10 +39,10 @@ protected function tearDown(): void parent::tearDown(); } - protected function inspectHtml(array $expectedStrings) + protected function inspectHtml(array $expectedStrings, string $path = null) { StaticPageBuilder::handle($this->page); - $stream = file_get_contents(Hyde::path('_site/docs/test-page.html')); + $stream = file_get_contents(Hyde::path($path ?? '_site/docs/test-page.html')); foreach ($expectedStrings as $expectedString) { $this->assertStringContainsString($expectedString, $stream); From 282092d505455265413ca6fecaec48e760846563 Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Sun, 19 Mar 2023 20:48:16 +0100 Subject: [PATCH 4/6] Refactor to use dynamic temporary file handler when possible --- .../StaticSiteBuilderDocumentationModuleTest.php | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/packages/framework/tests/Feature/StaticSiteBuilderDocumentationModuleTest.php b/packages/framework/tests/Feature/StaticSiteBuilderDocumentationModuleTest.php index 33bb08c0a63..1b8d3edbe85 100644 --- a/packages/framework/tests/Feature/StaticSiteBuilderDocumentationModuleTest.php +++ b/packages/framework/tests/Feature/StaticSiteBuilderDocumentationModuleTest.php @@ -32,17 +32,11 @@ protected function setUp(): void ); } - protected function tearDown(): void - { - Filesystem::unlink('_site/docs/test-page.html'); - - parent::tearDown(); - } - protected function inspectHtml(array $expectedStrings, string $path = null) { StaticPageBuilder::handle($this->page); $stream = file_get_contents(Hyde::path($path ?? '_site/docs/test-page.html')); + $this->cleanUpWhenDone($path ?? '_site/docs/test-page.html'); foreach ($expectedStrings as $expectedString) { $this->assertStringContainsString($expectedString, $stream); @@ -54,6 +48,8 @@ public function test_can_create_page() StaticPageBuilder::handle($this->page); $this->assertFileExists(Hyde::path('_site/docs/test-page.html')); + + unlink(Hyde::path('_site/docs/test-page.html')); } public function test_page_contains_expected_content() From a6480c1b58481431b27970eaf11bdc06f2d73a79 Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Sun, 19 Mar 2023 20:48:24 +0100 Subject: [PATCH 5/6] Test documentation pages can be compiled to the root output directory --- .../StaticSiteBuilderDocumentationModuleTest.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/framework/tests/Feature/StaticSiteBuilderDocumentationModuleTest.php b/packages/framework/tests/Feature/StaticSiteBuilderDocumentationModuleTest.php index 1b8d3edbe85..f65ea35708c 100644 --- a/packages/framework/tests/Feature/StaticSiteBuilderDocumentationModuleTest.php +++ b/packages/framework/tests/Feature/StaticSiteBuilderDocumentationModuleTest.php @@ -60,4 +60,15 @@ public function test_page_contains_expected_content() '

So she was considering in her own mind, as well as she could', ]); } + + public function test_can_compile_page_to_root_output_directory() + { + DocumentationPage::setOutputDirectory(''); + + $this->inspectHtml([ + 'Adventures in Wonderland', + '

CHAPTER I. DOWN THE RABBIT-HOLE.

', + '

So she was considering in her own mind, as well as she could', + ], '_site/test-page.html'); + } } From aac1212a5361474ba4fd94d954eba34649b7c3c2 Mon Sep 17 00:00:00 2001 From: StyleCI Bot Date: Sun, 19 Mar 2023 19:58:17 +0000 Subject: [PATCH 6/6] Apply fixes from StyleCI --- .../tests/Feature/StaticSiteBuilderDocumentationModuleTest.php | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/framework/tests/Feature/StaticSiteBuilderDocumentationModuleTest.php b/packages/framework/tests/Feature/StaticSiteBuilderDocumentationModuleTest.php index f65ea35708c..82277f37e51 100644 --- a/packages/framework/tests/Feature/StaticSiteBuilderDocumentationModuleTest.php +++ b/packages/framework/tests/Feature/StaticSiteBuilderDocumentationModuleTest.php @@ -4,7 +4,6 @@ namespace Hyde\Framework\Testing\Feature; -use Hyde\Facades\Filesystem; use Hyde\Framework\Actions\StaticPageBuilder; use Hyde\Hyde; use Hyde\Pages\DocumentationPage;