Correct implementation

This commit is contained in:
Ralph J. Smit
2025-04-07 21:13:46 +02:00
parent 899a4c10b8
commit 6c586df725
2 changed files with 14 additions and 5 deletions
+1 -1
View File
@@ -41,7 +41,7 @@ trait Macroable
public static function hasMacro(string $name): bool
{
return isset(static::$macros[$name]);
return (bool) static::getMacro($name);
}
/**
+13 -4
View File
@@ -1,19 +1,28 @@
<?php
use Filament\Forms\ComponentContainer;
use Filament\Forms\Components\Field;
use Filament\Forms\Form;
use Filament\Support\Components\Component;
use Filament\Tests\TestCase;
uses(TestCase::class);
test('component is macroable', function () {
expect(Component::hasMacro('someMacro'))
expect(ComponentContainer::hasMacro('someMacro'))
->toBeFalse();
expect(Component::hasMacro('someMacro'))
expect(ComponentContainer::hasMacro('someMacro'))
->toBeFalse();
Component::macro('someMacro', fn () => 'Hello');
ComponentContainer::macro('someMacro', fn () => 'Hello');
expect(Component::hasMacro('someMacro'))
expect(ComponentContainer::hasMacro('someMacro'))
->toBeTrue();
expect(Form::hasMacro('someMacro'))
->toBeTrue(); // Decendant of `Component`...
expect(Field::hasMacro('someMacro'))
->toBeFalse();
});