test: improve logic

This commit is contained in:
alexander.akait 2023-05-24 08:18:26 +03:00
parent a49a5eaa51
commit aa27e75e6a
7 changed files with 44 additions and 16 deletions

View File

@ -107,7 +107,10 @@ class ChunkPrefetchPreloadPlugin {
if (
chunksFetchPriorityMap[c.id] &&
prefetchOrder > chunksFetchPriorityMap[c.id].prefetchOrder
prefetchOrder &&
(chunksFetchPriorityMap[c.id].prefetchOrder === undefined ||
prefetchOrder >
chunksFetchPriorityMap[c.id].prefetchOrder)
) {
chunksFetchPriorityMap[c.id] = {
fetchPriority,
@ -116,7 +119,7 @@ class ChunkPrefetchPreloadPlugin {
} else if (!chunksFetchPriorityMap[c.id]) {
chunksFetchPriorityMap[c.id] = {
fetchPriority,
prefetchOrder: prefetchOrder || 0
prefetchOrder: prefetchOrder
};
}
});

View File

@ -0,0 +1,3 @@
export default function test() {
import("./d1");
}

View File

@ -0,0 +1,3 @@
export default function test() {
import("./d2");
}

View File

@ -0,0 +1,3 @@
export default function test() {
import(/* webpackFetchPriority: "high" */ "./d3");
}

View File

@ -0,0 +1 @@
export default "d3";

View File

@ -1,18 +1,28 @@
it("should set fetchPriority", () => {
import("./a");
expect(document.head._children).toHaveLength(3);
const script1 = document.head._children[1];
expect(script1._attributes.fetchpriority).toBe("low");
import("./b");
import(/* webpackFetchPriority: "high" */ "./a");
expect(document.head._children).toHaveLength(4);
const script2 = document.head._children[3];
const script1 = document.head._children[2];
expect(script1._attributes.fetchpriority).toBe("high");
import(/* webpackFetchPriority: "low" */ "./b");
expect(document.head._children).toHaveLength(5);
const script2 = document.head._children[4];
expect(script2._attributes.fetchpriority).toBe("low");
import( "./c");
expect(document.head._children).toHaveLength(5);
const script3 = document.head._children[4];
import(/* webpackFetchPriority: "low" */ "./c");
expect(document.head._children).toHaveLength(6);
const script3 = document.head._children[5];
expect(script3._attributes.fetchpriority).toBe("auto");
import(/* webpackPrefetch: 20, webpackFetchPriority: "auto" */ "./c");
import("./d")
expect(document.head._children).toHaveLength(7);
const script4 = document.head._children[6];
expect(script4._attributes.fetchpriority).toBeUndefined();
import(/* webpackPrefetch: -20 */ "./d3");
expect(document.head._children).toHaveLength(8);
const script5 = document.head._children[7];
expect(script5._attributes.fetchpriority).toBe("high");
});

View File

@ -12,10 +12,15 @@ module.exports = {
}
},
module: {
parser: {
javascript: {
dynamicImportFetchPriority: "low"
rules: [
{
test: /d\.js$/,
parser: {
javascript: {
dynamicImportFetchPriority: "low"
}
}
}
}
]
}
};