diff --git a/frontend/.gitignore b/frontend/.gitignore index 6a5f9f9d..ce9f3eb7 100644 --- a/frontend/.gitignore +++ b/frontend/.gitignore @@ -26,6 +26,7 @@ Thumbs.db !.env.test # Vite +.vite/ vite.config.js.timestamp-* vite.config.ts.timestamp-* diff --git a/frontend/package.json b/frontend/package.json index 068aeeab..2e49b7aa 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -14,7 +14,8 @@ "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", "format": "prettier --write .", "lint": "prettier --check . && eslint .", - "test:unit": "vitest", + "test:unit": "vitest --project server", + "test:unit:full": "vitest", "test": "npm run test:unit -- --run && npm run test:e2e", "test:e2e": "playwright test" }, diff --git a/frontend/src/lib/utils.ts b/frontend/src/lib/utils.ts index fca43238..3e996ac5 100644 --- a/frontend/src/lib/utils.ts +++ b/frontend/src/lib/utils.ts @@ -43,18 +43,23 @@ function parseAbsoluteLikeUrl(value: string): URL | null { if (!trimmed) return null; try { - return new URL(trimmed); - } catch { - // Soporta formato host:puerto/ruta sin protocolo. - if (/^[a-z0-9.-]+:\d+\//i.test(trimmed)) { - try { - return new URL(`http://${trimmed}`); - } catch { - return null; - } + const parsed = new URL(trimmed); + if (parsed.protocol === 'http:' || parsed.protocol === 'https:') { + return parsed; } - return null; + } catch { } + + // Soporta formato host:puerto/ruta sin protocolo. + if (/^[a-z0-9.-]+:\d+\//i.test(trimmed)) { + try { + return new URL(`http://${trimmed}`); + } catch { + return null; + } + } + + return null; } function rewriteInternalHostToPublicUrl(value: string): string { diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts index 24c69218..3c60fcc4 100644 --- a/frontend/vite.config.ts +++ b/frontend/vite.config.ts @@ -38,7 +38,7 @@ const vitestClientProject = { export default defineConfig({ server: { - port: 5173, // fija el puerto + port: 5173, // fija el puerto host: true, // escucha en 0.0.0.0 // Lista explĂ­cita + peticiones internas (p. ej. chunks JSON `?import`) pueden usar // Hosts distintos y recibir 403. `true` permite cualquier Host en dev.