From c9a61ba69c5a5f81a312ece03d66ef5adc798d07 Mon Sep 17 00:00:00 2001 From: Younes ENNAJI Date: Wed, 25 Feb 2026 20:28:26 +0000 Subject: [PATCH] add tests for helper functions --- tests/Laravel/Helper/GlobalHelperTest.php | 154 ++++++++++++++++++ tests/Laravel/Helper/NamespacedHelperTest.php | 110 +++++++++++++ .../Filter/Criteria/FilterCriteriaTest.php | 6 +- .../Filter/Criteria/RangeExtractorTest.php | 2 +- tests/Symfony/Translation/TranslatorTest.php | 1 - 5 files changed, 268 insertions(+), 5 deletions(-) create mode 100644 tests/Laravel/Helper/GlobalHelperTest.php create mode 100644 tests/Laravel/Helper/NamespacedHelperTest.php diff --git a/tests/Laravel/Helper/GlobalHelperTest.php b/tests/Laravel/Helper/GlobalHelperTest.php new file mode 100644 index 00000000..f6696a5b --- /dev/null +++ b/tests/Laravel/Helper/GlobalHelperTest.php @@ -0,0 +1,154 @@ +assertInstanceOf(FlasherInterface::class, $result); + } + + public function testFlashReturnsEnvelopeWithMessage(): void + { + $result = flash('Test message'); + + $this->assertInstanceOf(Envelope::class, $result); + $this->assertSame('Test message', $result->getMessage()); + $this->assertSame('success', $result->getType()); + } + + public function testFlashWithCustomType(): void + { + $result = flash('Error message', 'error'); + + $this->assertInstanceOf(Envelope::class, $result); + $this->assertSame('error', $result->getType()); + } + + public function testFlashWithOptions(): void + { + $result = flash('Test', 'warning', ['timeout' => 5000]); + + $this->assertInstanceOf(Envelope::class, $result); + $this->assertSame('warning', $result->getType()); + $this->assertSame(['timeout' => 5000], $result->getOptions()); + } + + public function testFlashWithTitle(): void + { + $result = flash('Test message', 'info', [], 'My Title'); + + $this->assertInstanceOf(Envelope::class, $result); + $this->assertSame('info', $result->getType()); + $this->assertSame('My Title', $result->getTitle()); + } + + public function testToastrReturnsFactoryWithNoArgs(): void + { + $result = toastr(); + + $this->assertInstanceOf(ToastrInterface::class, $result); + } + + public function testToastrReturnsEnvelopeWithMessage(): void + { + $result = toastr('Test message'); + + $this->assertInstanceOf(Envelope::class, $result); + $this->assertSame('Test message', $result->getMessage()); + $this->assertSame('success', $result->getType()); + } + + public function testToastrWithCustomType(): void + { + $result = toastr('Error message', 'error'); + + $this->assertInstanceOf(Envelope::class, $result); + $this->assertSame('error', $result->getType()); + } + + public function testNotyReturnsFactoryWithNoArgs(): void + { + $result = noty(); + + $this->assertInstanceOf(NotyInterface::class, $result); + } + + public function testNotyReturnsEnvelopeWithMessage(): void + { + $result = noty('Test message'); + + $this->assertInstanceOf(Envelope::class, $result); + $this->assertSame('Test message', $result->getMessage()); + $this->assertSame('success', $result->getType()); + } + + public function testNotyWithCustomType(): void + { + $result = noty('Warning message', 'warning'); + + $this->assertInstanceOf(Envelope::class, $result); + $this->assertSame('warning', $result->getType()); + } + + public function testNotyfReturnsFactoryWithNoArgs(): void + { + $result = notyf(); + + $this->assertInstanceOf(NotyfInterface::class, $result); + } + + public function testNotyfReturnsEnvelopeWithMessage(): void + { + $result = notyf('Test message'); + + $this->assertInstanceOf(Envelope::class, $result); + $this->assertSame('Test message', $result->getMessage()); + $this->assertSame('success', $result->getType()); + } + + public function testNotyfWithCustomType(): void + { + $result = notyf('Error message', 'error'); + + $this->assertInstanceOf(Envelope::class, $result); + $this->assertSame('error', $result->getType()); + } + + public function testSweetalertReturnsFactoryWithNoArgs(): void + { + $result = sweetalert(); + + $this->assertInstanceOf(SweetAlertInterface::class, $result); + } + + public function testSweetalertReturnsEnvelopeWithMessage(): void + { + $result = sweetalert('Test message'); + + $this->assertInstanceOf(Envelope::class, $result); + $this->assertSame('Test message', $result->getMessage()); + $this->assertSame('success', $result->getType()); + } + + public function testSweetalertWithCustomType(): void + { + $result = sweetalert('Question?', 'question'); + + $this->assertInstanceOf(Envelope::class, $result); + $this->assertSame('question', $result->getType()); + } +} diff --git a/tests/Laravel/Helper/NamespacedHelperTest.php b/tests/Laravel/Helper/NamespacedHelperTest.php new file mode 100644 index 00000000..811f4167 --- /dev/null +++ b/tests/Laravel/Helper/NamespacedHelperTest.php @@ -0,0 +1,110 @@ +assertTrue(\function_exists('Flasher\Prime\flash')); + } + + public function testPrimeFlashReturnsFactoryWithNoArgs(): void + { + $result = \Flasher\Prime\flash(); + + $this->assertInstanceOf(\Flasher\Prime\FlasherInterface::class, $result); + } + + public function testPrimeFlashReturnsEnvelopeWithMessage(): void + { + $result = \Flasher\Prime\flash('Test message'); + + $this->assertInstanceOf(\Flasher\Prime\Notification\Envelope::class, $result); + $this->assertSame('Test message', $result->getMessage()); + } + + public function testToastrFunctionExists(): void + { + $this->assertTrue(\function_exists('Flasher\Toastr\Prime\toastr')); + } + + public function testToastrReturnsFactoryWithNoArgs(): void + { + $result = \Flasher\Toastr\Prime\toastr(); + + $this->assertInstanceOf(\Flasher\Toastr\Prime\ToastrInterface::class, $result); + } + + public function testToastrReturnsEnvelopeWithMessage(): void + { + $result = \Flasher\Toastr\Prime\toastr('Test message'); + + $this->assertInstanceOf(\Flasher\Prime\Notification\Envelope::class, $result); + $this->assertSame('Test message', $result->getMessage()); + } + + public function testNotyFunctionExists(): void + { + $this->assertTrue(\function_exists('Flasher\Noty\Prime\noty')); + } + + public function testNotyReturnsFactoryWithNoArgs(): void + { + $result = \Flasher\Noty\Prime\noty(); + + $this->assertInstanceOf(\Flasher\Noty\Prime\NotyInterface::class, $result); + } + + public function testNotyReturnsEnvelopeWithMessage(): void + { + $result = \Flasher\Noty\Prime\noty('Test message'); + + $this->assertInstanceOf(\Flasher\Prime\Notification\Envelope::class, $result); + $this->assertSame('Test message', $result->getMessage()); + } + + public function testNotyfFunctionExists(): void + { + $this->assertTrue(\function_exists('Flasher\Notyf\Prime\notyf')); + } + + public function testNotyfReturnsFactoryWithNoArgs(): void + { + $result = \Flasher\Notyf\Prime\notyf(); + + $this->assertInstanceOf(\Flasher\Notyf\Prime\NotyfInterface::class, $result); + } + + public function testNotyfReturnsEnvelopeWithMessage(): void + { + $result = \Flasher\Notyf\Prime\notyf('Test message'); + + $this->assertInstanceOf(\Flasher\Prime\Notification\Envelope::class, $result); + $this->assertSame('Test message', $result->getMessage()); + } + + public function testSweetalertFunctionExists(): void + { + $this->assertTrue(\function_exists('Flasher\SweetAlert\Prime\sweetalert')); + } + + public function testSweetalertReturnsFactoryWithNoArgs(): void + { + $result = \Flasher\SweetAlert\Prime\sweetalert(); + + $this->assertInstanceOf(\Flasher\SweetAlert\Prime\SweetAlertInterface::class, $result); + } + + public function testSweetalertReturnsEnvelopeWithMessage(): void + { + $result = \Flasher\SweetAlert\Prime\sweetalert('Test message'); + + $this->assertInstanceOf(\Flasher\Prime\Notification\Envelope::class, $result); + $this->assertSame('Test message', $result->getMessage()); + } +} diff --git a/tests/Prime/Storage/Filter/Criteria/FilterCriteriaTest.php b/tests/Prime/Storage/Filter/Criteria/FilterCriteriaTest.php index e98a0910..299dcb0b 100644 --- a/tests/Prime/Storage/Filter/Criteria/FilterCriteriaTest.php +++ b/tests/Prime/Storage/Filter/Criteria/FilterCriteriaTest.php @@ -60,7 +60,7 @@ final class FilterCriteriaTest extends TestCase new Envelope(new Notification()), ]; - $criteria = new FilterCriteria(fn ($e) => array_slice($e, 0, 2)); + $criteria = new FilterCriteria(fn ($e) => \array_slice($e, 0, 2)); $result = $criteria->apply($envelopes); @@ -84,7 +84,7 @@ final class FilterCriteriaTest extends TestCase $criteria = new FilterCriteria([ fn ($e) => array_filter($e, fn (Envelope $envelope) => 'success' === $envelope->getType()), - fn ($e) => array_slice($e, 0, 1), + fn ($e) => \array_slice($e, 0, 1), ]); $result = $criteria->apply($envelopes); @@ -157,7 +157,7 @@ final class FilterCriteriaTest extends TestCase function ($e) use (&$order) { $order[] = 'second'; - return array_slice($e, 0, 2); + return \array_slice($e, 0, 2); }, ]); diff --git a/tests/Prime/Storage/Filter/Criteria/RangeExtractorTest.php b/tests/Prime/Storage/Filter/Criteria/RangeExtractorTest.php index 6e1e8e10..f47171ed 100644 --- a/tests/Prime/Storage/Filter/Criteria/RangeExtractorTest.php +++ b/tests/Prime/Storage/Filter/Criteria/RangeExtractorTest.php @@ -15,7 +15,7 @@ final class RangeExtractorTest extends TestCase { parent::setUp(); - $this->traitInstance = new class() { + $this->traitInstance = new class { use RangeExtractor; public function testExtractRange(string $name, mixed $criteria): array diff --git a/tests/Symfony/Translation/TranslatorTest.php b/tests/Symfony/Translation/TranslatorTest.php index 524d4e51..e610ef5d 100644 --- a/tests/Symfony/Translation/TranslatorTest.php +++ b/tests/Symfony/Translation/TranslatorTest.php @@ -6,7 +6,6 @@ namespace Flasher\Tests\Symfony\Translation; use Flasher\Symfony\Translation\Translator; use Mockery\Adapter\Phpunit\MockeryPHPUnitIntegration; -use Mockery\MockInterface; use PHPUnit\Framework\TestCase; use Symfony\Component\Translation\MessageCatalogueInterface; use Symfony\Component\Translation\TranslatorBagInterface;