@essential-apps/shopify-test-runner 1.0.2 → 1.0.3

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.
@@ -0,0 +1,25 @@
1
+ /** Default DNS suffixes that must resolve to the in-guest edge proxy. */
2
+ export declare const DEFAULT_OFFLINE_SUFFIXES: string[];
3
+ export interface OfflineResolver {
4
+ /** Bound UDP port (53 unless overridden). */
5
+ port: number;
6
+ /** Stop the resolver. */
7
+ close: () => void;
8
+ }
9
+ export interface StartOfflineResolverOptions {
10
+ /** Suffixes to pin to loopback. Defaults to DEFAULT_OFFLINE_SUFFIXES. */
11
+ suffixes?: string[];
12
+ /** Upstream nameserver IP for non-matching queries (optional). */
13
+ upstream?: string | null;
14
+ /** Bind port. Defaults to 53. */
15
+ port?: number;
16
+ /** Bind host. Defaults to 127.0.0.1. */
17
+ host?: string;
18
+ }
19
+ /**
20
+ * Start the resolver. Binding failures (port in use, EACCES) are
21
+ * surfaced via the rejected promise so the caller can degrade
22
+ * gracefully (the `/etc/hosts` cover still applies to getaddrinfo).
23
+ */
24
+ export declare function startOfflineResolver(opts?: StartOfflineResolverOptions): Promise<OfflineResolver>;
25
+ //# sourceMappingURL=offlineResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offlineResolver.d.ts","sourceRoot":"","sources":["../../src/edge/offlineResolver.ts"],"names":[],"mappings":"AAkCA,yEAAyE;AACzE,eAAO,MAAM,wBAAwB,UAOpC,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,2BAA2B;IAC1C,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AA+ED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,GAAE,2BAAgC,GACrC,OAAO,CAAC,eAAe,CAAC,CAwE1B"}
@@ -0,0 +1,198 @@
1
+ /**
2
+ * Offline catch-all DNS resolver.
3
+ *
4
+ * The offline full-stack harness routes Shopify hostnames to the
5
+ * in-guest edge proxy. The browser honours `/etc/hosts` (via glibc
6
+ * `getaddrinfo`), but Playwright's `page.request` / any client that
7
+ * resolves through c-ares (`dns.resolve`, which skips `/etc/hosts`
8
+ * and talks to the nameservers in `/etc/resolv.conf` directly) does
9
+ * NOT — so those requests leak to real Shopify on the public internet
10
+ * and come back with misleading responses (e.g. a real 422
11
+ * "Cannot find variant" for a variant that only exists in the mock).
12
+ *
13
+ * Under supermachine's TSI networking a connection to a real IP is
14
+ * relayed out through the host, but a connection to loopback stays
15
+ * inside the guest. So the fix is purely at the *resolution* layer:
16
+ * guarantee that every Shopify hostname resolves to loopback for
17
+ * EVERY client, not just the ones that read `/etc/hosts`.
18
+ *
19
+ * This module is a tiny authoritative-ish UDP resolver (zero deps,
20
+ * `node:dgram` only):
21
+ * - `A` for a Shopify-shaped name → 127.0.0.1 (→ edge proxy)
22
+ * - `AAAA` for a Shopify-shaped name → NODATA (forces the
23
+ * client to fall back to the IPv4 answer; the edge binds IPv4
24
+ * only, so we must NOT hand out an AAAA that points nowhere)
25
+ * - anything else → forwarded to the original
26
+ * upstream nameserver captured before `/etc/resolv.conf` was
27
+ * repointed at us (keeps unrelated lookups working).
28
+ *
29
+ * Pair this with `/etc/resolv.conf` → `nameserver 127.0.0.1` so the
30
+ * c-ares path lands here. `/etc/hosts` stays in place as a
31
+ * belt-and-suspenders cover for the `getaddrinfo` path.
32
+ */
33
+ import dgram from 'node:dgram';
34
+ /** Default DNS suffixes that must resolve to the in-guest edge proxy. */
35
+ export const DEFAULT_OFFLINE_SUFFIXES = [
36
+ 'myshopify.com',
37
+ 'shopify.com',
38
+ 'shopifycdn.com',
39
+ 'shopifycloud.com',
40
+ 'shopifysvc.com',
41
+ 'shopifyapps.com',
42
+ ];
43
+ const QTYPE_A = 1;
44
+ const QTYPE_AAAA = 28;
45
+ /** Read the QNAME (dotted, lowercase) + QTYPE from a DNS query. */
46
+ function parseQuestion(msg) {
47
+ try {
48
+ // Header is 12 bytes; question starts at offset 12.
49
+ let off = 12;
50
+ const labels = [];
51
+ // Guard against malformed / compressed names (queries aren't
52
+ // compressed, but be defensive).
53
+ let guard = 0;
54
+ while (off < msg.length && guard++ < 128) {
55
+ const len = msg[off];
56
+ if (len === 0) {
57
+ off += 1;
58
+ break;
59
+ }
60
+ if ((len & 0xc0) === 0xc0)
61
+ return null; // compression pointer — bail
62
+ const start = off + 1;
63
+ const end = start + len;
64
+ if (end > msg.length)
65
+ return null;
66
+ labels.push(msg.toString('latin1', start, end));
67
+ off = end;
68
+ }
69
+ if (off + 2 > msg.length)
70
+ return null;
71
+ const qtype = msg.readUInt16BE(off);
72
+ return { name: labels.join('.').toLowerCase(), qtype };
73
+ }
74
+ catch {
75
+ return null;
76
+ }
77
+ }
78
+ /**
79
+ * Build a response for a query we answer locally.
80
+ * - includeA: append an A record pointing at 127.0.0.1
81
+ * - otherwise NODATA (NOERROR, zero answers) so the client falls
82
+ * back to the other family.
83
+ */
84
+ function buildLocalResponse(query, includeA) {
85
+ // Find the end of the question section to echo it verbatim.
86
+ let off = 12;
87
+ let guard = 0;
88
+ while (off < query.length && guard++ < 128) {
89
+ const len = query[off];
90
+ off += 1;
91
+ if (len === 0)
92
+ break;
93
+ off += len;
94
+ }
95
+ off += 4; // QTYPE + QCLASS
96
+ const questionEnd = Math.min(off, query.length);
97
+ const header = Buffer.from(query.subarray(0, 12));
98
+ // Flags: QR=1, Opcode=0, AA=1, RD (echo), RA=1, RCODE=0.
99
+ const rd = (query[2] & 0x01) === 0x01;
100
+ header.writeUInt16BE(0x8580 | (rd ? 0x0100 : 0), 2);
101
+ header.writeUInt16BE(1, 4); // QDCOUNT
102
+ header.writeUInt16BE(includeA ? 1 : 0, 6); // ANCOUNT
103
+ header.writeUInt16BE(0, 8); // NSCOUNT
104
+ header.writeUInt16BE(0, 10); // ARCOUNT
105
+ const question = query.subarray(12, questionEnd);
106
+ if (!includeA)
107
+ return Buffer.concat([header, question]);
108
+ const answer = Buffer.alloc(16);
109
+ answer.writeUInt16BE(0xc00c, 0); // NAME → pointer to offset 12
110
+ answer.writeUInt16BE(QTYPE_A, 2); // TYPE A
111
+ answer.writeUInt16BE(1, 4); // CLASS IN
112
+ answer.writeUInt32BE(30, 6); // TTL 30s
113
+ answer.writeUInt16BE(4, 10); // RDLENGTH
114
+ answer[12] = 127;
115
+ answer[13] = 0;
116
+ answer[14] = 0;
117
+ answer[15] = 1; // 127.0.0.1
118
+ return Buffer.concat([header, question, answer]);
119
+ }
120
+ /**
121
+ * Start the resolver. Binding failures (port in use, EACCES) are
122
+ * surfaced via the rejected promise so the caller can degrade
123
+ * gracefully (the `/etc/hosts` cover still applies to getaddrinfo).
124
+ */
125
+ export function startOfflineResolver(opts = {}) {
126
+ const suffixes = opts.suffixes ?? DEFAULT_OFFLINE_SUFFIXES;
127
+ const upstream = opts.upstream ?? null;
128
+ const port = opts.port ?? 53;
129
+ const host = opts.host ?? '127.0.0.1';
130
+ const matches = (name) => suffixes.some((s) => name === s || name.endsWith('.' + s));
131
+ const sock = dgram.createSocket('udp4');
132
+ sock.on('message', (msg, rinfo) => {
133
+ const q = parseQuestion(msg);
134
+ if (q && matches(q.name)) {
135
+ // A → loopback; AAAA (and anything else) → NODATA so the
136
+ // client uses the IPv4 answer.
137
+ const resp = buildLocalResponse(msg, q.qtype === QTYPE_A);
138
+ sock.send(resp, rinfo.port, rinfo.address);
139
+ return;
140
+ }
141
+ // Non-Shopify name: forward to the captured upstream, if any.
142
+ if (!upstream) {
143
+ // No upstream → SERVFAIL rather than hang the client.
144
+ const fail = Buffer.from(msg.subarray(0, Math.min(12, msg.length)));
145
+ if (fail.length >= 12)
146
+ fail.writeUInt16BE(0x8182, 2); // QR + SERVFAIL
147
+ sock.send(fail, rinfo.port, rinfo.address);
148
+ return;
149
+ }
150
+ const fwd = dgram.createSocket('udp4');
151
+ const timer = setTimeout(() => {
152
+ try {
153
+ fwd.close();
154
+ }
155
+ catch {
156
+ /* already closed */
157
+ }
158
+ }, 5000);
159
+ fwd.on('message', (resp) => {
160
+ clearTimeout(timer);
161
+ sock.send(resp, rinfo.port, rinfo.address);
162
+ try {
163
+ fwd.close();
164
+ }
165
+ catch {
166
+ /* already closed */
167
+ }
168
+ });
169
+ fwd.on('error', () => {
170
+ clearTimeout(timer);
171
+ try {
172
+ fwd.close();
173
+ }
174
+ catch {
175
+ /* already closed */
176
+ }
177
+ });
178
+ fwd.send(msg, 53, upstream);
179
+ });
180
+ return new Promise((resolveStart, rejectStart) => {
181
+ sock.once('error', rejectStart);
182
+ sock.bind(port, host, () => {
183
+ sock.removeListener('error', rejectStart);
184
+ resolveStart({
185
+ port,
186
+ close: () => {
187
+ try {
188
+ sock.close();
189
+ }
190
+ catch {
191
+ /* already closed */
192
+ }
193
+ },
194
+ });
195
+ });
196
+ });
197
+ }
198
+ //# sourceMappingURL=offlineResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offlineResolver.js","sourceRoot":"","sources":["../../src/edge/offlineResolver.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,7 @@
41
41
  import { spawn, execSync } from 'node:child_process';
