diff --git a/composer.json b/composer.json index 8b93c8e..0355e4f 100644 --- a/composer.json +++ b/composer.json @@ -32,7 +32,8 @@ "symfony/http-kernel": ">=5.4,<8", "symfony/framework-bundle": ">=5.4,<8", "symfony/event-dispatcher": ">=5.4,<8", - "symfony/stopwatch": ">=5.4,<8" + "symfony/stopwatch": ">=5.4,<8", + "symfony/twig-bundle": ">=5.4,<8" }, "autoload": { "psr-4": { diff --git a/src/Extension/Symfony/Bundle/DependencyInjection/FiniteExtension.php b/src/Extension/Symfony/Bundle/DependencyInjection/FiniteExtension.php index cf2a123..58240ec 100644 --- a/src/Extension/Symfony/Bundle/DependencyInjection/FiniteExtension.php +++ b/src/Extension/Symfony/Bundle/DependencyInjection/FiniteExtension.php @@ -19,7 +19,9 @@ public function load(array $configs, ContainerBuilder $container): void StateMachine::class => (new Definition(StateMachine::class)) ->setArgument('$dispatcher', new Reference('event_dispatcher')) ->setPublic(true), - TwigExtension::class => new Definition(TwigExtension::class), + TwigExtension::class => (new Definition(TwigExtension::class)) + ->setArgument('$stateMachine', new Reference(StateMachine::class)) + ->addTag('twig.extension'), ] ); } diff --git a/tests/Extension/Symfony/Fixtures/app/AppKernel.php b/tests/Extension/Symfony/Fixtures/app/AppKernel.php index bff97d2..a10b65b 100644 --- a/tests/Extension/Symfony/Fixtures/app/AppKernel.php +++ b/tests/Extension/Symfony/Fixtures/app/AppKernel.php @@ -14,6 +14,7 @@ public function registerBundles(): iterable { return [ new Symfony\Bundle\FrameworkBundle\FrameworkBundle(), + new Symfony\Bundle\TwigBundle\TwigBundle(), new Finite\Extension\Symfony\Bundle\FiniteBundle(), ]; } diff --git a/tests/Extension/Symfony/ServiceTest.php b/tests/Extension/Symfony/ServiceTest.php index 62fec84..3e18d95 100644 --- a/tests/Extension/Symfony/ServiceTest.php +++ b/tests/Extension/Symfony/ServiceTest.php @@ -4,11 +4,14 @@ namespace Finite\Tests\Extension\Symfony; use Finite\Event\CanTransitionEvent; +use Finite\Extension\Twig\FiniteExtension; use Finite\StateMachine; use Finite\Tests\Extension\Symfony\Fixtures\Model\Document; use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase; +use Symfony\Bundle\FrameworkBundle\Test\TestContainer; use Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher; use Symfony\Contracts\EventDispatcher\EventDispatcherInterface; +use Twig\Environment; class ServiceTest extends KernelTestCase { @@ -18,6 +21,8 @@ public function test_services_are_registered(): void $this->assertInstanceOf(StateMachine::class, $container->get(StateMachine::class)); $this->assertInstanceOf(EventDispatcherInterface::class, $container->get(StateMachine::class)->getDispatcher()); + + $this->assertArrayHasKey(FiniteExtension::class, $container->get('twig')->getExtensions()); } public function test_it_uses_the_symfony_dispatcher(): void