Fix import path in test

This commit is contained in:
Princesseuh 2022-10-26 15:28:59 -03:00
parent 88cb44250d
commit 5ca34f3c09
No known key found for this signature in database
GPG key ID: 105BBD6D57F2B0C0
4 changed files with 34 additions and 9 deletions

View file

@ -1,4 +1,5 @@
---
---
<html lang="en">
@ -11,5 +12,13 @@
</head>
<body>
<h1>Astro</h1>
<style>
@import '../does/not/exist';
</style>
<style>
@import '../does/not/exist2';
</style>
</body>
</html>

View file

@ -13,6 +13,7 @@ import type {
import { renderSlot } from '../../runtime/server/index.js';
import { renderJSX } from '../../runtime/server/jsx.js';
import { AstroCookies } from '../cookies/index.js';
import { AstroError, AstroErrorCodes } from '../errors/index.js';
import { LogOptions, warn } from '../logger/core.js';
import { isScriptRequest } from './script.js';
import { isCSSRequest } from './util.js';
@ -22,7 +23,11 @@ const clientAddressSymbol = Symbol.for('astro.clientAddress');
function onlyAvailableInSSR(name: string) {
return function _onlyAvailableInSSR() {
// TODO add more guidance when we have docs and adapters.
throw new Error(`Oops, you are trying to use ${name}, which is only available with SSR.`);
throw new AstroError({
errorCode: AstroErrorCodes.UnavailableInSSR,
message: `Oops, you are trying to use ${name}, which is only available with SSR.`,
hint: 'See https://docs.astro.build/en/guides/server-side-rendering/#enabling-ssr-in-your-project for information on how to enable SSR',
});
};
}

View file

@ -302,9 +302,11 @@ function isRedirect(statusCode: number) {
function throwIfRedirectNotAllowed(response: Response, config: AstroConfig) {
if (config.output !== 'server' && isRedirect(response.status)) {
throw new Error(
`Redirects are only available when using output: 'server'. Update your Astro config if you need SSR features.`
);
throw new AstroError({
errorCode: AstroErrorCodes.StaticRedirectNotAllowed,
message:
"Redirects are only available when using output: 'server'. Update your Astro config if you need SSR features.",
});
}
}
@ -441,13 +443,22 @@ export default function createPlugin({ settings, logging }: AstroPluginOptions):
});
};
},
// HACK: hide `.tip` in Vite's ErrorOverlay and replace [vite] messages with [astro]
transform(code, id, opts = {}) {
if (opts.ssr) return;
if (!id.includes('vite/dist/client/client.mjs')) return;
return code
.replace(/\.tip \{[^}]*\}/gm, '.tip {\n display: none;\n}')
.replace(/\[vite\]/g, '[astro]');
return (
code
// Transform links in the message to clickable links
.replace(
"this.text('.message-body', message.trim());",
`const urlPattern = /(\\b(https?|ftp):\\/\\/[-A-Z0-9+&@#\\/%?=~_|!:,.;]*[-A-Z0-9+&@#\\/%=~_|])/gim;
this.root.querySelector(".message-body").innerHTML = message.trim().replace(urlPattern, '<a href="$1" target="_blank">$1</a>');`
)
// Remove Vite's ErrorOverlay tip as it refers to some Viteism
.replace(/\.tip \{[^}]*\}/gm, '.tip {\n display: none;\n}')
// Replace all mentions of [vite] with [astro]
.replace(/\[vite\]/g, '[astro]')
);
},
};
}

View file

@ -1,6 +1,6 @@
import { expect } from 'chai';
import { cachedCompilation } from '../../../dist/core/compile/index.js';
import { AggregateError } from '../../../dist/core/util.js';
import { AggregateError } from '../../../dist/core/errors/index.js';
describe('astro/src/core/compile', () => {
describe('Invalid CSS', () => {