From 2eee024b3654f394bbb537632dcc4bf5abbc751e Mon Sep 17 00:00:00 2001 From: Benjamin Nussbaum Date: Wed, 27 Aug 2025 20:38:28 +0200 Subject: [PATCH] chore: refactor PluginInlineTemplatesTest to Pest --- tests/Feature/PluginInlineTemplatesTest.php | 229 +++++++++----------- 1 file changed, 107 insertions(+), 122 deletions(-) diff --git a/tests/Feature/PluginInlineTemplatesTest.php b/tests/Feature/PluginInlineTemplatesTest.php index ce83d9d..fb35344 100644 --- a/tests/Feature/PluginInlineTemplatesTest.php +++ b/tests/Feature/PluginInlineTemplatesTest.php @@ -1,23 +1,15 @@ create([ - 'name' => 'Test Plugin', - 'markup_language' => 'liquid', - 'render_markup' => <<<'LIQUID' +test('renders plugin with inline templates', function () { + $plugin = Plugin::factory()->create([ + 'name' => 'Test Plugin', + 'markup_language' => 'liquid', + 'render_markup' => <<<'LIQUID' {% assign min = 1 %} {% assign max = facts | size %} {% assign diff = max | minus: min %} @@ -39,7 +31,6 @@ class PluginInlineTemplatesTest extends TestCase {% template title_bar %}
- {{ trmnl.plugin_settings.instance_name }} {{ instance }}
@@ -59,32 +50,31 @@ class PluginInlineTemplatesTest extends TestCase %} LIQUID - , - 'data_payload' => [ - 'facts' => ['Fact 1', 'Fact 2', 'Fact 3'], - ], - ]); + , + 'data_payload' => [ + 'facts' => ['Fact 1', 'Fact 2', 'Fact 3'], + ], + ]); - $result = $plugin->render('full'); + $result = $plugin->render('full'); - // Should render both templates - // Check for any of the facts (since random number generation is non-deterministic) - $this->assertTrue( - str_contains($result, 'Fact 1') || - str_contains($result, 'Fact 2') || - str_contains($result, 'Fact 3') - ); - $this->assertStringContainsString('Test Plugin', $result); - $this->assertStringContainsString('Please try to enjoy each fact equally', $result); - $this->assertStringContainsString('class="view view--full"', $result); - } + // Should render both templates + // Check for any of the facts (since random number generation is non-deterministic) + $this->assertTrue( + str_contains($result, 'Fact 1') || + str_contains($result, 'Fact 2') || + str_contains($result, 'Fact 3') + ); + $this->assertStringContainsString('Test Plugin', $result); + $this->assertStringContainsString('Please try to enjoy each fact equally', $result); + $this->assertStringContainsString('class="view view--full"', $result); +}); - public function test_plugin_with_inline_templates_using_with_syntax(): void - { - $plugin = Plugin::factory()->create([ - 'name' => 'Test Plugin', - 'markup_language' => 'liquid', - 'render_markup' => <<<'LIQUID' +test('renders plugin with inline templates using with syntax', function () { + $plugin = Plugin::factory()->create([ + 'name' => 'Test Plugin', + 'markup_language' => 'liquid', + 'render_markup' => <<<'LIQUID' {% assign min = 1 %} {% assign max = facts | size %} {% assign diff = max | minus: min %} @@ -126,31 +116,30 @@ LIQUID %} LIQUID - , - 'data_payload' => [ - 'facts' => ['Fact 1', 'Fact 2', 'Fact 3'], - ], - ]); + , + 'data_payload' => [ + 'facts' => ['Fact 1', 'Fact 2', 'Fact 3'], + ], + ]); - $result = $plugin->render('full'); + $result = $plugin->render('full'); - // Should render both templates - // Check for any of the facts (since random number generation is non-deterministic) - $this->assertTrue( - str_contains($result, 'Fact 1') || - str_contains($result, 'Fact 2') || - str_contains($result, 'Fact 3') - ); - $this->assertStringContainsString('Test Plugin', $result); - $this->assertStringContainsString('Please try to enjoy each fact equally', $result); - $this->assertStringContainsString('class="view view--full"', $result); - } + // Should render both templates + // Check for any of the facts (since random number generation is non-deterministic) + $this->assertTrue( + str_contains($result, 'Fact 1') || + str_contains($result, 'Fact 2') || + str_contains($result, 'Fact 3') + ); + $this->assertStringContainsString('Test Plugin', $result); + $this->assertStringContainsString('Please try to enjoy each fact equally', $result); + $this->assertStringContainsString('class="view view--full"', $result); +}); - public function test_plugin_with_simple_inline_template(): void - { - $plugin = Plugin::factory()->create([ - 'markup_language' => 'liquid', - 'render_markup' => <<<'LIQUID' +test('renders plugin with simple inline template', function () { + $plugin = Plugin::factory()->create([ + 'markup_language' => 'liquid', + 'render_markup' => <<<'LIQUID' {% template simple %}

{{ title }}

@@ -163,21 +152,20 @@ LIQUID content: "This is a test" %} LIQUID - , - ]); + , + ]); - $result = $plugin->render('full'); + $result = $plugin->render('full'); - $this->assertStringContainsString('Hello World', $result); - $this->assertStringContainsString('This is a test', $result); - $this->assertStringContainsString('class="simple"', $result); - } + $this->assertStringContainsString('Hello World', $result); + $this->assertStringContainsString('This is a test', $result); + $this->assertStringContainsString('class="simple"', $result); +}); - public function test_plugin_with_find_by_filter(): void - { - $plugin = Plugin::factory()->create([ - 'markup_language' => 'liquid', - 'render_markup' => <<<'LIQUID' +test('renders plugin with liquid filter find_by', function () { + $plugin = Plugin::factory()->create([ + 'markup_language' => 'liquid', + 'render_markup' => <<<'LIQUID' {% template user_info %}

{{ user.name }}

@@ -188,68 +176,65 @@ LIQUID {% assign found_user = collection | find_by: 'name', 'Ryan' %} {% render "user_info", user: found_user %} LIQUID - , - 'data_payload' => [ - 'collection' => [ - ['name' => 'Ryan', 'age' => 35], - ['name' => 'Sara', 'age' => 29], - ['name' => 'Jimbob', 'age' => 29], - ], + , + 'data_payload' => [ + 'collection' => [ + ['name' => 'Ryan', 'age' => 35], + ['name' => 'Sara', 'age' => 29], + ['name' => 'Jimbob', 'age' => 29], ], - ]); + ], + ]); - $result = $plugin->render('full'); + $result = $plugin->render('full'); - // Should render the user info for Ryan - $this->assertStringContainsString('Ryan', $result); - $this->assertStringContainsString('Age: 35', $result); - $this->assertStringContainsString('class="user"', $result); - } + // Should render the user info for Ryan + $this->assertStringContainsString('Ryan', $result); + $this->assertStringContainsString('Age: 35', $result); + $this->assertStringContainsString('class="user"', $result); +}); - public function test_plugin_with_find_by_filter_and_fallback(): void - { - $plugin = Plugin::factory()->create([ - 'markup_language' => 'liquid', - 'render_markup' => <<<'LIQUID' +test('renders plugin with liquid filter find_by and fallback', function () { + $plugin = Plugin::factory()->create([ + 'markup_language' => 'liquid', + 'render_markup' => <<<'LIQUID' {{ collection | find_by: 'name', 'ronak', 'Not Found' }} LIQUID - , - 'data_payload' => [ - 'collection' => [ - ['name' => 'Ryan', 'age' => 35], - ['name' => 'Sara', 'age' => 29], - ['name' => 'Jimbob', 'age' => 29], - ], + , + 'data_payload' => [ + 'collection' => [ + ['name' => 'Ryan', 'age' => 35], + ['name' => 'Sara', 'age' => 29], + ['name' => 'Jimbob', 'age' => 29], ], - ]); + ], + ]); - $result = $plugin->render('full'); + $result = $plugin->render('full'); - // Should return the fallback value - $this->assertStringContainsString('Not Found', $result); - } + // Should return the fallback value + $this->assertStringContainsString('Not Found', $result); +}); - public function test_plugin_with_group_by_filter(): void - { - $plugin = Plugin::factory()->create([ - 'markup_language' => 'liquid', - 'render_markup' => <<<'LIQUID' +test('renders plugin with liquid filter group_by', function () { + $plugin = Plugin::factory()->create([ + 'markup_language' => 'liquid', + 'render_markup' => <<<'LIQUID' {{ collection | group_by: 'age' | json }} LIQUID - , - 'data_payload' => [ - 'collection' => [ - ['name' => 'Ryan', 'age' => 35], - ['name' => 'Sara', 'age' => 29], - ['name' => 'Jimbob', 'age' => 29], - ], + , + 'data_payload' => [ + 'collection' => [ + ['name' => 'Ryan', 'age' => 35], + ['name' => 'Sara', 'age' => 29], + ['name' => 'Jimbob', 'age' => 29], ], - ]); + ], + ]); - $result = $plugin->render('full'); + $result = $plugin->render('full'); - // Should output JSON representation of grouped data - $this->assertStringContainsString('"35":[{"name":"Ryan","age":35}]', $result); - $this->assertStringContainsString('"29":[{"name":"Sara","age":29},{"name":"Jimbob","age":29}]', $result); - } -} + // Should output JSON representation of grouped data + $this->assertStringContainsString('"35":[{"name":"Ryan","age":35}]', $result); + $this->assertStringContainsString('"29":[{"name":"Sara","age":29},{"name":"Jimbob","age":29}]', $result); +});