26
26
27
27
class MappedAssetFactoryTest extends TestCase
28
28
{
29
+ private const DEFAULT_FIXTURES = __DIR__ .'/../Fixtures/assets/vendor ' ;
30
+
29
31
private AssetMapperInterface &MockObject $ assetMapper ;
30
32
31
33
public function testCreateMappedAsset ()
@@ -137,7 +139,18 @@ public function testCreateMappedAssetInVendor()
137
139
$ this ->assertTrue ($ asset ->isVendor );
138
140
}
139
141
140
- private function createFactory (?AssetCompilerInterface $ extraCompiler = null ): MappedAssetFactory
142
+ public function testCreateMappedAssetInMissingVendor ()
8000
143
+ {
144
+ $ assetMapper = $ this ->createFactory (null , '/this-path-does-not-exist/ ' );
145
+ $ asset = $ assetMapper ->createMappedAsset ('lodash.js ' , __DIR__ .'/../Fixtures/assets/vendor/lodash/lodash.index.js ' );
146
+ $ this ->assertSame ('lodash.js ' , $ asset ->logicalPath );
147
+ $ this ->assertFalse ($ asset ->isVendor );
148
+ }
149
+
150
+ private function createFactory (
151
+ ?AssetCompilerInterface $ extraCompiler = null ,
152
+ ?string $ vendorDir = self ::DEFAULT_FIXTURES ,
153
+ ): MappedAssetFactory
141
154
{
142
155
$ compilers = [
143
156
new JavaScriptImportPathCompiler ($ this ->createMock (ImportMapConfigReader::class)),
@@ -162,7 +175,7 @@ private function createFactory(?AssetCompilerInterface $extraCompiler = null): M
162
175
$ factory = new MappedAssetFactory (
163
176
$ pathResolver ,
164
177
$ compiler ,
165
- __DIR__ . ' /../Fixtures/assets/vendor ' ,
178
+ $ vendorDir ,
166
179
);
167
180
168
181
// mock the AssetMapper to behave like normal: by calling back to the factory
0 commit comments