From 9e3984ff93fdb1883bbb289f40da2f503439b023 Mon Sep 17 00:00:00 2001 From: Alexis Lefebvre Date: Wed, 13 Nov 2024 18:31:52 +0100 Subject: [PATCH] fix: ignore missing directory in isVendor() --- .../AssetMapper/Factory/MappedAssetFactory.php | 2 +- .../Tests/Factory/MappedAssetFactoryTest.php | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Component/AssetMapper/Factory/MappedAssetFactory.php b/src/Symfony/Component/AssetMapper/Factory/MappedAssetFactory.php index 1d2ba703e6592..14f273b7b474d 100644 --- a/src/Symfony/Component/AssetMapper/Factory/MappedAssetFactory.php +++ b/src/Symfony/Component/AssetMapper/Factory/MappedAssetFactory.php @@ -128,6 +128,6 @@ private function isVendor(string $sourcePath): bool $sourcePath = realpath($sourcePath); $vendorDir = realpath($this->vendorDir); - return $sourcePath && str_starts_with($sourcePath, $vendorDir); + return $sourcePath && $vendorDir && str_starts_with($sourcePath, $vendorDir); } } diff --git a/src/Symfony/Component/AssetMapper/Tests/Factory/MappedAssetFactoryTest.php b/src/Symfony/Component/AssetMapper/Tests/Factory/MappedAssetFactoryTest.php index d4e129a50ccfc..7e3d1641e36a8 100644 --- a/src/Symfony/Component/AssetMapper/Tests/Factory/MappedAssetFactoryTest.php +++ b/src/Symfony/Component/AssetMapper/Tests/Factory/MappedAssetFactoryTest.php @@ -26,6 +26,8 @@ class MappedAssetFactoryTest extends TestCase { + private const DEFAULT_FIXTURES = __DIR__.'/../Fixtures/assets/vendor'; + private AssetMapperInterface&MockObject $assetMapper; public function testCreateMappedAsset() @@ -137,7 +139,15 @@ public function testCreateMappedAssetInVendor() $this->assertTrue($asset->isVendor); } - private function createFactory(?AssetCompilerInterface $extraCompiler = null): MappedAssetFactory + public function testCreateMappedAssetInMissingVendor() + { + $assetMapper = $this->createFactory(null, '/this-path-does-not-exist/'); + $asset = $assetMapper->createMappedAsset('lodash.js', __DIR__.'/../Fixtures/assets/vendor/lodash/lodash.index.js'); + $this->assertSame('lodash.js', $asset->logicalPath); + $this->assertFalse($asset->isVendor); + } + + private function createFactory(?AssetCompilerInterface $extraCompiler = null, ?string $vendorDir = self::DEFAULT_FIXTURES): MappedAssetFactory { $compilers = [ new JavaScriptImportPathCompiler($this->createMock(ImportMapConfigReader::class)), @@ -162,7 +172,7 @@ private function createFactory(?AssetCompilerInterface $extraCompiler = null): M $factory = new MappedAssetFactory( $pathResolver, $compiler, - __DIR__.'/../Fixtures/assets/vendor', + $vendorDir, ); // mock the AssetMapper to behave like normal: by calling back to the factory pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy