diff --git a/infection.json b/infection.json index c46d347..79dd0f5 100644 --- a/infection.json +++ b/infection.json @@ -3,6 +3,9 @@ "source": { "directories": [ "src" + ], + "excludes": [ + "BladeMacroServiceProvider.php" ] }, "logs": { diff --git a/src/BladeMacroServiceProvider.php b/src/BladeMacroServiceProvider.php index 5abcc5e..506d760 100644 --- a/src/BladeMacroServiceProvider.php +++ b/src/BladeMacroServiceProvider.php @@ -11,16 +11,8 @@ class BladeMacroServiceProvider extends ServiceProvider { public function boot(): void { - Blade::directive('macro', function ($macroName) { - return Macro::define($macroName); - }); - - Blade::directive('endMacro', function () { - return Macro::endDefinition(); - }); - - Blade::directive('showMacro', function ($expression) { - return Macro::show($expression); - }); + Blade::directive('macro', fn ($macroName) => Macro::define($macroName)); + Blade::directive('endMacro', fn () => Macro::endDefinition()); + Blade::directive('showMacro', fn ($expression) => Macro::show($expression)); } } diff --git a/src/Macro.php b/src/Macro.php index 2ba180d..6d5563a 100644 --- a/src/Macro.php +++ b/src/Macro.php @@ -6,6 +6,7 @@ use Illuminate\Support\Collection; use Illuminate\Support\Facades\Blade; +use InvalidArgumentException; final class Macro { @@ -22,7 +23,7 @@ public static function show(string $expression): string $macroName = $arguments->first(); if (!array_key_exists($macroName, self::$macros)) { - throw new \Exception("The `$macroName` macro is not defined."); + throw new InvalidArgumentException("The `$macroName` macro is not defined."); } $args = $arguments->except([0])->implode(','); diff --git a/tests/BladeMacroServiceProviderTest.php b/tests/BladeMacroServiceProviderTest.php deleted file mode 100644 index 6ee81a1..0000000 --- a/tests/BladeMacroServiceProviderTest.php +++ /dev/null @@ -1,37 +0,0 @@ -withArgs(function ($name, $handler) { - self::assertSame('macro', $name); - return $name === 'macro' && is_callable($handler); - }); - - Blade::expects('directive')->withArgs(function ($name, $handler) { - self::assertSame('endMacro', $name); - return $name === 'endMacro' && is_callable($handler); - }); - - Blade::expects('directive')->withArgs(function ($name, $handler) { - self::assertSame('showMacro', $name); - return $name === 'showMacro' && is_callable($handler); - }); - - $provider = new BladeMacroServiceProvider($app); - - $provider->boot(); - } -} diff --git a/tests/MacroTest.php b/tests/MacroTest.php index d3e9d4a..553f2ca 100644 --- a/tests/MacroTest.php +++ b/tests/MacroTest.php @@ -50,7 +50,7 @@ public function test_show_macro(): void { Macro::$macros['testcase'] = 'hello'; - $macro = Macro::show('testcase'); + $macro = Macro::show('testcase '); self::assertSame( "", @@ -60,7 +60,7 @@ public function test_show_macro(): void public function test_showing_undefined_macro_throws_exception(): void { - $this->expectException(\Exception::class); + $this->expectException(\InvalidArgumentException::class); $this->expectExceptionMessage('The `testcase` macro is not defined.'); self::assertEmpty(Macro::$macros);