Skip to content

Commit 118e0c5

Browse files
authored
test: add comprehensive tests for NormalModuleReplacementPlugin (#20709)
1 parent 7bde8ab commit 118e0c5

10 files changed

Lines changed: 52 additions & 0 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = "original-a";
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = "FAIL: after-function.js should have been replaced";
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = "FAIL: after-relative.js should have been replaced";
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = "replaced-after-resolve";
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = "replaced-by-string";
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = "FAIL: before-function.js should have been replaced";
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = "FAIL: before-string.js should have been replaced";
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = "replaced-by-function";
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
"use strict";
2+
3+
it("should use NormalModuleReplacementPlugin for string replacement", function () {
4+
const result = require("./before-string.js");
5+
expect(result).toBe("replaced-by-string");
6+
});
7+
8+
it("should use NormalModuleReplacementPlugin for function replacement", function () {
9+
const result = require("./before-function.js");
10+
expect(result).toBe("replaced-by-function");
11+
});
12+
13+
it("should use NormalModuleReplacementPlugin for function replacement (afterResolve)", function () {
14+
const result = require("./after-function.js");
15+
expect(result).toBe("replaced-after-resolve");
16+
});
17+
18+
it("should use NormalModuleReplacementPlugin for relative path replacement (afterResolve)", function () {
19+
const result = require("./after-relative.js");
20+
expect(result).toBe("replaced-after-resolve");
21+
});
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
"use strict";
2+
3+
const path = require("path");
4+
const NormalModuleReplacementPlugin =
5+
require("../../../../").NormalModuleReplacementPlugin;
6+
7+
/** @type {import("../../../../").Configuration} */
8+
module.exports = {
9+
mode: "development",
10+
plugins: [
11+
new NormalModuleReplacementPlugin(/before-string\.js/, "./b.js"),
12+
new NormalModuleReplacementPlugin(/before-function\.js/, (result) => {
13+
result.request = "./c.js";
14+
}),
15+
new NormalModuleReplacementPlugin(/[/\\]after-function\.js$/, (result) => {
16+
if (result.createData && result.createData.resource) {
17+
const dir = path.dirname(result.createData.resource);
18+
result.createData.resource = path.join(dir, "after.js");
19+
}
20+
}),
21+
new NormalModuleReplacementPlugin(/[/\\]after-relative\.js$/, "./after.js")
22+
]
23+
};

0 commit comments

Comments
 (0)