42
42
  import { assertInVm, computeBuildHash } from '@essential-apps/shopify-test-core';
43
43
  import { startEdgeProxy } from '../edge/edgeProxy.js';
44
+ import { startOfflineResolver, } from '../edge/offlineResolver.js';
44
45
  import { startNeonWsProxy } from '../lib/neonWsProxy.js';
45
46
  import { TEST_CA_CERT_PEM } from '../edge/cert.js';
46
47
  import { randomUUID } from 'node:crypto';
@@ -338,6 +339,55 @@ function ensureOfflineSetup() {
338
339
  `Chrome will reject the edge's cert. Verify libnss3-tools is installed in the image.`);
339
340
  }
340
341
  }
342
+ /**
343
+ * Start the offline catch-all DNS resolver and repoint
344
+ * `/etc/resolv.conf` at it.
345
+ *
346
+ * `/etc/hosts` (set by ensureOfflineSetup) covers the glibc
347
+ * `getaddrinfo` path, but clients that resolve via c-ares — notably
348
+ * Playwright's `page.request` — skip `/etc/hosts` and query the
349
+ * nameservers in `/etc/resolv.conf` directly, leaking Shopify
350
+ * lookups to the public internet. Routing `/etc/resolv.conf` at our
351
+ * loopback resolver closes that path: Shopify names answer
352
+ * `127.0.0.1` (→ in-guest edge proxy), everything else forwards to
353
+ * the original upstream. Best-effort: a bind failure degrades to the
354
+ * `/etc/hosts`-only cover rather than aborting the run.
355
+ */
356
+ async function startOfflineDnsRedirect() {
357
+ // Capture the current upstream nameserver BEFORE we overwrite
358
+ // resolv.conf, so non-Shopify lookups keep working.
359
+ let upstream = null;
360
+ try {
361
+ const rc = readFileSync('/etc/resolv.conf', 'utf8');
362
+ const m = rc.match(/^\s*nameserver\s+([0-9.]+)\s*$/m);
363
+ if (m && m[1] && m[1] !== '127.0.0.1')
364
+ upstream = m[1];
365
+ }
366
+ catch {
367
+ /* no resolv.conf — forward disabled, non-Shopify names SERVFAIL */
368
+ }
369
+ let resolver;
370
+ try {
371
+ resolver = await startOfflineResolver({ upstream });
372
+ }
373
+ catch (err) {
374
+ console.warn(`[runOfflineFull] offline DNS resolver failed to bind 127.0.0.1:53: ` +
375
+ `${err.message}. page.request may resolve Shopify ` +
376
+ `hostnames to real Shopify on the internet.`);
377
+ return null;
378
+ }
379
+ try {
380
+ // timeout:1 attempts:1 — we answer instantly; never stall a client.
381
+ writeFileSync('/etc/resolv.conf', 'nameserver 127.0.0.1\noptions timeout:1 attempts:1\n');
382
+ console.log('[runOfflineFull] offline DNS resolver on 127.0.0.1:53 ' +
383
+ `(Shopify → loopback${upstream ? `, else → ${upstream}` : ', else → SERVFAIL'})`);
384
+ }
385
+ catch (err) {
386
+ console.warn(`[runOfflineFull] could not repoint /etc/resolv.conf: ` +
387
+ `${err.message}. c-ares clients may bypass the resolver.`);
388
+ }
389
+ return resolver;
390
+ }
341
391
  /**
342
392
  * Build the absolute path to the MSW loader inside the consuming
343
393
  * app's node_modules. NODE_OPTIONS=--import requires either an absolute
@@ -475,6 +525,10 @@ async function main() {
475
525
  // entrypoint's offline-setup block is skipped. Re-apply it here
476
526
  // now that we know node_modules exists.
477
527
  ensureOfflineSetup();
528
+ // Close the c-ares leak: route /etc/resolv.conf at an in-guest
529
+ // resolver so Shopify hostnames resolve to loopback for clients
530
+ // (Playwright's page.request) that bypass /etc/hosts.
531
+ const offlineResolver = await startOfflineDnsRedirect();
478
532
  // ── Supervisor branch ─────────────────────────────────────
479
533
  // Default to 1 (serial). The supervisor model spawns N child
480
534
  // processes inside ONE libkrun container; each child boots its
@@ -1215,6 +1269,7 @@ async function main() {
1215
1269
  cleanup();
1216
1270
  await sleep(1_000);
1217
1271
  // Close mocks. Errors here shouldn't mask test exit code.
1272
+ offlineResolver?.close();
1218
1273
  await Promise.allSettled([
1219
1274
  edge.close(),
1220
1275
  adminShell.close(),
@@ -1 +1 @@
1
- {"version":3,"file":"runOfflineFullTests.js","sourceRoot":"","sources":["../../src/scripts/runOfflineFullTests.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runOfflineFullTests.js","sourceRoot":"","sources":["../../src/scripts/runOfflineFullTests.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@essential-apps/shopify-test-runner",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "Orchestration scripts (container, auth capture, install) and Playwright config preset for Essential Apps' Shopify test suites. Internal use only.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -57,11 +57,11 @@
57
57
  "clean": "rm -rf dist"
58
58
  },
59
59
  "dependencies": {
60
- "@essential-apps/shopify-test-core": "^1.0.2",
61
- "@essential-apps/shopify-test-mock-admin": "^1.0.2",
62
- "@essential-apps/shopify-test-shopify-api": "^1.0.2",
63
- "@essential-apps/shopify-test-storefront": "^1.0.2",
64
- "@essential-apps/shopify-test-themes": "^1.0.2",
60
+ "@essential-apps/shopify-test-core": "^1.0.3",
61
+ "@essential-apps/shopify-test-mock-admin": "^1.0.3",
62
+ "@essential-apps/shopify-test-shopify-api": "^1.0.3",
63
+ "@essential-apps/shopify-test-storefront": "^1.0.3",
64
+ "@essential-apps/shopify-test-themes": "^1.0.3",
65
65
  "@playwright/test": "^1.49.0",
66
66
  "@types/node": "^20.19.40",
67
67
  "@types/tar-stream": "^3.1.4",
@@ -0,0 +1,219 @@
1
+ /**
2
+ * Offline catch-all DNS resolver.
3
+ *
4
+ * The offline full-stack harness routes Shopify hostnames to the
5
+ * in-guest edge proxy. The browser honours `/etc/hosts` (via glibc
6
+ * `getaddrinfo`), but Playwright's `page.request` / any client that
7
+ * resolves through c-ares (`dns.resolve`, which skips `/etc/hosts`
8
+ * and talks to the nameservers in `/etc/resolv.conf` directly) does
9
+ * NOT — so those requests leak to real Shopify on the public internet
10
+ * and come back with misleading responses (e.g. a real 422
11
+ * "Cannot find variant" for a variant that only exists in the mock).
12
+ *
13
+ * Under supermachine's TSI networking a connection to a real IP is
14
+ * relayed out through the host, but a connection to loopback stays
15
+ * inside the guest. So the fix is purely at the *resolution* layer:
16
+ * guarantee that every Shopify hostname resolves to loopback for
17
+ * EVERY client, not just the ones that read `/etc/hosts`.
18
+ *
19
+ * This module is a tiny authoritative-ish UDP resolver (zero deps,
20
+ * `node:dgram` only):
21
+ * - `A` for a Shopify-shaped name → 127.0.0.1 (→ edge proxy)
22
+ * - `AAAA` for a Shopify-shaped name → NODATA (forces the
23
+ * client to fall back to the IPv4 answer; the edge binds IPv4
24
+ * only, so we must NOT hand out an AAAA that points nowhere)
25
+ * - anything else → forwarded to the original
26
+ * upstream nameserver captured before `/etc/resolv.conf` was
27
+ * repointed at us (keeps unrelated lookups working).
28
+ *
29
+ * Pair this with `/etc/resolv.conf` → `nameserver 127.0.0.1` so the
30
+ * c-ares path lands here. `/etc/hosts` stays in place as a
31
+ * belt-and-suspenders cover for the `getaddrinfo` path.
32
+ */
33
+ import dgram from 'node:dgram';
34
+
35
+ /** Default DNS suffixes that must resolve to the in-guest edge proxy. */
36
+ export const DEFAULT_OFFLINE_SUFFIXES = [
37
+ 'myshopify.com',
38
+ 'shopify.com',
39
+ 'shopifycdn.com',
40
+ 'shopifycloud.com',
41
+ 'shopifysvc.com',
42
+ 'shopifyapps.com',
43
+ ];
44
+
45
+ export interface OfflineResolver {
46
+ /** Bound UDP port (53 unless overridden). */
47
+ port: number;
48
+ /** Stop the resolver. */
49
+ close: () => void;
50
+ }
51
+
52
+ export interface StartOfflineResolverOptions {
53
+ /** Suffixes to pin to loopback. Defaults to DEFAULT_OFFLINE_SUFFIXES. */
54
+ suffixes?: string[];
55
+ /** Upstream nameserver IP for non-matching queries (optional). */
56
+ upstream?: string | null;
57
+ /** Bind port. Defaults to 53. */
58
+ port?: number;
59
+ /** Bind host. Defaults to 127.0.0.1. */
60
+ host?: string;
61
+ }
62
+
63
+ const QTYPE_A = 1;
64
+ const QTYPE_AAAA = 28;
65
+
66
+ /** Read the QNAME (dotted, lowercase) + QTYPE from a DNS query. */
67
+ function parseQuestion(msg: Buffer): { name: string; qtype: number } | null {
68
+ try {
69
+ // Header is 12 bytes; question starts at offset 12.
70
+ let off = 12;
71
+ const labels: string[] = [];
72
+ // Guard against malformed / compressed names (queries aren't
73
+ // compressed, but be defensive).
74
+ let guard = 0;
75
+ while (off < msg.length && guard++ < 128) {
76
+ const len = msg[off]!;
77
+ if (len === 0) {
78
+ off += 1;
79
+ break;
80
+ }
81
+ if ((len & 0xc0) === 0xc0) return null; // compression pointer — bail
82
+ const start = off + 1;
83
+ const end = start + len;
84
+ if (end > msg.length) return null;
85
+ labels.push(msg.toString('latin1', start, end));
86
+ off = end;
87
+ }
88
+ if (off + 2 > msg.length) return null;
89
+ const qtype = msg.readUInt16BE(off);
90
+ return { name: labels.join('.').toLowerCase(), qtype };
91
+ } catch {
92
+ return null;
93
+ }
94
+ }
95
+
96
+ /**
97
+ * Build a response for a query we answer locally.
98
+ * - includeA: append an A record pointing at 127.0.0.1
99
+ * - otherwise NODATA (NOERROR, zero answers) so the client falls
100
+ * back to the other family.
101
+ */
102
+ function buildLocalResponse(query: Buffer, includeA: boolean): Buffer {
103
+ // Find the end of the question section to echo it verbatim.
104
+ let off = 12;
105
+ let guard = 0;
106
+ while (off < query.length && guard++ < 128) {
107
+ const len = query[off]!;
108
+ off += 1;
109
+ if (len === 0) break;
110
+ off += len;
111
+ }
112
+ off += 4; // QTYPE + QCLASS
113
+ const questionEnd = Math.min(off, query.length);
114
+
115
+ const header = Buffer.from(query.subarray(0, 12));
116
+ // Flags: QR=1, Opcode=0, AA=1, RD (echo), RA=1, RCODE=0.
117
+ const rd = (query[2]! & 0x01) === 0x01;
118
+ header.writeUInt16BE(0x8580 | (rd ? 0x0100 : 0), 2);
119
+ header.writeUInt16BE(1, 4); // QDCOUNT
120
+ header.writeUInt16BE(includeA ? 1 : 0, 6); // ANCOUNT
121
+ header.writeUInt16BE(0, 8); // NSCOUNT
122
+ header.writeUInt16BE(0, 10); // ARCOUNT
123
+
124
+ const question = query.subarray(12, questionEnd);
125
+ if (!includeA) return Buffer.concat([header, question]);
126
+
127
+ const answer = Buffer.alloc(16);
128
+ answer.writeUInt16BE(0xc00c, 0); // NAME → pointer to offset 12
129
+ answer.writeUInt16BE(QTYPE_A, 2); // TYPE A
130
+ answer.writeUInt16BE(1, 4); // CLASS IN
131
+ answer.writeUInt32BE(30, 6); // TTL 30s
132
+ answer.writeUInt16BE(4, 10); // RDLENGTH
133
+ answer[12] = 127;
134
+ answer[13] = 0;
135
+ answer[14] = 0;
136
+ answer[15] = 1; // 127.0.0.1
137
+ return Buffer.concat([header, question, answer]);
138
+ }
139
+
140
+ /**
141
+ * Start the resolver. Binding failures (port in use, EACCES) are
142
+ * surfaced via the rejected promise so the caller can degrade
143
+ * gracefully (the `/etc/hosts` cover still applies to getaddrinfo).
144
+ */
145
+ export function startOfflineResolver(
146
+ opts: StartOfflineResolverOptions = {},
147
+ ): Promise<OfflineResolver> {
148
+ const suffixes = opts.suffixes ?? DEFAULT_OFFLINE_SUFFIXES;
149
+ const upstream = opts.upstream ?? null;
150
+ const port = opts.port ?? 53;
151
+ const host = opts.host ?? '127.0.0.1';
152
+
153
+ const matches = (name: string): boolean =>
154
+ suffixes.some((s) => name === s || name.endsWith('.' + s));
155
+
156
+ const sock = dgram.createSocket('udp4');
157
+
158
+ sock.on('message', (msg, rinfo) => {
159
+ const q = parseQuestion(msg);
160
+ if (q && matches(q.name)) {
161
+ // A → loopback; AAAA (and anything else) → NODATA so the
162
+ // client uses the IPv4 answer.
163
+ const resp = buildLocalResponse(msg, q.qtype === QTYPE_A);
164
+ sock.send(resp, rinfo.port, rinfo.address);
165
+ return;
166
+ }
167
+ // Non-Shopify name: forward to the captured upstream, if any.
168
+ if (!upstream) {
169
+ // No upstream → SERVFAIL rather than hang the client.
170
+ const fail = Buffer.from(msg.subarray(0, Math.min(12, msg.length)));
171
+ if (fail.length >= 12) fail.writeUInt16BE(0x8182, 2); // QR + SERVFAIL
172
+ sock.send(fail, rinfo.port, rinfo.address);
173
+ return;
174
+ }
175
+ const fwd = dgram.createSocket('udp4');
176
+ const timer = setTimeout(() => {
177
+ try {
178
+ fwd.close();
179
+ } catch {
180
+ /* already closed */
181
+ }
182
+ }, 5000);
183
+ fwd.on('message', (resp) => {
184
+ clearTimeout(timer);
185
+ sock.send(resp, rinfo.port, rinfo.address);
186
+ try {
187
+ fwd.close();
188
+ } catch {
189
+ /* already closed */
190
+ }
191
+ });
192
+ fwd.on('error', () => {
193
+ clearTimeout(timer);
194
+ try {
195
+ fwd.close();
196
+ } catch {
197
+ /* already closed */
198
+ }
199
+ });
200
+ fwd.send(msg, 53, upstream);
201
+ });
202
+
203
+ return new Promise<OfflineResolver>((resolveStart, rejectStart) => {
204
+ sock.once('error', rejectStart);
205
+ sock.bind(port, host, () => {
206
+ sock.removeListener('error', rejectStart);
207
+ resolveStart({
208
+ port,
209
+ close: () => {
210
+ try {
211
+ sock.close();
212
+ } catch {
213
+ /* already closed */
214
+ }
215
+ },
216
+ });
217
+ });
218
+ });
219
+ }
@@ -41,6 +41,10 @@
41
41
  import { spawn, execSync, type ChildProcess } from 'node:child_process';
