diff --git a/.github/workflows/prod-test.yml b/.github/workflows/prod-test.yml index ab3868021..386f20d27 100644 --- a/.github/workflows/prod-test.yml +++ b/.github/workflows/prod-test.yml @@ -112,7 +112,7 @@ jobs: if: ${{ matrix.node == '14' || matrix.node == '16' || matrix.node == '18' }} run: node ./scripts/prepare-test-for-legacy-nodejs.js --node-version ${{ matrix.node }} - - name: Install Dependencies(mutable) + - name: Install Dependencies (mutable) if: ${{ matrix.node == '14' || matrix.node == '16' || matrix.node == '18' }} run: yarn --no-immutable diff --git a/scripts/prepare-test-for-legacy-nodejs.js b/scripts/prepare-test-for-legacy-nodejs.js index ddabea576..7345fff3e 100644 --- a/scripts/prepare-test-for-legacy-nodejs.js +++ b/scripts/prepare-test-for-legacy-nodejs.js @@ -97,16 +97,29 @@ const jestLightRunnerVersion = ? "0.8.1" : undefined; +const resolutions = { ...packageJson.resolutions }; +const devDependencies = { ...packageJson.devDependencies }; if (jestVersion) { - packageJson.resolutions = { - ...packageJson.resolutions, - ...Object.fromEntries(jestDependencies.map((name) => [name, jestVersion])), - }; + Object.assign( + resolutions, + Object.fromEntries(jestDependencies.map((name) => [name, jestVersion])), + ); } if (jestLightRunnerVersion) { - packageJson.devDependencies["jest-light-runner"] = jestLightRunnerVersion; + devDependencies["jest-light-runner"] = jestLightRunnerVersion; + + if (nodeVersion === 18) { + Object.assign(resolutions, { + // Avoid different versions installed + "jest-snapshot": devDependencies.jest, + }); + } } -const content = JSON.stringify(packageJson, undefined, 2); +const content = JSON.stringify( + { ...packageJson, resolutions, devDependencies }, + undefined, + 2, +); fs.writeFileSync(packageJsonFile, content);