From 07a27f44fbc994a0181d2cca7ee75846080c4bb3 Mon Sep 17 00:00:00 2001 From: Pavel Feldman Date: Thu, 17 Feb 2022 11:54:31 -0800 Subject: [PATCH] fix(npm6): resolve core relative to @ptw (#99) --- src/playwrightTest.ts | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/playwrightTest.ts b/src/playwrightTest.ts index b162631e4..364755a8e 100644 --- a/src/playwrightTest.ts +++ b/src/playwrightTest.ts @@ -65,13 +65,19 @@ export class PlaywrightTest { async getPlaywrightInfo(workspaceFolder: string, configFilePath: string): Promise<{ version: number, cli: string } | null> { try { - const output = await this._runNode([ + const pwtInfo = await this._runNode([ '-e', - 'try { const index = require.resolve("playwright-core"); const version = require("@playwright/test/package.json").version; console.log(JSON.stringify({ index, version})); } catch { console.log("undefined"); }', + 'try { const pwtIndex = require.resolve("@playwright/test"); const version = require("@playwright/test/package.json").version; console.log(JSON.stringify({ pwtIndex, version})); } catch { console.log("undefined"); }', ], path.dirname(configFilePath)); + const { pwtIndex, version } = JSON.parse(pwtInfo); - const { index, version } = JSON.parse(output); - let cli = path.resolve(index, '..', 'lib', 'cli', 'cli'); + // Resolve playwright-core relative to @playwright/test. + const coreInfo = await this._runNode([ + '-e', + 'try { const coreIndex = require.resolve("playwright-core"); console.log(JSON.stringify({ coreIndex })); } catch { console.log("undefined"); }', + ], path.dirname(pwtIndex)); + const { coreIndex } = JSON.parse(coreInfo); + let cli = path.resolve(coreIndex, '..', 'lib', 'cli', 'cli'); // Dogfood for 'ttest' if (cli.includes('packages/playwright-core') && configFilePath.includes('playwright-test'))