diff --git a/.github/externals-loading-webpack-plugin.instructions.md b/.github/externals-loading-webpack-plugin.instructions.md index 80354c2f47..693cf6e35a 100644 --- a/.github/externals-loading-webpack-plugin.instructions.md +++ b/.github/externals-loading-webpack-plugin.instructions.md @@ -3,3 +3,4 @@ applyTo: "packages/webpack/externals-loading-webpack-plugin/**" --- Keep `ExternalsLoadingPlugin` focused on consuming finalized `externals` maps and generating runtime loading code. Do not bake project-specific preset expansion or filesystem-backed dev serving into this low-level plugin; those concerns belong in higher-level Rsbuild integrations such as `pluginExternalBundle`. It is acceptable for this low-level plugin to resolve a relative `bundlePath` against the runtime `publicPath`, because that stays within generic bundler/runtime behavior instead of Rspeedy-specific URL inference. +When migrating this package's config-case tests to `@rspack/test-tools`, preserve the existing two-bundle coverage by using `test/configCases/**` with `test.config.js` files whose `findBundle()` returns both emitted entry bundles, typically `['main:main-thread.js', 'main:background.js']`, instead of collapsing coverage to a single bundle. diff --git a/.github/webpack-rstest-migration.instructions.md b/.github/webpack-rstest-migration.instructions.md index c7f88d44a9..f2d609bae0 100644 --- a/.github/webpack-rstest-migration.instructions.md +++ b/.github/webpack-rstest-migration.instructions.md @@ -3,6 +3,7 @@ applyTo: "packages/webpack/**/*" --- When migrating webpack package tests from Vitest to Rstest, define `setupFiles` in `rstest.config.ts` via `createRequire(import.meta.url).resolve(...)` instead of bare package subpaths to avoid module resolution issues. +When migrating webpack package config cases from `test/**/cases/**` to `test/**/configCases/**`, keep root ESLint ignores aligned so config-case fixtures continue to be treated like other harness-owned case files instead of suddenly failing generic `no-undef` and `import/no-unresolved` rules. For ESM case config files (`*.config.js` under package tests), prefer explicit ESM-safe imports (for example `../../../../lib/index.js`) and use `createRequire(import.meta.url)` plus `new URL('.', import.meta.url).pathname` when `require.resolve` or `__dirname` behavior is needed. If hot-snapshot cases report incomplete update steps after migration, run targeted snapshot refresh with `rstest -u` on the specific `HotSnapshot.test` filter before broad reruns. When shared `@lynx-js/test-tools` helpers are migrated to read test APIs from `globalThis`, keep `globals: true` in Vitest configs for still-Vitest suites that consume those helpers (for example webpack react/css-extract plugin suites). diff --git a/eslint.config.js b/eslint.config.js index c427d4c15d..4ac6efa2da 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -61,6 +61,7 @@ export default tseslint.config( 'packages/rspeedy/create-rspeedy/template-*/**', 'packages/i18n/**/tests/fixtures/**', 'packages/{rspeedy,webpack}/*/test/**/cases/**', + 'packages/{rspeedy,webpack}/*/test/**/configCases/**', 'packages/{rspeedy,webpack}/*/test/**/hotCases/**', 'packages/{rspeedy,webpack}/*/test/**/diagnostic/**', 'packages/{rspeedy,webpack}/*/test/**/fixtures/**', diff --git a/packages/webpack/externals-loading-webpack-plugin/package.json b/packages/webpack/externals-loading-webpack-plugin/package.json index 9231c159dd..a8c2307edd 100644 --- a/packages/webpack/externals-loading-webpack-plugin/package.json +++ b/packages/webpack/externals-loading-webpack-plugin/package.json @@ -36,9 +36,8 @@ "test": "rstest" }, "devDependencies": { - "@lynx-js/test-tools": "workspace:*", "@rspack/core": "catalog:rspack", - "@rspack/test-tools": "catalog:rspack", + "@rspack/test-tools": "1.7.9", "@rstest/core": "catalog:rstest", "bar": "./test/helpers/external-bundle-mock/bar", "baz": "./test/helpers/external-bundle-mock/baz", diff --git a/packages/webpack/externals-loading-webpack-plugin/rstest.config.ts b/packages/webpack/externals-loading-webpack-plugin/rstest.config.ts index 7e5965572f..b2572f60b3 100644 --- a/packages/webpack/externals-loading-webpack-plugin/rstest.config.ts +++ b/packages/webpack/externals-loading-webpack-plugin/rstest.config.ts @@ -2,9 +2,13 @@ // Licensed under the Apache License Version 2.0 that can be found in the // LICENSE file in the root directory of this source tree. import { createRequire } from 'node:module'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; import { defineConfig } from '@rstest/core'; +const __dirname = path.dirname(fileURLToPath(import.meta.url)); + const require = createRequire(import.meta.url); const config: Parameters[0] = { @@ -15,6 +19,10 @@ const config: Parameters[0] = { require.resolve('@rspack/test-tools/setup-expect'), require.resolve('./test/helpers/setup-env.js'), ], + env: { + __TEST_PATH__: path.resolve(__dirname), + __TEST_DIST_PATH__: path.resolve(__dirname, 'test', 'js'), + }, }; const rstestConfig: ReturnType = defineConfig(config); diff --git a/packages/webpack/externals-loading-webpack-plugin/test/cases.test.ts b/packages/webpack/externals-loading-webpack-plugin/test/cases.test.ts deleted file mode 100644 index e789dce66b..0000000000 --- a/packages/webpack/externals-loading-webpack-plugin/test/cases.test.ts +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2025 The Lynx Authors. All rights reserved. -// Licensed under the Apache License Version 2.0 that can be found in the -// LICENSE file in the root directory of this source tree. -import path from 'node:path'; - -import { describeCases } from '@lynx-js/test-tools'; - -describeCases({ - name: 'externals-loading', - casePath: path.join(__dirname, 'cases'), - beforeExecute: () => { - if (lynx[Symbol.for('__LYNX_EXTERNAL_GLOBAL__')]) { - delete lynx[Symbol.for('__LYNX_EXTERNAL_GLOBAL__')]; - } - }, -}); - -declare global { - var lynx: Record; -} diff --git a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/async/test.config.cjs b/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/async/test.config.cjs deleted file mode 100644 index 2fa53abe09..0000000000 --- a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/async/test.config.cjs +++ /dev/null @@ -1,7 +0,0 @@ -/** @type {import("@lynx-js/test-tools").TConfigCaseConfig} */ -module.exports = { - bundlePath: [ - 'main:main-thread.js', - 'main:background.js', - ], -}; diff --git a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/filter-duplicate-externals/test.config.cjs b/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/filter-duplicate-externals/test.config.cjs deleted file mode 100644 index 2fa53abe09..0000000000 --- a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/filter-duplicate-externals/test.config.cjs +++ /dev/null @@ -1,7 +0,0 @@ -/** @type {import("@lynx-js/test-tools").TConfigCaseConfig} */ -module.exports = { - bundlePath: [ - 'main:main-thread.js', - 'main:background.js', - ], -}; diff --git a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/globalObject-customize/test.config.cjs b/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/globalObject-customize/test.config.cjs deleted file mode 100644 index 2fa53abe09..0000000000 --- a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/globalObject-customize/test.config.cjs +++ /dev/null @@ -1,7 +0,0 @@ -/** @type {import("@lynx-js/test-tools").TConfigCaseConfig} */ -module.exports = { - bundlePath: [ - 'main:main-thread.js', - 'main:background.js', - ], -}; diff --git a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/merge-fetchBundle-calls/test.config.cjs b/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/merge-fetchBundle-calls/test.config.cjs deleted file mode 100644 index 2fa53abe09..0000000000 --- a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/merge-fetchBundle-calls/test.config.cjs +++ /dev/null @@ -1,7 +0,0 @@ -/** @type {import("@lynx-js/test-tools").TConfigCaseConfig} */ -module.exports = { - bundlePath: [ - 'main:main-thread.js', - 'main:background.js', - ], -}; diff --git a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/merge-loadscript-calls/test.config.cjs b/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/merge-loadscript-calls/test.config.cjs deleted file mode 100644 index 2fa53abe09..0000000000 --- a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/merge-loadscript-calls/test.config.cjs +++ /dev/null @@ -1,7 +0,0 @@ -/** @type {import("@lynx-js/test-tools").TConfigCaseConfig} */ -module.exports = { - bundlePath: [ - 'main:main-thread.js', - 'main:background.js', - ], -}; diff --git a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/not-overrides-existed-externals/test.config.cjs b/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/not-overrides-existed-externals/test.config.cjs deleted file mode 100644 index 2fa53abe09..0000000000 --- a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/not-overrides-existed-externals/test.config.cjs +++ /dev/null @@ -1,7 +0,0 @@ -/** @type {import("@lynx-js/test-tools").TConfigCaseConfig} */ -module.exports = { - bundlePath: [ - 'main:main-thread.js', - 'main:background.js', - ], -}; diff --git a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/only-background-externals/test.config.cjs b/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/only-background-externals/test.config.cjs deleted file mode 100644 index 2fa53abe09..0000000000 --- a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/only-background-externals/test.config.cjs +++ /dev/null @@ -1,7 +0,0 @@ -/** @type {import("@lynx-js/test-tools").TConfigCaseConfig} */ -module.exports = { - bundlePath: [ - 'main:main-thread.js', - 'main:background.js', - ], -}; diff --git a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/only-main-thread-externals/test.config.cjs b/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/only-main-thread-externals/test.config.cjs deleted file mode 100644 index 2fa53abe09..0000000000 --- a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/only-main-thread-externals/test.config.cjs +++ /dev/null @@ -1,7 +0,0 @@ -/** @type {import("@lynx-js/test-tools").TConfigCaseConfig} */ -module.exports = { - bundlePath: [ - 'main:main-thread.js', - 'main:background.js', - ], -}; diff --git a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/sync/test.config.cjs b/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/sync/test.config.cjs deleted file mode 100644 index 2fa53abe09..0000000000 --- a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/sync/test.config.cjs +++ /dev/null @@ -1,7 +0,0 @@ -/** @type {import("@lynx-js/test-tools").TConfigCaseConfig} */ -module.exports = { - bundlePath: [ - 'main:main-thread.js', - 'main:background.js', - ], -}; diff --git a/packages/webpack/externals-loading-webpack-plugin/test/config.test.ts b/packages/webpack/externals-loading-webpack-plugin/test/config.test.ts new file mode 100644 index 0000000000..c3d86bf038 --- /dev/null +++ b/packages/webpack/externals-loading-webpack-plugin/test/config.test.ts @@ -0,0 +1,12 @@ +// Copyright 2026 The Lynx Authors. All rights reserved. +// Licensed under the Apache License Version 2.0 that can be found in the +// LICENSE file in the root directory of this source tree. +import { fileURLToPath } from 'node:url'; + +import { createNormalCase, describeByWalk } from '@rspack/test-tools'; + +const __filename = fileURLToPath(import.meta.url); + +describeByWalk(__filename, (name, src, dist) => { + createNormalCase(name, src, dist); +}); diff --git a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/async/index.js b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/async/index.js similarity index 83% rename from packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/async/index.js rename to packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/async/index.js index 35a331d90f..6e0a0c56c7 100644 --- a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/async/index.js +++ b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/async/index.js @@ -1,3 +1,5 @@ +/// + import { add } from 'foo'; const consoleInfoMock = rstest.spyOn(console, 'info').mockImplementation(() => diff --git a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/async/rspack.config.js b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/async/rspack.config.js similarity index 100% rename from packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/async/rspack.config.js rename to packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/async/rspack.config.js diff --git a/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/async/test.config.js b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/async/test.config.js new file mode 100644 index 0000000000..a2d3121d90 --- /dev/null +++ b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/async/test.config.js @@ -0,0 +1,11 @@ +const externalsGlobalSymbol = Symbol.for('__LYNX_EXTERNAL_GLOBAL__'); + +export function beforeExecute() { + if (lynx[externalsGlobalSymbol]) { + delete lynx[externalsGlobalSymbol]; + } +} + +export function findBundle() { + return ['main:main-thread.js', 'main:background.js']; +} diff --git a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/filter-duplicate-externals/index.js b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/filter-duplicate-externals/index.js similarity index 93% rename from packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/filter-duplicate-externals/index.js rename to packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/filter-duplicate-externals/index.js index f87aace7aa..afd745f073 100644 --- a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/filter-duplicate-externals/index.js +++ b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/filter-duplicate-externals/index.js @@ -1,3 +1,5 @@ +/// + import x from 'foo'; import x2 from 'foo2'; diff --git a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/filter-duplicate-externals/rspack.config.js b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/filter-duplicate-externals/rspack.config.js similarity index 100% rename from packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/filter-duplicate-externals/rspack.config.js rename to packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/filter-duplicate-externals/rspack.config.js diff --git a/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/filter-duplicate-externals/test.config.js b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/filter-duplicate-externals/test.config.js new file mode 100644 index 0000000000..a2d3121d90 --- /dev/null +++ b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/filter-duplicate-externals/test.config.js @@ -0,0 +1,11 @@ +const externalsGlobalSymbol = Symbol.for('__LYNX_EXTERNAL_GLOBAL__'); + +export function beforeExecute() { + if (lynx[externalsGlobalSymbol]) { + delete lynx[externalsGlobalSymbol]; + } +} + +export function findBundle() { + return ['main:main-thread.js', 'main:background.js']; +} diff --git a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/globalObject-customize/index.js b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/globalObject-customize/index.js similarity index 92% rename from packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/globalObject-customize/index.js rename to packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/globalObject-customize/index.js index d97b3a9dfe..c834eb1fba 100644 --- a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/globalObject-customize/index.js +++ b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/globalObject-customize/index.js @@ -1,3 +1,5 @@ +/// + import x from 'foo'; console.info(x); diff --git a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/globalObject-customize/rspack.config.js b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/globalObject-customize/rspack.config.js similarity index 100% rename from packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/globalObject-customize/rspack.config.js rename to packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/globalObject-customize/rspack.config.js diff --git a/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/globalObject-customize/test.config.js b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/globalObject-customize/test.config.js new file mode 100644 index 0000000000..a2d3121d90 --- /dev/null +++ b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/globalObject-customize/test.config.js @@ -0,0 +1,11 @@ +const externalsGlobalSymbol = Symbol.for('__LYNX_EXTERNAL_GLOBAL__'); + +export function beforeExecute() { + if (lynx[externalsGlobalSymbol]) { + delete lynx[externalsGlobalSymbol]; + } +} + +export function findBundle() { + return ['main:main-thread.js', 'main:background.js']; +} diff --git a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/merge-fetchBundle-calls/index.js b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/merge-fetchBundle-calls/index.js similarity index 94% rename from packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/merge-fetchBundle-calls/index.js rename to packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/merge-fetchBundle-calls/index.js index dcb198e245..2085bfe1cb 100644 --- a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/merge-fetchBundle-calls/index.js +++ b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/merge-fetchBundle-calls/index.js @@ -1,3 +1,5 @@ +/// + import { add } from 'foo'; import { minus } from 'bar'; import { mul } from 'baz/sub1'; diff --git a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/merge-fetchBundle-calls/rspack.config.js b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/merge-fetchBundle-calls/rspack.config.js similarity index 100% rename from packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/merge-fetchBundle-calls/rspack.config.js rename to packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/merge-fetchBundle-calls/rspack.config.js diff --git a/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/merge-fetchBundle-calls/test.config.js b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/merge-fetchBundle-calls/test.config.js new file mode 100644 index 0000000000..a2d3121d90 --- /dev/null +++ b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/merge-fetchBundle-calls/test.config.js @@ -0,0 +1,11 @@ +const externalsGlobalSymbol = Symbol.for('__LYNX_EXTERNAL_GLOBAL__'); + +export function beforeExecute() { + if (lynx[externalsGlobalSymbol]) { + delete lynx[externalsGlobalSymbol]; + } +} + +export function findBundle() { + return ['main:main-thread.js', 'main:background.js']; +} diff --git a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/merge-loadscript-calls/index.js b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/merge-loadscript-calls/index.js similarity index 98% rename from packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/merge-loadscript-calls/index.js rename to packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/merge-loadscript-calls/index.js index 6e410e5ef3..44978dc219 100644 --- a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/merge-loadscript-calls/index.js +++ b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/merge-loadscript-calls/index.js @@ -1,3 +1,5 @@ +/// + import { a } from 'pkg-a'; import { b } from 'pkg-b'; import { c } from 'pkg-c'; diff --git a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/merge-loadscript-calls/rspack.config.js b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/merge-loadscript-calls/rspack.config.js similarity index 100% rename from packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/merge-loadscript-calls/rspack.config.js rename to packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/merge-loadscript-calls/rspack.config.js diff --git a/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/merge-loadscript-calls/test.config.js b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/merge-loadscript-calls/test.config.js new file mode 100644 index 0000000000..a2d3121d90 --- /dev/null +++ b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/merge-loadscript-calls/test.config.js @@ -0,0 +1,11 @@ +const externalsGlobalSymbol = Symbol.for('__LYNX_EXTERNAL_GLOBAL__'); + +export function beforeExecute() { + if (lynx[externalsGlobalSymbol]) { + delete lynx[externalsGlobalSymbol]; + } +} + +export function findBundle() { + return ['main:main-thread.js', 'main:background.js']; +} diff --git a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/not-overrides-existed-externals/index.js b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/not-overrides-existed-externals/index.js similarity index 93% rename from packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/not-overrides-existed-externals/index.js rename to packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/not-overrides-existed-externals/index.js index 4fb60cc69d..730dd4d847 100644 --- a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/not-overrides-existed-externals/index.js +++ b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/not-overrides-existed-externals/index.js @@ -1,3 +1,5 @@ +/// + import lodash from 'lodash'; import x from 'foo'; diff --git a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/not-overrides-existed-externals/rspack.config.js b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/not-overrides-existed-externals/rspack.config.js similarity index 100% rename from packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/not-overrides-existed-externals/rspack.config.js rename to packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/not-overrides-existed-externals/rspack.config.js diff --git a/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/not-overrides-existed-externals/test.config.js b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/not-overrides-existed-externals/test.config.js new file mode 100644 index 0000000000..a2d3121d90 --- /dev/null +++ b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/not-overrides-existed-externals/test.config.js @@ -0,0 +1,11 @@ +const externalsGlobalSymbol = Symbol.for('__LYNX_EXTERNAL_GLOBAL__'); + +export function beforeExecute() { + if (lynx[externalsGlobalSymbol]) { + delete lynx[externalsGlobalSymbol]; + } +} + +export function findBundle() { + return ['main:main-thread.js', 'main:background.js']; +} diff --git a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/only-background-externals/index.js b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/only-background-externals/index.js similarity index 92% rename from packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/only-background-externals/index.js rename to packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/only-background-externals/index.js index 18f7f9e9cc..ce44e793d5 100644 --- a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/only-background-externals/index.js +++ b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/only-background-externals/index.js @@ -1,3 +1,5 @@ +/// + import { add } from 'foo'; const consoleInfoMock = rstest.spyOn(console, 'info').mockImplementation(() => diff --git a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/only-background-externals/rspack.config.js b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/only-background-externals/rspack.config.js similarity index 100% rename from packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/only-background-externals/rspack.config.js rename to packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/only-background-externals/rspack.config.js diff --git a/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/only-background-externals/test.config.js b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/only-background-externals/test.config.js new file mode 100644 index 0000000000..a2d3121d90 --- /dev/null +++ b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/only-background-externals/test.config.js @@ -0,0 +1,11 @@ +const externalsGlobalSymbol = Symbol.for('__LYNX_EXTERNAL_GLOBAL__'); + +export function beforeExecute() { + if (lynx[externalsGlobalSymbol]) { + delete lynx[externalsGlobalSymbol]; + } +} + +export function findBundle() { + return ['main:main-thread.js', 'main:background.js']; +} diff --git a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/only-main-thread-externals/index.js b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/only-main-thread-externals/index.js similarity index 92% rename from packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/only-main-thread-externals/index.js rename to packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/only-main-thread-externals/index.js index 1fdbf9da2b..3fddfc7003 100644 --- a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/only-main-thread-externals/index.js +++ b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/only-main-thread-externals/index.js @@ -1,3 +1,5 @@ +/// + import { add } from 'foo'; const consoleInfoMock = rstest.spyOn(console, 'info').mockImplementation(() => diff --git a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/only-main-thread-externals/rspack.config.js b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/only-main-thread-externals/rspack.config.js similarity index 100% rename from packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/only-main-thread-externals/rspack.config.js rename to packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/only-main-thread-externals/rspack.config.js diff --git a/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/only-main-thread-externals/test.config.js b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/only-main-thread-externals/test.config.js new file mode 100644 index 0000000000..a2d3121d90 --- /dev/null +++ b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/only-main-thread-externals/test.config.js @@ -0,0 +1,11 @@ +const externalsGlobalSymbol = Symbol.for('__LYNX_EXTERNAL_GLOBAL__'); + +export function beforeExecute() { + if (lynx[externalsGlobalSymbol]) { + delete lynx[externalsGlobalSymbol]; + } +} + +export function findBundle() { + return ['main:main-thread.js', 'main:background.js']; +} diff --git a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/sync/index.js b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/sync/index.js similarity index 84% rename from packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/sync/index.js rename to packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/sync/index.js index a37dde3a29..bcaedfb32e 100644 --- a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/sync/index.js +++ b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/sync/index.js @@ -1,3 +1,5 @@ +/// + import { add } from '@lynx-js/foo'; const consoleInfoMock = rstest.spyOn(console, 'info').mockImplementation(() => diff --git a/packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/sync/rspack.config.js b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/sync/rspack.config.js similarity index 100% rename from packages/webpack/externals-loading-webpack-plugin/test/cases/externals-loading/sync/rspack.config.js rename to packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/sync/rspack.config.js diff --git a/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/sync/test.config.js b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/sync/test.config.js new file mode 100644 index 0000000000..a2d3121d90 --- /dev/null +++ b/packages/webpack/externals-loading-webpack-plugin/test/configCases/externals-loading/sync/test.config.js @@ -0,0 +1,11 @@ +const externalsGlobalSymbol = Symbol.for('__LYNX_EXTERNAL_GLOBAL__'); + +export function beforeExecute() { + if (lynx[externalsGlobalSymbol]) { + delete lynx[externalsGlobalSymbol]; + } +} + +export function findBundle() { + return ['main:main-thread.js', 'main:background.js']; +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ec60c5739c..f6a7ef8a16 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1805,15 +1805,12 @@ importers: packages/webpack/externals-loading-webpack-plugin: devDependencies: - '@lynx-js/test-tools': - specifier: workspace:* - version: link:../test-tools '@rspack/core': specifier: catalog:rspack version: 1.7.9(@swc/helpers@0.5.21) '@rspack/test-tools': - specifier: catalog:rspack - version: 1.5.6(@rspack/core@1.7.9(@swc/helpers@0.5.21)) + specifier: 1.7.9 + version: 1.7.9(patch_hash=a5d7fbe6cc7dd67734d2c853f52ed8099fdbaee9a311dd64b49a10acdfa929e2)(@rspack/core@1.7.9(@swc/helpers@0.5.21)) '@rstest/core': specifier: catalog:rstest version: 0.8.1(jsdom@27.4.0) @@ -13424,19 +13421,6 @@ snapshots: optionalDependencies: '@rsbuild/core': 1.7.5 - '@rsbuild/plugin-type-check@1.3.4(@rsbuild/core@1.7.5)(@rspack/core@1.7.9(@swc/helpers@0.5.21))(tslib@2.8.1)(typescript@5.9.3)': - dependencies: - deepmerge: 4.3.1 - json5: 2.2.3 - reduce-configs: 1.1.1 - ts-checker-rspack-plugin: 1.3.0(@rspack/core@1.7.9(@swc/helpers@0.5.21))(tslib@2.8.1)(typescript@5.9.3) - optionalDependencies: - '@rsbuild/core': 1.7.5 - transitivePeerDependencies: - - '@rspack/core' - - tslib - - typescript - '@rsbuild/plugin-type-check@1.3.4(@rsbuild/core@2.0.0-beta.3(@module-federation/runtime-tools@0.22.0)(core-js@3.48.0))(@rspack/core@1.7.9(@swc/helpers@0.5.21))(tslib@2.8.1)(typescript@5.9.3)': dependencies: deepmerge: 4.3.1