diff --git a/src/StimulusBundle/src/AssetMapper/ControllersMapGenerator.php b/src/StimulusBundle/src/AssetMapper/ControllersMapGenerator.php index 4eb66984b02..b99f5ffbe5c 100644 --- a/src/StimulusBundle/src/AssetMapper/ControllersMapGenerator.php +++ b/src/StimulusBundle/src/AssetMapper/ControllersMapGenerator.php @@ -77,7 +77,7 @@ private function loadCustomControllers(): array $name = str_replace(['_', '/', '\\'], ['-', '--', '--'], $name); $asset = $this->assetMapper->getAssetFromSourcePath($file->getRealPath()); - $content = $asset->content ?: file_get_contents($asset->sourcePath); + $content = file_get_contents($asset->sourcePath); $isLazy = preg_match('/\/\*\s*stimulusFetch:\s*\'lazy\'\s*\*\//i', $content); $controllersMap[$name] = new MappedControllerAsset($asset, $isLazy); diff --git a/src/StimulusBundle/tests/AssetMapper/ControllerMapGeneratorTest.php b/src/StimulusBundle/tests/AssetMapper/ControllersMapGeneratorTest.php similarity index 89% rename from src/StimulusBundle/tests/AssetMapper/ControllerMapGeneratorTest.php rename to src/StimulusBundle/tests/AssetMapper/ControllersMapGeneratorTest.php index 11cbfe42889..21277b28003 100644 --- a/src/StimulusBundle/tests/AssetMapper/ControllerMapGeneratorTest.php +++ b/src/StimulusBundle/tests/AssetMapper/ControllersMapGeneratorTest.php @@ -20,7 +20,7 @@ use Symfony\UX\StimulusBundle\AssetMapper\MappedControllerAutoImport; use Symfony\UX\StimulusBundle\Ux\UxPackageReader; -class ControllerMapGeneratorTest extends TestCase +class ControllersMapGeneratorTest extends TestCase { public function testGetControllersMap() { @@ -41,7 +41,12 @@ public function testGetControllersMap() $logicalPath = substr($path, $assetsPosition + 1); } - return new MappedAsset($logicalPath, $path, content: file_get_contents($path)); + $content = null; + if (str_ends_with($path, 'minified-controller.js')) { + $content = 'import{Controller}from"@hotwired/stimulus";export default class extends Controller{}'; + } + + return new MappedAsset($logicalPath, $path, content: $content); }); $packageReader = new UxPackageReader(__DIR__.'/../fixtures'); @@ -73,8 +78,8 @@ public function testGetControllersMap() $map = $generator->getControllersMap(); // + 3 controller.json UX controllers // - 1 controllers.json UX controller is disabled - // + 9 custom controllers (1 file is not a controller & 1 is overridden) - $this->assertCount(11, $map); + // + 10 custom controllers (1 file is not a controller & 1 is overridden) + $this->assertCount(12, $map); $packageNames = array_keys($map); sort($packageNames); $this->assertSame([ @@ -84,6 +89,7 @@ public function testGetControllersMap() 'hello', 'hello-with-dashes', 'hello-with-underscores', + 'minified', 'other', 'subdir--deeper', 'subdir--deeper-with-dashes', @@ -115,5 +121,8 @@ public function testGetControllersMap() $otherController = $map['other']; $this->assertTrue($otherController->isLazy); + + $minifiedController = $map['minified']; + $this->assertTrue($minifiedController->isLazy); } } diff --git a/src/StimulusBundle/tests/AssetMapper/StimulusControllerLoaderFunctionalTest.php b/src/StimulusBundle/tests/AssetMapper/StimulusControllerLoaderFunctionalTest.php index 877073ff049..58bb6c8c97c 100644 --- a/src/StimulusBundle/tests/AssetMapper/StimulusControllerLoaderFunctionalTest.php +++ b/src/StimulusBundle/tests/AssetMapper/StimulusControllerLoaderFunctionalTest.php @@ -63,8 +63,9 @@ public function testFullApplicationLoad() // 2x from UX packages, which are enabled in controllers.json '/assets/fake-vendor/ux-package1/package-controller-second.js', '/assets/fake-vendor/ux-package2/package-hello-controller.js', - // 2x from more-controllers + // 3x from more-controllers '/assets/more-controllers/hello-controller.js', + '/assets/more-controllers/minified-controller.js', '/assets/more-controllers/other-controller.js', // 5x from importmap.php '@hotwired/stimulus', diff --git a/src/StimulusBundle/tests/fixtures/assets/more-controllers/minified-controller.js b/src/StimulusBundle/tests/fixtures/assets/more-controllers/minified-controller.js new file mode 100644 index 00000000000..2eb85a71211 --- /dev/null +++ b/src/StimulusBundle/tests/fixtures/assets/more-controllers/minified-controller.js @@ -0,0 +1,6 @@ +// minified-controller.js +import { Controller } from '@hotwired/stimulus'; + +/* stimulusFetch: 'lazy' */ +export default class extends Controller { +}