@essential-apps/shopify-test-runner 1.0.28 → 1.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * runOfflineFullTests — full-stack offline orchestrator.
3
+ * runOfflineTests — full-stack offline orchestrator.
4
4
  *
5
5
  * Boots the entire offline stack in ONE Node process:
6
6
  *
@@ -13,14 +13,14 @@
13
13
  * reaches our Admin GraphQL mock
14
14
  * - Playwright as a child process, with mock URLs in env
15
15
  *
16
- * The Playwright fixture (`offlineFullTest`, orchestrated mode)
16
+ * The Playwright fixture (`offlineTest`, orchestrated mode)
17
17
  * reads the mock URLs from env and routes browser requests via
18
18
  * `page.route()`. Tests mutate ShopState via control-plane HTTP
19
19
  * endpoints exposed by the storefront mock (mounted under
20
20
  * `/__test__/state/*`).
21
21
  *
22
22
  * This is the offline counterpart to runTests.ts (online mode).
23
- * Online tests still go via runTests.ts; offline-full tests via this.
23
+ * Online tests still go via runTests.ts; offline tests via this.
24
24
  *
25
25
  * Env it sets in the spawned Remix backend:
26
26
  * SHOPIFY_API_SECRET = mock JWT secret (so JWTs validate)
@@ -100,7 +100,7 @@ function dropOrphanDatabases(prefix) {
100
100
  .filter((s) => s.length > 0);
101
101
  if (orphans.length === 0)
102
102
  return;
103
- console.log(`[runOfflineFull] cleanup: dropping ${orphans.length} orphan DB(s)…`);
103
+ console.log(`[runOfflineTests] cleanup: dropping ${orphans.length} orphan DB(s)…`);
104
104
  for (const name of orphans) {
105
105
  try {
106
106
  // `--force` (psql 13+) terminates any leftover connections
@@ -119,7 +119,7 @@ function dropOrphanDatabases(prefix) {
119
119
  catch (err) {
120
120
  // If psql isn't available at all we just skip cleanup; the
121
121
  // primary createdb below will fail loudly anyway.
122
- console.warn(`[runOfflineFull] orphan-DB cleanup failed: ${err.message}`);
122
+ console.warn(`[runOfflineTests] orphan-DB cleanup failed: ${err.message}`);
123
123
  }
124
124
  }
125
125
  /**
@@ -249,7 +249,7 @@ function ensureOfflineSetup() {
249
249
  hostsContent = readFileSync(hostsPath, 'utf8');
250
250
  }
251
251
  catch {
252
- console.warn(`[runOfflineFull] could not read ${hostsPath}; skipping /etc/hosts setup`);
252
+ console.warn(`[runOfflineTests] could not read ${hostsPath}; skipping /etc/hosts setup`);
253
253
  return;
254
254
  }
255
255
  const hostsToAdd = [];
@@ -276,10 +276,10 @@ function ensureOfflineSetup() {
276
276
  if (hostsToAdd.length > 0) {
277
277
  try {
278
278
  writeFileSync(hostsPath, hostsContent + '\n' + hostsToAdd.join('\n') + '\n');
279
- console.log(`[runOfflineFull] wrote ${hostsToAdd.length} /etc/hosts entries`);
279
+ console.log(`[runOfflineTests] wrote ${hostsToAdd.length} /etc/hosts entries`);
280
280
  }
281
281
  catch (err) {
282
- console.warn(`[runOfflineFull] could not write ${hostsPath}: ${err.message}. ` +
282
+ console.warn(`[runOfflineTests] could not write ${hostsPath}: ${err.message}. ` +
283
283
  `Browser may resolve Shopify hostnames to real Shopify on the internet.`);
284
284
  }
285
285
  }
@@ -299,12 +299,12 @@ function ensureOfflineSetup() {
299
299
  if (existing !== TEST_CA_CERT_PEM) {
300
300
  writeFileSync(systemCertDest, TEST_CA_CERT_PEM);
301
301
  execSync('update-ca-certificates >/dev/null 2>&1 || true', { stdio: 'ignore' });
302
- console.log('[runOfflineFull] installed edge CA into system trust store');
302
+ console.log('[runOfflineTests] installed edge CA into system trust store');
303
303
  }
304
304
  process.env['NODE_EXTRA_CA_CERTS'] = systemCertDest;
305
305
  }
306
306
  catch (err) {
307
- console.warn(`[runOfflineFull] could not install edge CA: ${err.message}. ` +
307
+ console.warn(`[runOfflineTests] could not install edge CA: ${err.message}. ` +
308
308
  `TLS connections to the edge may fail.`);
309
309
  }
310
310
  // Chrome / Chromium on Linux verifies certs against NSS DB
@@ -336,10 +336,10 @@ function ensureOfflineSetup() {
336
336
  execSync(`certutil -d sql:${nssDir} -D -n edge-ca >/dev/null 2>&1 || true`, { stdio: 'ignore' });
337
337
  execSync(`certutil -d sql:${nssDir} -A -t "C,," -n edge-ca -i ${tmpCaPath}`, { stdio: 'ignore' });
338
338
  unlinkSync(tmpCaPath);
339
- console.log('[runOfflineFull] installed edge CA into NSS DB (Chrome)');
339
+ console.log('[runOfflineTests] installed edge CA into NSS DB (Chrome)');
340
340
  }
341
341
  catch (err) {
342
- console.warn(`[runOfflineFull] could not install edge CA into NSS DB: ${err.message}. ` +
342
+ console.warn(`[runOfflineTests] could not install edge CA into NSS DB: ${err.message}. ` +
343
343
  `Chrome will reject the edge's cert. Verify libnss3-tools is installed in the image.`);
344
344
  }
345
345
  }
@@ -375,7 +375,7 @@ async function startOfflineDnsRedirect() {
375
375
  resolver = await startOfflineResolver({ upstream });
376
376
  }
377
377
  catch (err) {
378
- console.warn(`[runOfflineFull] offline DNS resolver failed to bind 127.0.0.1:53: ` +
378
+ console.warn(`[runOfflineTests] offline DNS resolver failed to bind 127.0.0.1:53: ` +
379
379
  `${err.message}. page.request may resolve Shopify ` +
380
380
  `hostnames to real Shopify on the internet.`);
381
381
  return null;
@@ -388,11 +388,11 @@ async function startOfflineDnsRedirect() {
388
388
  // function-runner binary) — that round-trip routinely exceeds 1s,
389
389
  // so an aggressive timeout would spuriously fail real lookups.
390
390
  writeFileSync('/etc/resolv.conf', 'nameserver 127.0.0.1\n');
391
- console.log('[runOfflineFull] offline DNS resolver on 127.0.0.1:53 ' +
391
+ console.log('[runOfflineTests] offline DNS resolver on 127.0.0.1:53 ' +
392
392
  `(Shopify → loopback${upstream ? `, else → ${upstream}` : ', else → SERVFAIL'})`);
393
393
  }
394
394
  catch (err) {
395
- console.warn(`[runOfflineFull] could not repoint /etc/resolv.conf: ` +
395
+ console.warn(`[runOfflineTests] could not repoint /etc/resolv.conf: ` +
396
396
  `${err.message}. c-ares clients may bypass the resolver.`);
397
397
  }
398
398
  return resolver;
@@ -482,7 +482,7 @@ function seedSession(env, shopDomain) {
482
482
  * - Supervisor (no `TEST_OFFLINE_SHARD_INDEX` set, N>1):
483
483
  * 1. Build cache check + build once (so shards don't race)
484
484
  * 2. Orphan-DB cleanup once
485
- * 3. Spawn N child processes (`node ... runOfflineFullTests.ts`)
485
+ * 3. Spawn N child processes (`node ... runOfflineTests.ts`)
486
486
  * each with `TEST_OFFLINE_SHARD_INDEX=k`, `TEST_OFFLINE_SKIP_BUILD=true`
487
487
  * 4. Stream child stdout/stderr prefixed with [shard k]
488
488
  * 5. Wait for all, exit with worst exit code
@@ -514,13 +514,13 @@ async function main() {
514
514
  // strategy or invasive Chromium/Node bypasses. We tried that path
515
515
  // (page.route() + host-resolver-rules + a Node socket-layer shim);
516
516
  // it worked but maintained ~400 lines of bypass code in parallel.
517
- // Use `npm run test:offline-full` from the consuming app — it
517
+ // Use `npm run test:offline` from the consuming app — it
518
518
  // routes through `runDockerOffline.ts` which spawns the
519
519
  // `essential-upsell-test:latest` image where TEST_IN_CONTAINER=true
520
520
  // is set by docker/entrypoint.sh.
521
521
  if (process.env['TEST_IN_CONTAINER'] !== 'true') {
522
- console.error('[runOfflineFull] FATAL: must run inside the offline container.\n' +
523
- ' Run: `npm run test:offline-full` (which invokes runDockerOffline.ts)\n' +
522
+ console.error('[runOfflineTests] FATAL: must run inside the offline container.\n' +
523
+ ' Run: `npm run test:offline` (which invokes runDockerOffline.ts)\n' +
524
524
  ' If you are seeing this from inside what should be a container, the\n' +
525
525
  " entrypoint script (tests/offline/docker/entrypoint.sh) didn't run or\n" +
526
526
  " didn't export TEST_IN_CONTAINER=true.");
@@ -565,15 +565,15 @@ async function main() {
565
565
  // schema, but we DO want SCOPES to match what the app expects.
566
566
  const scopes = process.env['SCOPES'] ?? 'write_products,read_products,write_discounts,read_discounts';
567
567
  const playwrightConfig = process.env['TEST_PLAYWRIGHT_CONFIG'] ??
568
- 'tests/offline/playwright.offline-full.config.ts';
568
+ 'tests/offline/playwright.offline.config.ts';
569
569
  const isChildShard = shardIndex !== null;
570
570
  // Backend port: shard k uses BASE + (k-1); single-worker uses BASE.
571
571
  const baseBackendPort = Number(process.env['TEST_OFFLINE_BACKEND_PORT'] ?? '8181');
572
572
  const backendPort = String(isChildShard ? baseBackendPort + (shardIndex - 1) : baseBackendPort);
573
573
  // Production Remix serves via plain HTTP (remix-serve has no TLS).
574
- // Vite dev had self-signed HTTPS; offline-full uses HTTP. The mock
574
+ // Vite dev had self-signed HTTPS; offline uses HTTP. The mock
575
575
  // admin shell serves the iframe pointing here; mixed-content
576
- // warnings are silenced via Chrome flags in the offlineFullStack
576
+ // warnings are silenced via Chrome flags in the offlineStack
577
577
  // fixture.
578
578
  const backendUrl = `http://localhost:${backendPort}`;
579
579
  // Skip the build if TEST_OFFLINE_SKIP_BUILD=true and a recent build
@@ -586,14 +586,14 @@ async function main() {
586
586
  const dbName = `${dbPrefix}_${randomUUID().replace(/-/g, '_')}`;
587
587
  const dbConn = dbUrl(dbName);
588
588
  const preserveDb = process.env['TEST_PRESERVE_DB'] === 'true';
589
- console.log(`[runOfflineFull] Test DB: ${dbConn}`);
590
- console.log(`[runOfflineFull] Backend: ${backendUrl}`);
589
+ console.log(`[runOfflineTests] Test DB: ${dbConn}`);
590
+ console.log(`[runOfflineTests] Backend: ${backendUrl}`);
591
591
  // Drop orphan DBs from previous crashed runs. The supervisor
592
592
  // already did this once — children skip.
593
593
  if (!isChildShard) {
594
594
  dropOrphanDatabases(dbPrefix);
595
595
  }
596
- console.log('[runOfflineFull] createdb…');
596
+ console.log('[runOfflineTests] createdb…');
597
597
  execSync(`createdb -h ${PG_HOST} -p ${PG_PORT} ${dbName}`, { stdio: 'inherit' });
598
598
  // ── Mock servers (in-process, sharing one ShopState) ─────
599
599
  const state = new ShopState({
@@ -615,7 +615,7 @@ async function main() {
615
615
  if (process.env['TEST_OFFLINE_EXPLORE'] === 'true') {
616
616
  seedExploreProducts(state);
617
617
  }
618
- console.log('[runOfflineFull] booting mock servers…');
618
+ console.log('[runOfflineTests] booting mock servers…');
619
619
  // 127.0.0.1 binding is the safe default — orchestrator and child
620
620
  // both reach the mocks on loopback. Used to be subtly broken
621
621
  // because we ran Playwright via execSync (sync, blocks the event
@@ -642,7 +642,7 @@ async function main() {
642
642
  ? resolve(process.cwd(), process.env['TEST_OFFLINE_POST_PURCHASE_EXT'])
643
643
  : undefined;
644
644
  if (postPurchaseExtensionPath && !existsSync(postPurchaseExtensionPath)) {
645
- throw new Error(`[runOfflineFull] TEST_OFFLINE_POST_PURCHASE_EXT points at ${postPurchaseExtensionPath} but the file doesn't exist. ` +
645
+ throw new Error(`[runOfflineTests] TEST_OFFLINE_POST_PURCHASE_EXT points at ${postPurchaseExtensionPath} but the file doesn't exist. ` +
646
646
  `Build the extension first — the bundled .js must exist on disk before the test run.`);
647
647
  }
648
648
  // The orchestrator owns the DB lifecycle: we build the
@@ -672,7 +672,7 @@ async function main() {
672
672
  clientId: MOCK_CLIENT_ID,
673
673
  jwtSecret: DEFAULT_MOCK_JWT_SECRET,
674
674
  }), startOpts);
675
- console.log(`[runOfflineFull] mocks ready:\n` +
675
+ console.log(`[runOfflineTests] mocks ready:\n` +
676
676
  ` shell: ${adminShell.baseUrl}\n` +
677
677
  ` admin GQL: ${adminApi.baseUrl}\n` +
678
678
  ` storefront GQL: ${storefrontApi.baseUrl}\n` +
@@ -689,10 +689,10 @@ async function main() {
689
689
  for (const p of probes) {
690
690
  try {
691
691
  const r = await fetch(p.url, p.init);
692
- console.log(`[runOfflineFull] probe ${p.name}: ${r.status}`);
692
+ console.log(`[runOfflineTests] probe ${p.name}: ${r.status}`);
693
693
  }
694
694
  catch (e) {
695
- console.log(`[runOfflineFull] probe ${p.name}: FAILED ${e.message}`);
695
+ console.log(`[runOfflineTests] probe ${p.name}: FAILED ${e.message}`);
696
696
  }
697
697
  }
698
698
  // ── Edge proxy (HTTPS) ──────────────────────────────────────
@@ -736,14 +736,14 @@ async function main() {
736
736
  hostname: '0.0.0.0',
737
737
  port: 443,
738
738
  });
739
- console.log(`[runOfflineFull] edge proxy: ${edge.baseUrl}`);
739
+ console.log(`[runOfflineTests] edge proxy: ${edge.baseUrl}`);
740
740
  // ── Neon-local WS proxy (zero-app-touch) ──────────────────
741
741
  // Bridge the app's @neondatabase/serverless driver to THIS run's local
742
742
  // Postgres without the app changing its prisma client. The shim
743
743
  // (preloaded into the backend below) points neonConfig.wsProxy here;
744
744
  // the proxy reads the driver's `?address=` and forwards to Postgres.
745
745
  const neonProxy = await startNeonWsProxy({ targetHost: PG_HOST, targetPort: Number(PG_PORT) });
746
- console.log(`[runOfflineFull] neon ws-proxy: 127.0.0.1:${neonProxy.port} → Postgres ${PG_HOST}:${PG_PORT}`);
746
+ console.log(`[runOfflineTests] neon ws-proxy: 127.0.0.1:${neonProxy.port} → Postgres ${PG_HOST}:${PG_PORT}`);
747
747
  // ── Backend env ───────────────────────────────────────────
748
748
  const mswLoader = resolveMswLoaderPath();
749
749
  const neonShim = resolveNeonShimPath();
@@ -837,7 +837,7 @@ async function main() {
837
837
  ? { SHOPIFY_UPSELLS_ID: process.env['SHOPIFY_UPSELLS_ID'] }
838
838
  : {}),
839
839
  };
840
- console.log('[runOfflineFull] prisma migrate deploy…');
840
+ console.log('[runOfflineTests] prisma migrate deploy…');
841
841
  // Strip the MSW loader from NODE_OPTIONS for prisma's invocation.
842
842
  // MSW shouldn't intercept Postgres connections (it's HTTP-only),
843
843
  // but loading it from inside `npx prisma` triggers a silent
@@ -859,15 +859,15 @@ async function main() {
859
859
  // a no-op for apps that don't need it.
860
860
  const extraSchema = resolve(process.cwd(), 'tests/offline/offline-extra-schema.sql');
861
861
  if (existsSync(extraSchema)) {
862
- console.log('[runOfflineFull] applying extra schema (tests/offline/offline-extra-schema.sql)…');
862
+ console.log('[runOfflineTests] applying extra schema (tests/offline/offline-extra-schema.sql)…');
863
863
  execSync(`psql -h ${PG_HOST} -p ${PG_PORT} -d ${dbName} -v ON_ERROR_STOP=1 -f ${JSON.stringify(extraSchema)}`, { stdio: 'inherit', env: prismaEnv });
864
864
  }
865
- console.log('[runOfflineFull] seeding session row…');
865
+ console.log('[runOfflineTests] seeding session row…');
866
866
  try {
867
867
  seedSession(prismaEnv, DEFAULT_SHOP_DOMAIN);
868
868
  }
869
869
  catch (err) {
870
- console.warn(`[runOfflineFull] session seed failed (continuing): ${err.message}`);
870
+ console.warn(`[runOfflineTests] session seed failed (continuing): ${err.message}`);
871
871
  }
872
872
  // ── Backend (Vite) ────────────────────────────────────────
873
873
  let dev = null;
@@ -921,7 +921,7 @@ async function main() {
921
921
  * the conventional exit code (`128 + signal`).
922
922
  */
923
923
  const onSignal = (sig) => {
924
- console.log(`\n[runOfflineFull] received ${sig}, tearing down…`);
924
+ console.log(`\n[runOfflineTests] received ${sig}, tearing down…`);
925
925
  cleanup();
926
926
  // 128 + signal number is the POSIX convention.
927
927
  process.exit(sig === 'SIGINT' ? 130 : 143);
@@ -956,14 +956,14 @@ async function main() {
956
956
  const skipBuildBecauseExplicit = skipBuild;
957
957
  const skipBuildBecauseCache = cachedHash === currentBuildHash;
958
958
  if (skipBuildBecauseExplicit) {
959
- console.log('[runOfflineFull] skipping build (TEST_OFFLINE_SKIP_BUILD=true)');
959
+ console.log('[runOfflineTests] skipping build (TEST_OFFLINE_SKIP_BUILD=true)');
960
960
  }
961
961
  else if (skipBuildBecauseCache) {
962
- console.log(`[runOfflineFull] build cache HIT (${currentBuildHash.slice(0, 12)}) — skipping npm run build. ` +
962
+ console.log(`[runOfflineTests] build cache HIT (${currentBuildHash.slice(0, 12)}) — skipping npm run build. ` +
963
963
  `Force with TEST_OFFLINE_FORCE_BUILD=true.`);
964
964
  }
965
965
  else {
966
- console.log(`[runOfflineFull] build cache MISS — running npm run build. ` +
966
+ console.log(`[runOfflineTests] build cache MISS — running npm run build. ` +
967
967
  `(${cachedHash ? `was ${cachedHash.slice(0, 12)}, now ` : 'no cache, '}${currentBuildHash.slice(0, 12)})`);
968
968
  execSync('npm run build', {
969
969
  stdio: 'inherit',
@@ -973,7 +973,7 @@ async function main() {
973
973
  // crashed build leaves stale `build/` we shouldn't endorse.
974
974
  writeFileSync(buildCachePath, currentBuildHash);
975
975
  }
976
- console.log('[runOfflineFull] booting Remix prod server (remix-serve)…');
976
+ console.log('[runOfflineTests] booting Remix prod server (remix-serve)…');
977
977
  // Resolve remix-serve's CLI path directly — `npx remix-serve`
978
978
  // on some systems alters NODE_OPTIONS (it spawns a child via
979
979
  // npm-cli with PATH manipulation), which silently drops our
@@ -1008,9 +1008,9 @@ async function main() {
1008
1008
  stdio: ['inherit', 'inherit', 1],
1009
1009
  env: backendRuntimeEnv,
1010
1010
  });
1011
- console.log(`[runOfflineFull] waiting for backend at ${backendUrl}…`);
1011
+ console.log(`[runOfflineTests] waiting for backend at ${backendUrl}…`);
1012
1012
  await waitForReady(backendUrl, READY_TIMEOUT_MS);
1013
- console.log('[runOfflineFull] backend ready.');
1013
+ console.log('[runOfflineTests] backend ready.');
1014
1014
  // ── Pre-warm Remix routes ──────────────────────────────────
1015
1015
  // remix-serve lazy-compiles each route's loader/action module on
1016
1016
  // first authenticated request. The first /app navigation in a
@@ -1029,7 +1029,7 @@ async function main() {
1029
1029
  //
1030
1030
  // Failures are non-fatal — the next real test request will
1031
1031
  // surface a clearer error than "warm-up failed".
1032
- console.log('[runOfflineFull] pre-warming hot Remix routes…');
1032
+ console.log('[runOfflineTests] pre-warming hot Remix routes…');
1033
1033
  const warmupToken = await mintIdToken({
1034
1034
  shop: DEFAULT_SHOP_DOMAIN,
1035
1035
  clientId: MOCK_CLIENT_ID,
@@ -1060,7 +1060,7 @@ async function main() {
1060
1060
  authorization: `Bearer ${warmupToken}`,
1061
1061
  // shopify-app-remix's `isbot` check returns 410 for
1062
1062
  // Node's default User-Agent. Match the same UA the
1063
- // browser context uses in tests (see offlineFullStack
1063
+ // browser context uses in tests (see offlineStack
1064
1064
  // fixture) so the request reaches the loader.
1065
1065
  'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 ' +
1066
1066
  '(KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36',
@@ -1079,7 +1079,7 @@ async function main() {
1079
1079
  return { path, error: err.message, ms: Date.now() - tStart };
1080
1080
  }
1081
1081
  }));
1082
- console.log(`[runOfflineFull] route pre-warm done (${Date.now() - t0}ms):`);
1082
+ console.log(`[runOfflineTests] route pre-warm done (${Date.now() - t0}ms):`);
1083
1083
  for (const r of warmupResults) {
1084
1084
  const status = 'error' in r ? `ERR ${r.error}` : `${r.status}${r.location ? ` → ${r.location}` : ''}`;
1085
1085
  console.log(` ${r.ms}ms ${status} ${r.path.split('?')[0]}`);
@@ -1103,7 +1103,7 @@ async function main() {
1103
1103
  if (process.env['TEST_OFFLINE_EXPLORE'] === 'true') {
1104
1104
  const adminUrl = process.env['TEST_OFFLINE_EXPLORE_URL'] ??
1105
1105
  `https://admin.shopify.com/store/test/apps/${DEFAULT_APP_HANDLE}/app`;
1106
- console.log('[runOfflineFull] explore mode — launching Chrome at:');
1106
+ console.log('[runOfflineTests] explore mode — launching Chrome at:');
1107
1107
  console.log(` ${adminUrl}`);
1108
1108
  console.log('');
1109
1109
  console.log(' Useful URLs you can navigate to (all routed via the edge proxy):');
@@ -1205,7 +1205,7 @@ async function main() {
1205
1205
  await sfPage.goto(storefrontUrl, { waitUntil: 'domcontentloaded' });
1206
1206
  }
1207
1207
  catch (err) {
1208
- console.error(`[runOfflineFull] explore: storefront tab failed to load (${err.message}) — continuing`);
1208
+ console.error(`[runOfflineTests] explore: storefront tab failed to load (${err.message}) — continuing`);
1209
1209
  }
1210
1210
  // Leave the admin tab focused as the active one.
1211
1211
  await explorePage.bringToFront().catch(() => { });
@@ -1227,7 +1227,7 @@ async function main() {
1227
1227
  return;
1228
1228
  }
1229
1229
  // ── Playwright ─────────────────────────────────────────
1230
- console.log('[runOfflineFull] running Playwright…');
1230
+ console.log('[runOfflineTests] running Playwright…');
1231
1231
  // Headed-under-Xvfb is the DEFAULT for offline runs (production-
1232
1232
  // faithful, ~4% slower than headless). Opt OUT with
1233
1233
  // TEST_OFFLINE_HEADLESS=true. Full-screen recording (TEST_OFFLINE_VIDEO)
@@ -1252,7 +1252,7 @@ async function main() {
1252
1252
  hasFfmpeg = false;
1253
1253
  }
1254
1254
  if (!hasFfmpeg) {
1255
- console.error('[runOfflineFull] TEST_OFFLINE_VIDEO set but `ffmpeg` is missing from the ' +
1255
+ console.error('[runOfflineTests] TEST_OFFLINE_VIDEO set but `ffmpeg` is missing from the ' +
1256
1256
  'VM image — rebuild it (it predates video support): ' +
1257
1257
  '`container image rm essential-apps/shopify-test-vm:latest` then re-run. ' +
1258
1258
  'Continuing headed WITHOUT recording.');
@@ -1273,14 +1273,14 @@ async function main() {
1273
1273
  }
1274
1274
  headedReady = existsSync('/tmp/.X11-unix/X99');
1275
1275
  if (!headedReady) {
1276
- console.error('[runOfflineFull] WARNING: Xvfb :99 did not start — falling back to headless');
1276
+ console.error('[runOfflineTests] WARNING: Xvfb :99 did not start — falling back to headless');
1277
1277
  videoOn = false;
1278
1278
  headedOn = false;
1279
1279
  process.env['TEST_OFFLINE_VIDEO'] = 'false';
1280
1280
  process.env['TEST_OFFLINE_HEADED'] = 'false';
1281
1281
  }
1282
1282
  else {
1283
- console.error(`[runOfflineFull] headed under Xvfb :99 (${videoOn ? 'recording' : 'no recording'})`);
1283
+ console.error(`[runOfflineTests] headed under Xvfb :99 (${videoOn ? 'recording' : 'no recording'})`);
1284
1284
  }
1285
1285
  }
1286
1286
  const playwrightEnv = {
@@ -1355,7 +1355,7 @@ async function main() {
1355
1355
  // a file path, `--repeat-each`, etc. The docker runner already
1356
1356
  // forwards user args verbatim into this script's argv; we just
1357
1357
  // pass them through to playwright so single-test iteration is
1358
- // possible (`npm run test:offline-full -- --grep "PDP form"`).
1358
+ // possible (`npm run test:offline -- --grep "PDP form"`).
1359
1359
  // Skip our own known flags (currently none after the launcher
1360
1360
  // strips them — process.argv[0] is `node`, argv[1] is this
1361
1361
  // script).
@@ -1379,10 +1379,10 @@ async function main() {
1379
1379
  exitCode = 0;
1380
1380
  }
1381
1381
  catch (err) {
1382
- console.error(`[runOfflineFull] failed: ${err.message}`);
1382
+ console.error(`[runOfflineTests] failed: ${err.message}`);
1383
1383
  }
1384
1384
  finally {
1385
- console.log('[runOfflineFull] tearing down…');
1385
+ console.log('[runOfflineTests] tearing down…');
1386
1386
  // `cleanup()` kills the backend AND drops the DB (with
1387
1387
  // preserveDb honored). It's the same function the signal
1388
1388
  // handlers call, so the teardown path is identical whether
@@ -1400,7 +1400,7 @@ async function main() {
1400
1400
  partnerApi.close(),
1401
1401
  ]);
1402
1402
  if (preserveDb) {
1403
- console.log(`[runOfflineFull] DB preserved: ${dbName}`);
1403
+ console.log(`[runOfflineTests] DB preserved: ${dbName}`);
1404
1404
  }
1405
1405
  }
1406
1406
  process.exit(exitCode);
@@ -1427,23 +1427,23 @@ function loadExtensions() {
1427
1427
  parsed = JSON.parse(raw);
1428
1428
  }
1429
1429
  catch (err) {
1430
- throw new Error(`[runOfflineFull] TEST_OFFLINE_EXTENSIONS_JSON is not valid JSON: ${err.message}`);
1430
+ throw new Error(`[runOfflineTests] TEST_OFFLINE_EXTENSIONS_JSON is not valid JSON: ${err.message}`);
1431
1431
  }
1432
1432
  if (!Array.isArray(parsed)) {
1433
- throw new Error(`[runOfflineFull] TEST_OFFLINE_EXTENSIONS_JSON must be a JSON array; got ${typeof parsed}`);
1433
+ throw new Error(`[runOfflineTests] TEST_OFFLINE_EXTENSIONS_JSON must be a JSON array; got ${typeof parsed}`);
1434
1434
  }
1435
1435
  const out = [];
1436
1436
  for (const entry of parsed) {
1437
1437
  if (typeof entry !== 'object' || entry === null) {
1438
- throw new Error(`[runOfflineFull] extension entry must be an object: ${JSON.stringify(entry)}`);
1438
+ throw new Error(`[runOfflineTests] extension entry must be an object: ${JSON.stringify(entry)}`);
1439
1439
  }
1440
1440
  const e = entry;
1441
1441
  if (typeof e.name !== 'string' || typeof e.rootDir !== 'string') {
1442
- throw new Error(`[runOfflineFull] each extension needs { name: string, rootDir: string }; got ${JSON.stringify(entry)}`);
1442
+ throw new Error(`[runOfflineTests] each extension needs { name: string, rootDir: string }; got ${JSON.stringify(entry)}`);
1443
1443
  }
1444
1444
  const rootDir = resolve(process.cwd(), e.rootDir);
1445
1445
  if (!existsSync(rootDir)) {
1446
- throw new Error(`[runOfflineFull] extension rootDir does not exist: ${rootDir}`);
1446
+ throw new Error(`[runOfflineTests] extension rootDir does not exist: ${rootDir}`);
1447
1447
  }
1448
1448
  out.push({
1449
1449
  name: e.name,
@@ -1452,7 +1452,7 @@ function loadExtensions() {
1452
1452
  });
1453
1453
  }
1454
1454
  if (out.length > 0) {
1455
- console.log(`[runOfflineFull] loaded ${out.length} extension(s): ${out.map((e) => `${e.name}=${e.rootDir}`).join(', ')}`);
1455
+ console.log(`[runOfflineTests] loaded ${out.length} extension(s): ${out.map((e) => `${e.name}=${e.rootDir}`).join(', ')}`);
1456
1456
  }
1457
1457
  return out;
1458
1458
  }
@@ -1564,7 +1564,7 @@ function seedExploreProducts(state) {
1564
1564
  state.addCollection({ handle: 'frontpage', title: 'Home page', productHandles: handles });
1565
1565
  }
1566
1566
  async function runSupervisor(workers) {
1567
- console.log(`[runOfflineFull] supervisor: spawning ${workers} shard(s)…`);
1567
+ console.log(`[runOfflineTests] supervisor: spawning ${workers} shard(s)…`);
1568
1568
  // Pre-build: each child would otherwise duplicate the build (or
1569
1569
  // race on the cache). Build here once, then pass SKIP_BUILD=true
1570
1570
  // to children. The build cache check still runs (cheap), so this
@@ -1576,10 +1576,10 @@ async function runSupervisor(workers) {
1576
1576
  ? readFileSync(buildCachePath, 'utf8').trim()
1577
1577
  : null;
1578
1578
  if (cachedHash === currentBuildHash) {
1579
- console.log(`[runOfflineFull] supervisor: build cache HIT (${currentBuildHash.slice(0, 12)})`);
1579
+ console.log(`[runOfflineTests] supervisor: build cache HIT (${currentBuildHash.slice(0, 12)})`);
1580
1580
  }
1581
1581
  else {
1582
- console.log(`[runOfflineFull] supervisor: build cache MISS — running npm run build…`);
1582
+ console.log(`[runOfflineTests] supervisor: build cache MISS — running npm run build…`);
1583
1583
  execSync('npm run build', {
1584
1584
  stdio: 'inherit',
1585
1585
  // `TEST_OFFLINE=true` switches the consuming app's
@@ -1612,7 +1612,7 @@ async function runSupervisor(workers) {
1612
1612
  };
1613
1613
  children.push(new Promise((resolveChild, rejectChild) => {
1614
1614
  // Re-exec ourselves through `node --import tsx` so TS still
1615
- // parses. argv[1] points at the user's `runOfflineFullTests.ts`
1615
+ // parses. argv[1] points at the user's `runOfflineTests.ts`
1616
1616
  // by the time we're invoked from the consuming app's
1617
1617
  // npm script.
1618
1618
  const proc = spawn(process.execPath, ['--import', 'tsx', childScript], { stdio: 'inherit', env: childEnv });
@@ -1622,11 +1622,11 @@ async function runSupervisor(workers) {
1622
1622
  }
1623
1623
  const exitCodes = await Promise.all(children);
1624
1624
  const worst = exitCodes.reduce((a, b) => Math.max(a, b), 0);
1625
- console.log(`[runOfflineFull] supervisor: shard exit codes [${exitCodes.join(', ')}]; overall=${worst}`);
1625
+ console.log(`[runOfflineTests] supervisor: shard exit codes [${exitCodes.join(', ')}]; overall=${worst}`);
1626
1626
  return worst;
1627
1627
  }
1628
1628
  main().catch((err) => {
1629
1629
  console.error(err);
1630
1630
  process.exit(1);
1631
1631
  });
1632
- //# sourceMappingURL=runOfflineFullTests.js.map
1632
+ //# sourceMappingURL=runOfflineTests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runOfflineTests.js","sourceRoot":"","sources":["../../src/scripts/runOfflineTests.ts"],"names":[],"mappings":"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"}
@@ -142,7 +142,7 @@ async function main() {
142
142
  // from .env.test only.
143
143
  const backendEnv = {
144
144
  PATH: process.env['PATH'] ?? '',
145
- // See runOfflineFullTests.ts for the long-form note — empty HOME
145
+ // See runOfflineTests.ts for the long-form note — empty HOME
146
146
  // makes npm write its cache to literal `~/.npm` in cwd.
147
147
  HOME: process.env['HOME'] || '/root',
148
148
  USER: process.env['USER'] ?? '',