From fc4192c45ebc87d90a5ffe466d4df5f8d94fcf36 Mon Sep 17 00:00:00 2001 From: yokos2 Date: Sat, 8 Feb 2025 09:11:14 +0800 Subject: [PATCH] fix(e2e): use pnpmOverrides (#1218) Fixes: https://github.com/dai-shi/waku/issues/1213 --------- Co-authored-by: daishi --- e2e/utils.ts | 49 +++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 45 insertions(+), 4 deletions(-) diff --git a/e2e/utils.ts b/e2e/utils.ts index 687d31a8..9fad665d 100644 --- a/e2e/utils.ts +++ b/e2e/utils.ts @@ -2,7 +2,13 @@ import net from 'node:net'; import { execSync, exec } from 'node:child_process'; import { createRequire } from 'node:module'; import { fileURLToPath } from 'node:url'; -import { cpSync, rmSync, mkdtempSync } from 'node:fs'; +import { + cpSync, + rmSync, + mkdtempSync, + readFileSync, + writeFileSync, +} from 'node:fs'; import { join } from 'node:path'; import { tmpdir } from 'node:os'; import type { ChildProcess } from 'node:child_process'; @@ -179,9 +185,44 @@ export const prepareStandaloneSetup = (fixtureName: string) => { const wakuPackageTgz = join(standaloneDir, `waku-${version}.tgz`); const installScript = PACKAGE_INSTALL[packageManager](wakuPackageTgz); execSync(installScript, { cwd: standaloneDir }); - execSync( - `npm install --force ${join(standaloneDir, `waku-${version}.tgz`)}`, - { cwd: standaloneDir }, + const pkg = JSON.parse( + readFileSync(join(standaloneDir, 'package.json'), 'utf-8'), + ); + const rootPkg = JSON.parse( + readFileSync( + fileURLToPath(new URL('../package.json', import.meta.url)), + 'utf-8', + ), + ); + const pnpmOverrides = rootPkg.pnpmOverrides; + if (pnpmOverrides !== null && typeof pnpmOverrides === 'object') { + switch (packageManager) { + case 'npm': { + pkg.overrides = { + ...pnpmOverrides, + }; + break; + } + case 'pnpm': { + pkg.pnpm = { + overrides: { + ...pnpmOverrides, + }, + }; + break; + } + case 'yarn': { + pkg.resolutions = { + ...pnpmOverrides, + }; + break; + } + } + } + writeFileSync( + join(standaloneDir, 'package.json'), + JSON.stringify(pkg, null, 2), + 'utf-8', ); } if (mode !== 'DEV' && !built) {