diff --git a/packages/framework/src/Facades/Vite.php b/packages/framework/src/Facades/Vite.php
index d98fdf50eb1..a3db7dd3608 100644
--- a/packages/framework/src/Facades/Vite.php
+++ b/packages/framework/src/Facades/Vite.php
@@ -5,6 +5,7 @@
namespace Hyde\Facades;
use Illuminate\Support\HtmlString;
+use InvalidArgumentException;
/**
* Vite facade for handling Vite-related operations.
@@ -33,6 +34,7 @@ public static function assets(array $paths): HtmlString
return new HtmlString($html);
}
+ /** @throws InvalidArgumentException If the asset type is not supported. */
protected static function formatAssetPath(string $path): string
{
if (static::isCssPath($path)) {
@@ -43,7 +45,8 @@ protected static function formatAssetPath(string $path): string
return static::formatScriptInclude($path);
}
- return ''; // TODO: Throw an exception?
+ // We don't know how to handle other asset types, so we throw an exception to let the user know.
+ throw new InvalidArgumentException("Unsupported asset type for path: '$path'");
}
protected static function checkIfViteWasEnabledViaTheServeCommand(): bool
diff --git a/packages/framework/tests/Unit/Facades/ViteFacadeTest.php b/packages/framework/tests/Unit/Facades/ViteFacadeTest.php
index 80f223688d9..faa90a4676a 100644
--- a/packages/framework/tests/Unit/Facades/ViteFacadeTest.php
+++ b/packages/framework/tests/Unit/Facades/ViteFacadeTest.php
@@ -8,6 +8,7 @@
use Hyde\Facades\Vite;
use Hyde\Testing\CreatesTemporaryFiles;
use Illuminate\Support\HtmlString;
+use InvalidArgumentException;
/**
* @covers \Hyde\Facades\Vite
@@ -70,9 +71,20 @@ public function testItAlwaysImportsClientModule()
$this->assertStringContainsString('', (string) $html);
}
- public function testItDoesNotIncludeUnknownExtensions()
+ public function testAssetMethodThrowsExceptionForUnknownExtensions()
{
- $this->assertSame((string) Vite::assets([]), (string) Vite::assets(['foo.txt']));
+ $this->expectException(InvalidArgumentException::class);
+ $this->expectExceptionMessage("Unsupported asset type for path: 'foo.txt'");
+
+ Vite::asset('foo.txt');
+ }
+
+ public function testAssetsMethodThrowsExceptionForUnknownExtensions()
+ {
+ $this->expectException(InvalidArgumentException::class);
+ $this->expectExceptionMessage("Unsupported asset type for path: 'foo.txt'");
+
+ Vite::assets(['foo.txt']);
}
public function testAssetsMethodReturnsHtmlString()
@@ -155,15 +167,6 @@ public function testAssetMethodGeneratesCorrectHtmlForCssFile()
$this->assertSame($expected, (string) $html);
}
- public function testAssetMethodDoesNotIncludeUnknownExtensions()
- {
- $html = Vite::asset('unknown.ext');
-
- $expected = '';
-
- $this->assertSame($expected, (string) $html);
- }
-
public static function cssFileExtensionsProvider(): array
{
return [