From bfe4fc30de5d7bcc0143c2ab5a8fb4c38eafa6a8 Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Tue, 10 Sep 2024 15:12:47 +0200 Subject: [PATCH 1/7] Move unit test to unit namespace --- .../tests/{Feature => Unit}/PageModelConstructorsTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename packages/framework/tests/{Feature => Unit}/PageModelConstructorsTest.php (97%) diff --git a/packages/framework/tests/Feature/PageModelConstructorsTest.php b/packages/framework/tests/Unit/PageModelConstructorsTest.php similarity index 97% rename from packages/framework/tests/Feature/PageModelConstructorsTest.php rename to packages/framework/tests/Unit/PageModelConstructorsTest.php index ef823b5f8a2..d45cbb02cb7 100644 --- a/packages/framework/tests/Feature/PageModelConstructorsTest.php +++ b/packages/framework/tests/Unit/PageModelConstructorsTest.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Hyde\Framework\Testing\Feature; +namespace Hyde\Framework\Testing\Unit; use Hyde\Facades\Filesystem; use Hyde\Hyde; From 271f8394e0b87899c02b37463d4321a94853365b Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Tue, 10 Sep 2024 15:21:57 +0200 Subject: [PATCH 2/7] Refactor to unit test case with smart file helpers --- .../tests/Unit/PageModelConstructorsTest.php | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/packages/framework/tests/Unit/PageModelConstructorsTest.php b/packages/framework/tests/Unit/PageModelConstructorsTest.php index d45cbb02cb7..76941b2831f 100644 --- a/packages/framework/tests/Unit/PageModelConstructorsTest.php +++ b/packages/framework/tests/Unit/PageModelConstructorsTest.php @@ -4,11 +4,10 @@ namespace Hyde\Framework\Testing\Unit; -use Hyde\Facades\Filesystem; -use Hyde\Hyde; +use Hyde\Testing\UnitTestCase; use Hyde\Pages\DocumentationPage; use Hyde\Pages\MarkdownPage; -use Hyde\Testing\TestCase; +use Hyde\Testing\CreatesTemporaryFiles; /** * Test the constructor actions and schema constructors for page models. @@ -19,8 +18,18 @@ * @covers \Hyde\Framework\Factories\HydePageDataFactory * @covers \Hyde\Framework\Factories\BlogPostDataFactory */ -class PageModelConstructorsTest extends TestCase +class PageModelConstructorsTest extends UnitTestCase { + use CreatesTemporaryFiles; + + protected static bool $needsKernel = true; + protected static bool $needsConfig = true; + + protected function tearDown(): void + { + $this->cleanUpFilesystem(); + } + public function testDynamicDataConstructorCanFindTitleFromFrontMatter() { $this->markdown('_pages/foo.md', '# Foo Bar', ['title' => 'My Title']); @@ -55,13 +64,10 @@ public function testDocumentationPageParserCanGetGroupFromFrontMatter() public function testDocumentationPageParserCanGetGroupAutomaticallyFromNestedPage() { - mkdir(Hyde::path('_docs/foo')); - touch(Hyde::path('_docs/foo/bar.md')); + $this->directory('_docs/foo'); + $this->file('_docs/foo/bar.md'); $page = DocumentationPage::parse('foo/bar'); $this->assertSame('foo', $page->navigationMenuGroup()); - - Filesystem::unlink('_docs/foo/bar.md'); - rmdir(Hyde::path('_docs/foo')); } } From f2a70de73687d68ab74a96978ece37944e16ee64 Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Tue, 10 Sep 2024 15:22:55 +0200 Subject: [PATCH 3/7] Rename test to better match its scope --- .../{PageModelConstructorsTest.php => PageModelParsingTest.php} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename packages/framework/tests/Unit/{PageModelConstructorsTest.php => PageModelParsingTest.php} (97%) diff --git a/packages/framework/tests/Unit/PageModelConstructorsTest.php b/packages/framework/tests/Unit/PageModelParsingTest.php similarity index 97% rename from packages/framework/tests/Unit/PageModelConstructorsTest.php rename to packages/framework/tests/Unit/PageModelParsingTest.php index 76941b2831f..e50175a15c7 100644 --- a/packages/framework/tests/Unit/PageModelConstructorsTest.php +++ b/packages/framework/tests/Unit/PageModelParsingTest.php @@ -18,7 +18,7 @@ * @covers \Hyde\Framework\Factories\HydePageDataFactory * @covers \Hyde\Framework\Factories\BlogPostDataFactory */ -class PageModelConstructorsTest extends UnitTestCase +class PageModelParsingTest extends UnitTestCase { use CreatesTemporaryFiles; From ae19b197e580916188ba53877f8135d232679be4 Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Tue, 10 Sep 2024 15:23:26 +0200 Subject: [PATCH 4/7] Rename test to match the tested class --- .../Feature/{MetadataHelperTest.php => MetaFacadeTest.php} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename packages/framework/tests/Feature/{MetadataHelperTest.php => MetaFacadeTest.php} (98%) diff --git a/packages/framework/tests/Feature/MetadataHelperTest.php b/packages/framework/tests/Feature/MetaFacadeTest.php similarity index 98% rename from packages/framework/tests/Feature/MetadataHelperTest.php rename to packages/framework/tests/Feature/MetaFacadeTest.php index 44f3b6236b0..3896f3a9c7d 100644 --- a/packages/framework/tests/Feature/MetadataHelperTest.php +++ b/packages/framework/tests/Feature/MetaFacadeTest.php @@ -11,7 +11,7 @@ /** * @covers \Hyde\Facades\Meta */ -class MetadataHelperTest extends TestCase +class MetaFacadeTest extends TestCase { protected function setUp(): void { From e8d4d6f962ff84f7eede56e93664fd188bc16449 Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Tue, 10 Sep 2024 15:24:13 +0200 Subject: [PATCH 5/7] Move unit test to unit namespace --- packages/framework/tests/{Feature => Unit}/MetaFacadeTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename packages/framework/tests/{Feature => Unit}/MetaFacadeTest.php (98%) diff --git a/packages/framework/tests/Feature/MetaFacadeTest.php b/packages/framework/tests/Unit/MetaFacadeTest.php similarity index 98% rename from packages/framework/tests/Feature/MetaFacadeTest.php rename to packages/framework/tests/Unit/MetaFacadeTest.php index 3896f3a9c7d..a1e57ef632a 100644 --- a/packages/framework/tests/Feature/MetaFacadeTest.php +++ b/packages/framework/tests/Unit/MetaFacadeTest.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Hyde\Framework\Testing\Feature; +namespace Hyde\Framework\Testing\Unit; use Hyde\Facades\Meta; use Hyde\Framework\Features\Metadata\GlobalMetadataBag; From 79a8f9e3640e4f2a52304cb3924ecb5b6927f837 Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Tue, 10 Sep 2024 15:25:38 +0200 Subject: [PATCH 6/7] Refactor test to use the unit test case --- packages/framework/tests/Unit/MetaFacadeTest.php | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/packages/framework/tests/Unit/MetaFacadeTest.php b/packages/framework/tests/Unit/MetaFacadeTest.php index a1e57ef632a..f9b9a00f264 100644 --- a/packages/framework/tests/Unit/MetaFacadeTest.php +++ b/packages/framework/tests/Unit/MetaFacadeTest.php @@ -6,20 +6,16 @@ use Hyde\Facades\Meta; use Hyde\Framework\Features\Metadata\GlobalMetadataBag; -use Hyde\Testing\TestCase; +use Hyde\Testing\UnitTestCase; /** * @covers \Hyde\Facades\Meta */ -class MetaFacadeTest extends TestCase +class MetaFacadeTest extends UnitTestCase { - protected function setUp(): void - { - parent::setUp(); - - config(['hyde.meta' => []]); - $this->withoutSiteUrl(); - } + protected static bool $needsKernel = true; + protected static bool $needsConfig = true; + protected static bool $needsRender = true; public function testNameMethodReturnsAValidHtmlMetaString() { From 2e048b55e4b91a6d6f8c6ae5665043353b01c6a6 Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Tue, 10 Sep 2024 15:27:45 +0200 Subject: [PATCH 7/7] Format assertions --- .../framework/tests/Unit/MetaFacadeTest.php | 35 ++++--------------- 1 file changed, 7 insertions(+), 28 deletions(-) diff --git a/packages/framework/tests/Unit/MetaFacadeTest.php b/packages/framework/tests/Unit/MetaFacadeTest.php index f9b9a00f264..555fc071c6a 100644 --- a/packages/framework/tests/Unit/MetaFacadeTest.php +++ b/packages/framework/tests/Unit/MetaFacadeTest.php @@ -19,58 +19,37 @@ class MetaFacadeTest extends UnitTestCase public function testNameMethodReturnsAValidHtmlMetaString() { - $this->assertEquals( - '', - Meta::name('foo', 'bar') - ); + $this->assertSame('', (string) Meta::name('foo', 'bar')); } public function testPropertyMethodReturnsAValidHtmlMetaString() { - $this->assertEquals( - '', - Meta::property('foo', 'bar') - ); + $this->assertSame('', (string) Meta::property('foo', 'bar')); } public function testPropertyMethodAcceptsPropertyWithOgPrefix() { - $this->assertEquals( - '', - Meta::property('og:foo', 'bar') - ); + $this->assertSame('', (string) Meta::property('og:foo', 'bar')); } public function testPropertyMethodAcceptsPropertyWithoutOgPrefix() { - $this->assertEquals( - '', - Meta::property('foo', 'bar') - ); + $this->assertSame('', (string) Meta::property('foo', 'bar')); } public function testLinkMethodReturnsAValidHtmlLinkString() { - $this->assertEquals( - '', - Meta::link('foo', 'bar') - ); + $this->assertSame('', (string) Meta::link('foo', 'bar')); } public function testLinkMethodReturnsAValidHtmlLinkStringWithAttributes() { - $this->assertEquals( - '', - Meta::link('foo', 'bar', ['title' => 'baz']) - ); + $this->assertSame('', (string) Meta::link('foo', 'bar', ['title' => 'baz'])); } public function testLinkMethodReturnsAValidHtmlLinkStringWithMultipleAttributes() { - $this->assertEquals( - '', - Meta::link('foo', 'bar', ['title' => 'baz', 'type' => 'text/css']) - ); + $this->assertSame('', (string) Meta::link('foo', 'bar', ['title' => 'baz', 'type' => 'text/css'])); } public function testGetMethodReturnsGlobalMetadataBag()