diff --git a/packages/rspack-test-tools/tests/cacheCases/invalidation/config-mode/file.js b/packages/rspack-test-tools/tests/cacheCases/invalidation/config-mode/file.js new file mode 100644 index 000000000000..1e5de9836a06 --- /dev/null +++ b/packages/rspack-test-tools/tests/cacheCases/invalidation/config-mode/file.js @@ -0,0 +1,7 @@ +export default 1; +--- +export default 2; +--- +export default 3; +--- +export default 4; diff --git a/packages/rspack-test-tools/tests/cacheCases/invalidation/config-mode/index.js b/packages/rspack-test-tools/tests/cacheCases/invalidation/config-mode/index.js new file mode 100644 index 000000000000..d3730e87207d --- /dev/null +++ b/packages/rspack-test-tools/tests/cacheCases/invalidation/config-mode/index.js @@ -0,0 +1,15 @@ +import value from "./file"; + +it("should invalidation using config.mode work", async () => { + if (COMPILER_INDEX == 0) { + expect(value).toBe(1); + await NEXT_HMR(); + expect(value).toBe(2); + await NEXT_START(); + } + if (COMPILER_INDEX == 1) { + expect(value).toBe(3); + await NEXT_HMR(); + expect(value).toBe(4); + } +}); diff --git a/packages/rspack-test-tools/tests/cacheCases/invalidation/config-mode/rspack.config.js b/packages/rspack-test-tools/tests/cacheCases/invalidation/config-mode/rspack.config.js new file mode 100644 index 000000000000..f80d01dba034 --- /dev/null +++ b/packages/rspack-test-tools/tests/cacheCases/invalidation/config-mode/rspack.config.js @@ -0,0 +1,30 @@ +const path = require("path"); + +let index = 1; + +/** @type {import("@rspack/core").Configuration} */ +module.exports = { + context: __dirname, + experiments: { + cache: { + type: "persistent", + snapshot: { + immutablePaths: [path.join(__dirname, "./file.js")] + } + } + }, + plugins: [ + { + apply(compiler) { + compiler.hooks.beforeCompile.tap("Test Plugin", function () { + if (index === 1) { + compiler.options.mode = "development"; + } else { + compiler.options.mode = "production"; + } + index++; + }); + } + } + ] +}; diff --git a/packages/rspack-test-tools/tests/cacheCases/invalidation/config-name/file.js b/packages/rspack-test-tools/tests/cacheCases/invalidation/config-name/file.js new file mode 100644 index 000000000000..1e5de9836a06 --- /dev/null +++ b/packages/rspack-test-tools/tests/cacheCases/invalidation/config-name/file.js @@ -0,0 +1,7 @@ +export default 1; +--- +export default 2; +--- +export default 3; +--- +export default 4; diff --git a/packages/rspack-test-tools/tests/cacheCases/invalidation/config-name/index.js b/packages/rspack-test-tools/tests/cacheCases/invalidation/config-name/index.js new file mode 100644 index 000000000000..145d8a0cfa25 --- /dev/null +++ b/packages/rspack-test-tools/tests/cacheCases/invalidation/config-name/index.js @@ -0,0 +1,15 @@ +import value from "./file"; + +it("should invalidation using config.name work", async () => { + if (COMPILER_INDEX == 0) { + expect(value).toBe(1); + await NEXT_HMR(); + expect(value).toBe(2); + await NEXT_START(); + } + if (COMPILER_INDEX == 1) { + expect(value).toBe(3); + await NEXT_HMR(); + expect(value).toBe(4); + } +}); diff --git a/packages/rspack-test-tools/tests/cacheCases/invalidation/config-name/rspack.config.js b/packages/rspack-test-tools/tests/cacheCases/invalidation/config-name/rspack.config.js new file mode 100644 index 000000000000..d569dfbfcffe --- /dev/null +++ b/packages/rspack-test-tools/tests/cacheCases/invalidation/config-name/rspack.config.js @@ -0,0 +1,26 @@ +const path = require("path"); + +let index = 1; + +/** @type {import("@rspack/core").Configuration} */ +module.exports = { + context: __dirname, + experiments: { + cache: { + type: "persistent", + snapshot: { + immutablePaths: [path.join(__dirname, "./file.js")] + } + } + }, + plugins: [ + { + apply(compiler) { + compiler.hooks.beforeCompile.tap("Test Plugin", function () { + compiler.options.name = String(index); + index++; + }); + } + } + ] +};