test(v6): reproduce custom environment preload injection #19274
Annotations
3 errors
Test unit:
packages/vite/src/node/__tests__/build.spec.ts#L658
AssertionError: expected 'const scriptRel = "modulepreload";\nc…' not to contain 'preload'
- Expected
+ Received
- preload
+ const scriptRel = "modulepreload";
+ const assetsURL = function(dep) {
+ return "/" + dep;
+ };
+ const seen = {};
+ const __vitePreload = function preload(baseModule, deps, importerUrl) {
+ let promise = Promise.resolve();
+ if (deps && deps.length > 0) {
+ const links = document.getElementsByTagName("link");
+ const cspNonceMeta = document.querySelector(
+ "meta[property=csp-nonce]"
+ );
+ const cspNonce = (cspNonceMeta == null ? void 0 : cspNonceMeta.nonce) || (cspNonceMeta == null ? void 0 : cspNonceMeta.getAttribute("nonce"));
+ promise = Promise.all(
+ deps.map((dep) => {
+ dep = assetsURL(dep);
+ if (dep in seen)
+ return;
+ seen[dep] = true;
+ const isCss = dep.endsWith(".css");
+ const cssSelector = isCss ? '[rel="stylesheet"]' : "";
+ const isBaseRelative = !!importerUrl;
+ if (isBaseRelative) {
+ for (let i = links.length - 1; i >= 0; i--) {
+ const link2 = links[i];
+ if (link2.href === dep && (!isCss || link2.rel === "stylesheet")) {
+ return;
+ }
+ }
+ } else if (document.querySelector(`link[href="${dep}"]${cssSelector}`)) {
+ return;
+ }
+ const link = document.createElement("link");
+ link.rel = isCss ? "stylesheet" : scriptRel;
+ if (!isCss) {
+ link.as = "script";
+ link.crossOrigin = "";
+ }
+ link.href = dep;
+ if (cspNonce) {
+ link.setAttribute("nonce", cspNonce);
+ }
+ document.head.appendChild(link);
+ if (isCss) {
+ return new Promise((res, rej) => {
+ link.addEventListener("load", res);
+ link.addEventListener(
+ "error",
+ () => rej(new Error(`Unable to preload CSS for ${dep}`))
+ );
+ });
+ }
+ })
+ );
+ }
+ return promise.then(() => baseModule()).catch((err) => {
+ const e = new Event("vite:preloadError", { cancelable: true });
+ e.payload = err;
+ window.dispatchEvent(e);
+ if (!e.defaultPrevented) {
+ throw err;
+ }
+ });
+ };
+ async function main() {
+ const mod = await __vitePreload(() => import("./assets/dep-BSaPgEGk.mjs"), true ? [] : void 0);
+ console.log(mod);
+ }
+ export {
+ main
+ };
+
❯ packages/vite/src/node/__tests__/build.spec.ts:658:57
|
Test unit:
packages/vite/src/node/__tests__/build.spec.ts#L678
AssertionError: expected 'const scriptRel = "modulepreload";\nc…' not to contain 'preload'
- Expected
+ Received
- preload
+ const scriptRel = "modulepreload";
+ const assetsURL = function(dep) {
+ return "/" + dep;
+ };
+ const seen = {};
+ const __vitePreload = function preload(baseModule, deps, importerUrl) {
+ let promise = Promise.resolve();
+ if (deps && deps.length > 0) {
+ const links = document.getElementsByTagName("link");
+ const cspNonceMeta = document.querySelector(
+ "meta[property=csp-nonce]"
+ );
+ const cspNonce = (cspNonceMeta == null ? void 0 : cspNonceMeta.nonce) || (cspNonceMeta == null ? void 0 : cspNonceMeta.getAttribute("nonce"));
+ promise = Promise.all(
+ deps.map((dep) => {
+ dep = assetsURL(dep);
+ if (dep in seen)
+ return;
+ seen[dep] = true;
+ const isCss = dep.endsWith(".css");
+ const cssSelector = isCss ? '[rel="stylesheet"]' : "";
+ const isBaseRelative = !!importerUrl;
+ if (isBaseRelative) {
+ for (let i = links.length - 1; i >= 0; i--) {
+ const link2 = links[i];
+ if (link2.href === dep && (!isCss || link2.rel === "stylesheet")) {
+ return;
+ }
+ }
+ } else if (document.querySelector(`link[href="${dep}"]${cssSelector}`)) {
+ return;
+ }
+ const link = document.createElement("link");
+ link.rel = isCss ? "stylesheet" : scriptRel;
+ if (!isCss) {
+ link.as = "script";
+ link.crossOrigin = "";
+ }
+ link.href = dep;
+ if (cspNonce) {
+ link.setAttribute("nonce", cspNonce);
+ }
+ document.head.appendChild(link);
+ if (isCss) {
+ return new Promise((res, rej) => {
+ link.addEventListener("load", res);
+ link.addEventListener(
+ "error",
+ () => rej(new Error(`Unable to preload CSS for ${dep}`))
+ );
+ });
+ }
+ })
+ );
+ }
+ return promise.then(() => baseModule()).catch((err) => {
+ const e = new Event("vite:preloadError", { cancelable: true });
+ e.payload = err;
+ window.dispatchEvent(e);
+ if (!e.defaultPrevented) {
+ throw err;
+ }
+ });
+ };
+ async function main() {
+ const mod = await __vitePreload(() => import("./assets/dep-BSaPgEGk.mjs"), true ? [] : void 0);
+ console.log(mod);
+ }
+ export {
+ main
+ };
+
❯ packages/vite/src/node/__tests__/build.spec.ts:678:57
|
Test unit
Process completed with exit code 1.
|
The logs for this run have expired and are no longer available.
Loading