From 89fc3e6c0c78433605e8780f7e733e983879d3b0 Mon Sep 17 00:00:00 2001 From: Gonzalo Riestra Date: Tue, 7 Apr 2026 12:37:12 +0200 Subject: [PATCH 1/2] Install required tools on dev up --- dev.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/dev.yml b/dev.yml index 54fd242972c..9fae8e5435f 100644 --- a/dev.yml +++ b/dev.yml @@ -21,6 +21,14 @@ up: # Always fetch these on dev up met?: pnpm graphql-codegen:get-graphql-schemas meet: 'true' + - custom: + name: 'Install Playwright Chromium' + met?: cd packages/e2e && npx playwright install chromium + meet: 'true' + - custom: + name: 'Rebuild node-pty' + met?: pnpm rebuild node-pty + meet: 'true' env: SHOPIFY_CLI_ENV: development From ed6a0904d82638860df2d850464cd6713c2eda3c Mon Sep 17 00:00:00 2001 From: Gonzalo Riestra Date: Tue, 7 Apr 2026 12:37:26 +0200 Subject: [PATCH 2/2] Allow specifying a custom package manager via env var --- packages/e2e/setup/app.ts | 3 ++- packages/e2e/tests/app-deploy.spec.ts | 1 - packages/e2e/tests/app-dev-server.spec.ts | 1 - packages/e2e/tests/app-scaffold.spec.ts | 3 --- 4 files changed, 2 insertions(+), 6 deletions(-) diff --git a/packages/e2e/setup/app.ts b/packages/e2e/setup/app.ts index dbd3da4b995..0bb0cb3ed73 100644 --- a/packages/e2e/setup/app.ts +++ b/packages/e2e/setup/app.ts @@ -58,7 +58,8 @@ export const appScaffoldFixture = authFixture.extend<{appScaffold: AppScaffold}> async init(opts: AppInitOptions) { const name = opts.name ?? 'e2e-test-app' const template = opts.template ?? 'reactRouter' - const packageManager = opts.packageManager ?? 'npm' + const packageManager = + opts.packageManager ?? (process.env.E2E_PACKAGE_MANAGER as AppInitOptions['packageManager']) ?? 'npm' const args = [ '--name', diff --git a/packages/e2e/tests/app-deploy.spec.ts b/packages/e2e/tests/app-deploy.spec.ts index e2d9953da60..3d1dafd9c91 100644 --- a/packages/e2e/tests/app-deploy.spec.ts +++ b/packages/e2e/tests/app-deploy.spec.ts @@ -9,7 +9,6 @@ test.describe('App deploy', () => { // Step 1: Create an extension-only app (no scopes needed for deploy) const initResult = await appScaffold.init({ template: 'none', - packageManager: 'npm', }) expect(initResult.exitCode).toBe(0) diff --git a/packages/e2e/tests/app-dev-server.spec.ts b/packages/e2e/tests/app-dev-server.spec.ts index 38832a30dea..3335bba5a67 100644 --- a/packages/e2e/tests/app-dev-server.spec.ts +++ b/packages/e2e/tests/app-dev-server.spec.ts @@ -9,7 +9,6 @@ test.describe('App dev server', () => { // Step 1: Create an extension-only app (no scopes needed) const initResult = await appScaffold.init({ template: 'none', - packageManager: 'npm', }) expect(initResult.exitCode).toBe(0) diff --git a/packages/e2e/tests/app-scaffold.spec.ts b/packages/e2e/tests/app-scaffold.spec.ts index 0def4a7fe2b..13ecf0f4629 100644 --- a/packages/e2e/tests/app-scaffold.spec.ts +++ b/packages/e2e/tests/app-scaffold.spec.ts @@ -15,7 +15,6 @@ test.describe('App scaffold', () => { const initResult = await appScaffold.init({ template: 'reactRouter', flavor: 'javascript', - packageManager: 'npm', }) expect(initResult.exitCode).toBe(0) // Ink writes to stderr @@ -38,7 +37,6 @@ test.describe('App scaffold', () => { const initResult = await appScaffold.init({ name: 'e2e-ext-only', template: 'none', - packageManager: 'npm', }) expect(initResult.exitCode).toBe(0) expect(fs.existsSync(appScaffold.appDir)).toBe(true) @@ -54,7 +52,6 @@ test.describe('App scaffold', () => { await appScaffold.init({ template: 'reactRouter', flavor: 'javascript', - packageManager: 'npm', }) const extensionConfigs = [