From 73e4172c95f2f1a4f37fbaa2fe629b111e446e1e Mon Sep 17 00:00:00 2001 From: Mohammed Abdul Sattar Date: Tue, 17 Mar 2026 13:58:47 -0400 Subject: [PATCH 1/2] fix: postinstall trying to install playwright --- .github/workflows/test.yml | 2 +- README.md | 8 +++++++- package.json | 1 - 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ff5d65be..bbc95955 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -37,6 +37,6 @@ jobs: fail-fast: false with: os: ${{ matrix.os }} - command: yarn test:nuts + command: npx playwright install --with-deps && yarn test:nuts retries: 5 secrets: inherit diff --git a/README.md b/README.md index bb7ec9ed..d5bad3f0 100644 --- a/README.md +++ b/README.md @@ -149,7 +149,13 @@ If a new org is required for NUTs tests, these are the steps to create and confi ## Running NUTs (integration tests) locally -NUTs (e2e integration tests) run the plugin against a real org and, for component-preview tests, a real browser (Playwright). To run them locally: +NUTs (e2e integration tests) run the plugin against a real org and, for component-preview tests, a real browser (Playwright). Playwright browsers are installed automatically on CI but must be installed manually for local runs: + +```bash +npx playwright install --with-deps +``` + +To run NUTs locally: 1. **Environment variables** Copy `.env.template` to `.env` and set the values for your Dev Hub org and test setup: diff --git a/package.json b/package.json index 0f65a0b8..f5b16d33 100644 --- a/package.json +++ b/package.json @@ -102,7 +102,6 @@ "link-check": "wireit", "link-lwr": "yarn link @lwrjs/api @lwrjs/app-service @lwrjs/asset-registry @lwrjs/asset-transformer @lwrjs/auth-middleware @lwrjs/base-view-provider @lwrjs/base-view-transformer @lwrjs/client-modules @lwrjs/config @lwrjs/core @lwrjs/dev-proxy-server @lwrjs/diagnostics @lwrjs/esbuild @lwrjs/everywhere @lwrjs/fs-asset-provider @lwrjs/fs-watch @lwrjs/html-view-provider @lwrjs/instrumentation @lwrjs/label-module-provider @lwrjs/lambda @lwrjs/legacy-npm-module-provider @lwrjs/loader @lwrjs/lwc-module-provider @lwrjs/lwc-ssr @lwrjs/markdown-view-provider @lwrjs/module-bundler @lwrjs/module-registry @lwrjs/npm-module-provider @lwrjs/nunjucks-view-provider @lwrjs/o11y @lwrjs/resource-registry @lwrjs/router @lwrjs/security @lwrjs/server @lwrjs/shared-utils @lwrjs/static @lwrjs/tools @lwrjs/types @lwrjs/view-registry lwr", "lint": "wireit", - "postinstall": "npx playwright install --with-deps", "postpack": "sf-clean --ignore-signing-artifacts", "prepack": "sf-prepack", "prepare": "sf-install", From c9f37663022b0fc2565b0ac94876b25e8ad61efe Mon Sep 17 00:00:00 2001 From: Mohammed Abdul Sattar Date: Tue, 17 Mar 2026 14:28:16 -0400 Subject: [PATCH 2/2] fix: move playwright install into NUT scripts for cross-platform support The previous approach of chaining commands with && in the CI workflow failed on Windows because GitHub Actions uses PowerShell which doesn't support &&. Moving the install into yarn scripts avoids this since yarn runs scripts through cmd.exe on Windows. Made-with: Cursor --- .github/workflows/test.yml | 2 +- package.json | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bbc95955..ff5d65be 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -37,6 +37,6 @@ jobs: fail-fast: false with: os: ${{ matrix.os }} - command: npx playwright install --with-deps && yarn test:nuts + command: yarn test:nuts retries: 5 secrets: inherit diff --git a/package.json b/package.json index f5b16d33..9aacd70f 100644 --- a/package.json +++ b/package.json @@ -106,9 +106,9 @@ "prepack": "sf-prepack", "prepare": "sf-install", "test": "wireit", - "test:nuts": "mocha \"**/*.nut.ts\" --slow 30000 --timeout 600000 --parallel=false", - "test:nuts:local": "node -r dotenv/config ./node_modules/.bin/nyc mocha \"**/*.nut.ts\" --slow 30000 --timeout 600000 --parallel=false", - "test:nut:local": "node -r dotenv/config ./node_modules/.bin/nyc mocha --slow 30000 --timeout 600000", + "test:nuts": "npx playwright install --with-deps && mocha \"**/*.nut.ts\" --slow 30000 --timeout 600000 --parallel=false", + "test:nuts:local": "npx playwright install --with-deps && node -r dotenv/config ./node_modules/.bin/nyc mocha \"**/*.nut.ts\" --slow 30000 --timeout 600000 --parallel=false", + "test:nut:local": "npx playwright install --with-deps && node -r dotenv/config ./node_modules/.bin/nyc mocha --slow 30000 --timeout 600000", "test:only": "wireit", "unlink-lwr": "yarn unlink @lwrjs/api @lwrjs/app-service @lwrjs/asset-registry @lwrjs/asset-transformer @lwrjs/auth-middleware @lwrjs/base-view-provider @lwrjs/base-view-transformer @lwrjs/client-modules @lwrjs/config @lwrjs/core @lwrjs/dev-proxy-server @lwrjs/diagnostics @lwrjs/esbuild @lwrjs/everywhere @lwrjs/fs-asset-provider @lwrjs/fs-watch @lwrjs/html-view-provider @lwrjs/instrumentation @lwrjs/label-module-provider @lwrjs/lambda @lwrjs/legacy-npm-module-provider @lwrjs/loader @lwrjs/lwc-module-provider @lwrjs/lwc-ssr @lwrjs/markdown-view-provider @lwrjs/module-bundler @lwrjs/module-registry @lwrjs/npm-module-provider @lwrjs/nunjucks-view-provider @lwrjs/o11y @lwrjs/resource-registry @lwrjs/router @lwrjs/security @lwrjs/server @lwrjs/shared-utils @lwrjs/static @lwrjs/tools @lwrjs/types @lwrjs/view-registry lwr", "update-snapshots": "node --loader ts-node/esm --no-warnings=ExperimentalWarning \"./bin/dev.js\" snapshot:generate",