42
42
  import { assertInVm, computeBuildHash } from '@essential-apps/shopify-test-core';
43
43
  import { startEdgeProxy } from '../edge/edgeProxy.js';
44
+ import {
45
+ startOfflineResolver,
46
+ type OfflineResolver,
47
+ } from '../edge/offlineResolver.js';
44
48
  import { startNeonWsProxy } from '../lib/neonWsProxy.js';
45
49
  import { TEST_CA_CERT_PEM } from '../edge/cert.js';
46
50
  import { randomUUID } from 'node:crypto';
@@ -386,6 +390,63 @@ function ensureOfflineSetup(): void {
386
390
  }
387
391
  }
388
392
 
393
+ /**
394
+ * Start the offline catch-all DNS resolver and repoint
395
+ * `/etc/resolv.conf` at it.
396
+ *
397
+ * `/etc/hosts` (set by ensureOfflineSetup) covers the glibc
398
+ * `getaddrinfo` path, but clients that resolve via c-ares — notably
399
+ * Playwright's `page.request` — skip `/etc/hosts` and query the
400
+ * nameservers in `/etc/resolv.conf` directly, leaking Shopify
401
+ * lookups to the public internet. Routing `/etc/resolv.conf` at our
402
+ * loopback resolver closes that path: Shopify names answer
403
+ * `127.0.0.1` (→ in-guest edge proxy), everything else forwards to
404
+ * the original upstream. Best-effort: a bind failure degrades to the
405
+ * `/etc/hosts`-only cover rather than aborting the run.
406
+ */
407
+ async function startOfflineDnsRedirect(): Promise<OfflineResolver | null> {
408
+ // Capture the current upstream nameserver BEFORE we overwrite
409
+ // resolv.conf, so non-Shopify lookups keep working.
410
+ let upstream: string | null = null;
411
+ try {
412
+ const rc = readFileSync('/etc/resolv.conf', 'utf8');
413
+ const m = rc.match(/^\s*nameserver\s+([0-9.]+)\s*$/m);
414
+ if (m && m[1] && m[1] !== '127.0.0.1') upstream = m[1];
415
+ } catch {
416
+ /* no resolv.conf — forward disabled, non-Shopify names SERVFAIL */
417
+ }
418
+
419
+ let resolver: OfflineResolver;
420
+ try {
421
+ resolver = await startOfflineResolver({ upstream });
422
+ } catch (err) {
423
+ console.warn(
424
+ `[runOfflineFull] offline DNS resolver failed to bind 127.0.0.1:53: ` +
425
+ `${(err as Error).message}. page.request may resolve Shopify ` +
426
+ `hostnames to real Shopify on the internet.`,
427
+ );
428
+ return null;
429
+ }
430
+
431
+ try {
432
+ // timeout:1 attempts:1 — we answer instantly; never stall a client.
433
+ writeFileSync(
434
+ '/etc/resolv.conf',
435
+ 'nameserver 127.0.0.1\noptions timeout:1 attempts:1\n',
436
+ );
437
+ console.log(
438
+ '[runOfflineFull] offline DNS resolver on 127.0.0.1:53 ' +
439
+ `(Shopify → loopback${upstream ? `, else → ${upstream}` : ', else → SERVFAIL'})`,
440
+ );
441
+ } catch (err) {
442
+ console.warn(
443
+ `[runOfflineFull] could not repoint /etc/resolv.conf: ` +
444
+ `${(err as Error).message}. c-ares clients may bypass the resolver.`,
445
+ );
446
+ }
447
+ return resolver;
448
+ }
449
+
389
450
  /**
390
451
  * Build the absolute path to the MSW loader inside the consuming
391
452
  * app's node_modules. NODE_OPTIONS=--import requires either an absolute
@@ -541,6 +602,11 @@ async function main(): Promise<void> {
541
602
  // now that we know node_modules exists.
542
603
  ensureOfflineSetup();
543
604
 
605
+ // Close the c-ares leak: route /etc/resolv.conf at an in-guest
606
+ // resolver so Shopify hostnames resolve to loopback for clients
607
+ // (Playwright's page.request) that bypass /etc/hosts.
608
+ const offlineResolver = await startOfflineDnsRedirect();
609
+
544
610
  // ── Supervisor branch ─────────────────────────────────────
545
611
  // Default to 1 (serial). The supervisor model spawns N child
546
612
  // processes inside ONE libkrun container; each child boots its
@@ -1361,6 +1427,7 @@ async function main(): Promise<void> {
1361
1427
  await sleep(1_000);
1362
1428
 
1363
1429
  // Close mocks. Errors here shouldn't mask test exit code.
1430
+ offlineResolver?.close();
1364
1431
  await Promise.allSettled([
1365
1432
  edge.close(),
1366
1433
  adminShell.close(),