public function testBuild() { $bundle = new WebpackBundle(); $container = new ContainerBuilder(); $this->assertInstanceOf(DependencyInjection\WebpackExtension::class, $bundle->getContainerExtension()); $bundle->build($container); $this->assertContainsOnlyInstancesOf(WebpackCompilerPass::class, $container->getCompilerPassConfig()->getBeforeOptimizationPasses()); }
/** * @expectedException \RuntimeException * @expectedExceptionMessage Webpack is not installed in path */ public function testLoadNoWebpack() { $bundle = new WebpackBundle(); $container = new ContainerBuilder(); $extension = $bundle->getContainerExtension(); $fixture_dir = realpath(__DIR__ . '/../../Fixture'); $container->setParameter('kernel.bundles', ['FooBundle' => FooBundle::class, 'BarBundle' => BarBundle::class]); $container->setParameter('kernel.debug', true); $container->setParameter('kernel.root_dir', $fixture_dir); $container->setParameter('kernel.cache_dir', realpath($fixture_dir . '/cache')); $container->set('templating.finder', $this->getMock(TemplateFinderInterface::class)); $container->set('twig', $this->getMock(\Twig_Environment::class)); $container->set('logger', $this->getMock(LoggerInterface::class)); $bundle->build($container); $extension->load(['webpack' => ['node' => ['node_modules_path' => $fixture_dir], 'bundles' => ['FooBundle']]], $container); $container->compile(); $this->assertTrue($container->hasDefinition('hostnet_webpack.bridge.asset_compiler')); $this->assertTrue($container->hasDefinition('hostnet_webpack.bridge.asset_tracker')); $this->assertTrue($container->hasDefinition('hostnet_webpack.bridge.config_generator')); $this->assertTrue($container->hasDefinition('hostnet_webpack.bridge.profiler')); }