@se-studio/site-check 2.1.1 → 2.1.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.1.3
4
+
5
+ ### Patch Changes
6
+
7
+ - Fix `smoke-test:audit` hanging after `Running smoke tests...`: replace `spawnSync` with async spawn so piped dev-server logs keep draining during smoke HTTP requests.
8
+
9
+ ## 2.1.2
10
+
11
+ ### Patch Changes
12
+
13
+ - Add cache log audit: `SMOKE_TEST_AUDIT_CACHE_LOGS=true` captures server/build stdout and scans for 2MB Data Cache failures, Next `cache skip` lines, and unexpected `hard refresh` during smoke runs.
14
+ - Export `auditCacheLogs`, `formatCacheLogAuditReport`, and `getCacheLogAuditExitCode` from `@se-studio/site-check/smoke-test`.
15
+ - Smoke runner uses explicit `cache: 'default'` fetch (no `Cache-Control: no-cache`).
16
+ - `LOG_CMS_FETCH=1` is set when audit or cache verify is enabled.
17
+
3
18
  ## 2.1.1
4
19
 
5
20
  ### Patch Changes
package/README.md CHANGED
@@ -112,7 +112,17 @@ pnpm smoke-test # dev server + smoke (default dev:de
112
112
 
113
113
  Add `smoke.cases.json` and `scripts/smoke-test-run.ts`. No Contentful or `cms-server` imports required. Set `SMOKE_TEST_IGNORE=true` in `.env.local` to skip the full `smoke-test` CI script.
114
114
 
115
- **`smoke-test-one` env:** `SMOKE_TEST_SERVER_SCRIPT=dev:dev` (default) or `start` (runs `pnpm build` first). `SMOKE_TEST_VERIFY_CACHE=true` runs smoke twice and checks `x-nextjs-cache` headers (sets `LOG_CMS_FETCH=1` on the dev server). `SMOKE_TEST_READY_PATH=/` polls until the server responds.
115
+ **`smoke-test-one` env:**
116
+
117
+ | Variable | Purpose |
118
+ |----------|---------|
119
+ | `SMOKE_TEST_SERVER_SCRIPT=dev:dev` | Default dev server; use `start` for prod-like server (runs `pnpm build` first) |
120
+ | `SMOKE_TEST_VERIFY_CACHE=true` | Run smoke twice; assert `x-nextjs-cache` on HTML (meaningful with `start`, soft in `next dev`) |
121
+ | `SMOKE_TEST_AUDIT_CACHE_LOGS=true` | Pipe server/build logs and scan for 2MB cache failures, `cache skip`, and `hard refresh` |
122
+ | `SMOKE_TEST_CACHE_SKIP_SEVERITY=warn` | `warn` or `error` for cache-skip log lines (default `warn`) |
123
+ | `SMOKE_TEST_READY_PATH=/` | Path polled until the server responds |
124
+
125
+ `LOG_CMS_FETCH=1` is set when verify-cache or audit-cache-logs is enabled. The smoke HTTP client never sends `Cache-Control: no-cache`.
116
126
 
117
127
  ## Exit codes
118
128
 
@@ -0,0 +1,22 @@
1
+ /** biome-ignore-all lint/suspicious/noConsole: CLI output is intentional */
2
+ export type CacheLogAuditSeverity = 'error' | 'warn';
3
+ export interface CacheLogAuditMatch {
4
+ severity: CacheLogAuditSeverity;
5
+ rule: string;
6
+ line: string;
7
+ lineNumber: number;
8
+ }
9
+ export interface CacheLogAuditOptions {
10
+ /** Severity for Next.js `cache skip` / `Cache skipped reason` lines. Default `warn`. */
11
+ cacheSkipSeverity?: CacheLogAuditSeverity;
12
+ }
13
+ export interface CacheLogAuditResult {
14
+ errors: CacheLogAuditMatch[];
15
+ warnings: CacheLogAuditMatch[];
16
+ errorCount: number;
17
+ warnCount: number;
18
+ }
19
+ export declare function auditCacheLogs(logText: string, options?: CacheLogAuditOptions): CacheLogAuditResult;
20
+ export declare function getCacheLogAuditExitCode(result: CacheLogAuditResult): number;
21
+ export declare function formatCacheLogAuditReport(result: CacheLogAuditResult): string;
22
+ //# sourceMappingURL=cache-log-audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-log-audit.d.ts","sourceRoot":"","sources":["../../src/smoke-test/cache-log-audit.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAE5E,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,MAAM,CAAC;AAErD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,qBAAqB,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,wFAAwF;IACxF,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;CAC3C;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAcD,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,oBAAoB,GAC7B,mBAAmB,CAkDrB;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAE5E;AAWD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAa7E"}
@@ -0,0 +1,85 @@
1
+ /** biome-ignore-all lint/suspicious/noConsole: CLI output is intentional */
2
+ const RULE_DATA_CACHE_2MB = 'data-cache-2mb';
3
+ const RULE_CACHE_SKIP = 'cache-skip';
4
+ const RULE_HARD_REFRESH = 'hard-refresh';
5
+ const PATTERN_DATA_CACHE_2MB = /Failed to set Next\.js data cache|over 2MB can not be cached/i;
6
+ const PATTERN_CACHE_SKIP = /cache skip|Cache skipped reason/i;
7
+ const PATTERN_HARD_REFRESH = /hard refresh/i;
8
+ function resolveCacheSkipSeverity(options) {
9
+ return options?.cacheSkipSeverity ?? 'warn';
10
+ }
11
+ export function auditCacheLogs(logText, options) {
12
+ const cacheSkipSeverity = resolveCacheSkipSeverity(options);
13
+ const errors = [];
14
+ const warnings = [];
15
+ const lines = logText.split('\n');
16
+ for (let index = 0; index < lines.length; index++) {
17
+ const line = lines[index] ?? '';
18
+ const trimmed = line.trim();
19
+ if (!trimmed)
20
+ continue;
21
+ const lineNumber = index + 1;
22
+ if (PATTERN_DATA_CACHE_2MB.test(trimmed)) {
23
+ errors.push({
24
+ severity: 'error',
25
+ rule: RULE_DATA_CACHE_2MB,
26
+ line: trimmed,
27
+ lineNumber,
28
+ });
29
+ }
30
+ if (PATTERN_HARD_REFRESH.test(trimmed)) {
31
+ errors.push({
32
+ severity: 'error',
33
+ rule: RULE_HARD_REFRESH,
34
+ line: trimmed,
35
+ lineNumber,
36
+ });
37
+ }
38
+ else if (PATTERN_CACHE_SKIP.test(trimmed)) {
39
+ const match = {
40
+ severity: cacheSkipSeverity,
41
+ rule: RULE_CACHE_SKIP,
42
+ line: trimmed,
43
+ lineNumber,
44
+ };
45
+ if (cacheSkipSeverity === 'error') {
46
+ errors.push(match);
47
+ }
48
+ else {
49
+ warnings.push(match);
50
+ }
51
+ }
52
+ }
53
+ return {
54
+ errors,
55
+ warnings,
56
+ errorCount: errors.length,
57
+ warnCount: warnings.length,
58
+ };
59
+ }
60
+ export function getCacheLogAuditExitCode(result) {
61
+ return result.errorCount > 0 ? 1 : 0;
62
+ }
63
+ function formatMatches(label, matches) {
64
+ if (matches.length === 0)
65
+ return [];
66
+ const lines = [` ${label}:`];
67
+ for (const match of matches) {
68
+ lines.push(` - [${match.rule}] line ${match.lineNumber}: ${match.line}`);
69
+ }
70
+ return lines;
71
+ }
72
+ export function formatCacheLogAuditReport(result) {
73
+ const lines = [];
74
+ lines.push('## cache-log-audit');
75
+ lines.push(` errors: ${result.errorCount}, warnings: ${result.warnCount}`);
76
+ if (result.errorCount === 0 && result.warnCount === 0) {
77
+ lines.push(' cache log audit: ok');
78
+ }
79
+ else {
80
+ lines.push(...formatMatches('errors', result.errors));
81
+ lines.push(...formatMatches('warnings', result.warnings));
82
+ }
83
+ return lines.join('\n');
84
+ }
85
+ //# sourceMappingURL=cache-log-audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-log-audit.js","sourceRoot":"","sources":["../../src/smoke-test/cache-log-audit.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ export type { CacheLogAuditMatch, CacheLogAuditOptions, CacheLogAuditResult, CacheLogAuditSeverity, } from './cache-log-audit.js';
2
+ export { auditCacheLogs, formatCacheLogAuditReport, getCacheLogAuditExitCode, } from './cache-log-audit.js';
1
3
  export { formatSmokeTestReport, getSmokeTestExitCode, isSmokeTestCacheVerifyResult, parseNextJsCacheHeader, runSmokeTest, runSmokeTestWithCacheVerify, } from './runner.js';
2
4
  export { joinSmokeBaseUrl, loadStaticSmokeConfig, runStaticSmokeTest } from './static.js';
3
5
  export type { LoadStaticSmokeConfigOptions, NextJsCacheStatus, RunStaticSmokeTestOptions, SmokeFailureReason, SmokeTestCacheVerifyResult, SmokeTestCase, SmokeTestCaseResult, SmokeTestCategory, SmokeTestResult, SmokeTestRunnerConfig, StaticSmokeCaseDefinition, StaticSmokeConfigFile, } from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/smoke-test/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,4BAA4B,EAC5B,sBAAsB,EACtB,YAAY,EACZ,2BAA2B,GAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC1F,YAAY,EACV,4BAA4B,EAC5B,iBAAiB,EACjB,yBAAyB,EACzB,kBAAkB,EAClB,0BAA0B,EAC1B,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/smoke-test/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,4BAA4B,EAC5B,sBAAsB,EACtB,YAAY,EACZ,2BAA2B,GAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC1F,YAAY,EACV,4BAA4B,EAC5B,iBAAiB,EACjB,yBAAyB,EACzB,kBAAkB,EAClB,0BAA0B,EAC1B,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,YAAY,CAAC"}
@@ -1,3 +1,4 @@
1
+ export { auditCacheLogs, formatCacheLogAuditReport, getCacheLogAuditExitCode, } from './cache-log-audit.js';
1
2
  export { formatSmokeTestReport, getSmokeTestExitCode, isSmokeTestCacheVerifyResult, parseNextJsCacheHeader, runSmokeTest, runSmokeTestWithCacheVerify, } from './runner.js';
2
3
  export { joinSmokeBaseUrl, loadStaticSmokeConfig, runStaticSmokeTest } from './static.js';
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/smoke-test/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,4BAA4B,EAC5B,sBAAsB,EACtB,YAAY,EACZ,2BAA2B,GAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/smoke-test/index.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,4BAA4B,EAC5B,sBAAsB,EACtB,YAAY,EACZ,2BAA2B,GAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/smoke-test/runner.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAG5E,OAAO,KAAK,EACV,iBAAiB,EAEjB,0BAA0B,EAG1B,eAAe,EACf,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAapB,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,iBAAiB,GAAG,IAAI,CAOrF;AAuFD,wBAAsB,YAAY,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,CAqC1F;AAED,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,0BAA0B,CAAC,CA2DrC;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,eAAe,GAAG,0BAA0B,GACnD,MAAM,IAAI,0BAA0B,CAEtC;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG,0BAA0B,GAAG,MAAM,CAQjG;AAuFD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,eAAe,GAAG,0BAA0B,GACnD,MAAM,CAiBR"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/smoke-test/runner.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAG5E,OAAO,KAAK,EACV,iBAAiB,EAEjB,0BAA0B,EAG1B,eAAe,EACf,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAapB,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,iBAAiB,GAAG,IAAI,CAOrF;AAgGD,wBAAsB,YAAY,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,CAqC1F;AAED,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,0BAA0B,CAAC,CA2DrC;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,eAAe,GAAG,0BAA0B,GACnD,MAAM,IAAI,0BAA0B,CAEtC;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG,0BAA0B,GAAG,MAAM,CAQjG;AAuFD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,eAAe,GAAG,0BAA0B,GACnD,MAAM,CAiBR"}
@@ -47,7 +47,12 @@ async function checkCase(testCase, minMarkdownLength, fetchFn) {
47
47
  let htmlNextCache = null;
48
48
  let markdownNextCache = null;
49
49
  try {
50
- const htmlRes = await fetchFn(testCase.pageUrl, { method: 'GET', redirect: 'follow' });
50
+ // Smoke client uses plain GET never send Cache-Control: no-cache (would mimic browser hard refresh).
51
+ const htmlRes = await fetchFn(testCase.pageUrl, {
52
+ method: 'GET',
53
+ redirect: 'follow',
54
+ cache: 'default',
55
+ });
51
56
  htmlStatus = htmlRes.status;
52
57
  htmlNextCache = parseNextJsCacheHeader(htmlRes.headers.get('x-nextjs-cache'));
53
58
  if (htmlStatus < 200 || htmlStatus >= 300) {
@@ -61,7 +66,11 @@ async function checkCase(testCase, minMarkdownLength, fetchFn) {
61
66
  if (testCase.expectMarkdown) {
62
67
  const mdUrl = htmlUrlToMarkdownUrl(testCase.pageUrl);
63
68
  try {
64
- const mdRes = await fetchFn(mdUrl, { method: 'GET', redirect: 'follow' });
69
+ const mdRes = await fetchFn(mdUrl, {
70
+ method: 'GET',
71
+ redirect: 'follow',
72
+ cache: 'default',
73
+ });
65
74
  markdownStatus = mdRes.status;
66
75
  markdownContentType = mdRes.headers.get('content-type');
67
76
  markdownNextCache = parseNextJsCacheHeader(mdRes.headers.get('x-nextjs-cache'));
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/smoke-test/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/smoke-test/runner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@se-studio/site-check",
3
- "version": "2.1.1",
3
+ "version": "2.1.3",
4
4
  "description": "Validate SE marketing sites (sitemap, llms.txt) and download markdown files preserving structure",
5
5
  "repository": {
6
6
  "type": "git",
@@ -8,16 +8,21 @@
8
8
  * SMOKE_TEST_IGNORE=true — skip entirely
9
9
  * SMOKE_TEST_SERVER_SCRIPT=dev:dev — pnpm script to start server (default dev:dev; use "start" for prod)
10
10
  * SMOKE_TEST_VERIFY_CACHE=true — run smoke twice and assert cache headers / timing
11
+ * SMOKE_TEST_AUDIT_CACHE_LOGS=true — capture server/build logs and scan for cache problems
12
+ * SMOKE_TEST_CACHE_SKIP_SEVERITY=warn — cache-skip log severity: warn | error (default warn)
11
13
  * SMOKE_TEST_READY_PATH=/ — path polled until server responds
12
14
  * SMOKE_TEST_USE_RUNNING_SERVER=true — reuse server already on port (default true)
13
- * LOG_CMS_FETCH=1 — set automatically when SMOKE_TEST_VERIFY_CACHE=true
15
+ * LOG_CMS_FETCH=1 — set when VERIFY_CACHE or AUDIT_CACHE_LOGS is true
14
16
  */
15
17
 
16
18
  import net from 'node:net';
17
19
  import fs from 'node:fs';
18
20
  import path from 'node:path';
21
+ import { fileURLToPath } from 'node:url';
19
22
  import { spawn, spawnSync } from 'node:child_process';
20
23
 
24
+ const packageDir = path.dirname(fileURLToPath(import.meta.url));
25
+
21
26
  const port = process.argv[2];
22
27
  if (!port || !/^\d+$/.test(port)) {
23
28
  console.error('Usage: smoke-test-one <port>');
@@ -139,6 +144,36 @@ function killProcessTree(child) {
139
144
  }
140
145
  }
141
146
 
147
+ function appendTeeLog(buffer, chunk, stream) {
148
+ const text = typeof chunk === 'string' ? chunk : chunk.toString();
149
+ buffer.text += text;
150
+ stream.write(text);
151
+ }
152
+
153
+ function attachTeeHandlers(child, buffer) {
154
+ child.stdout?.setEncoding('utf8');
155
+ child.stderr?.setEncoding('utf8');
156
+ child.stdout?.on('data', (chunk) => appendTeeLog(buffer, chunk, process.stdout));
157
+ child.stderr?.on('data', (chunk) => appendTeeLog(buffer, chunk, process.stderr));
158
+ }
159
+
160
+ function runSmokeTests(appDir, smokeEnv) {
161
+ return new Promise((resolve, reject) => {
162
+ const child = spawn('pnpm', ['smoke-test:run'], {
163
+ cwd: appDir,
164
+ stdio: 'inherit',
165
+ env: smokeEnv,
166
+ });
167
+ child.on('error', reject);
168
+ child.on('exit', (code) => resolve(code ?? 1));
169
+ });
170
+ }
171
+
172
+ async function loadCacheLogAudit() {
173
+ const modulePath = path.join(packageDir, 'dist/smoke-test/cache-log-audit.js');
174
+ return import(modulePath);
175
+ }
176
+
142
177
  const env = loadEnv();
143
178
 
144
179
  if ((env.SMOKE_TEST_IGNORE ?? '').toLowerCase() === 'true') {
@@ -148,28 +183,42 @@ if ((env.SMOKE_TEST_IGNORE ?? '').toLowerCase() === 'true') {
148
183
 
149
184
  const serverScript = env.SMOKE_TEST_SERVER_SCRIPT ?? 'dev:dev';
150
185
  const verifyCache = (env.SMOKE_TEST_VERIFY_CACHE ?? '').toLowerCase() === 'true';
186
+ const auditCacheLogsEnabled = (env.SMOKE_TEST_AUDIT_CACHE_LOGS ?? '').toLowerCase() === 'true';
187
+ const cacheSkipSeverity =
188
+ (env.SMOKE_TEST_CACHE_SKIP_SEVERITY ?? 'warn').toLowerCase() === 'error' ? 'error' : 'warn';
151
189
  const useRunningServer = (env.SMOKE_TEST_USE_RUNNING_SERVER ?? 'true').toLowerCase() !== 'false';
152
190
  const readyPath = env.SMOKE_TEST_READY_PATH ?? '/';
153
191
  const readyUrl = `${baseUrl}${readyPath.startsWith('/') ? readyPath : `/${readyPath}`}`;
154
192
  const isProductionStart = serverScript === 'start';
155
193
  const startTimeoutMs = isProductionStart ? 120_000 : 300_000;
156
194
 
195
+ const logBuffer = { text: '' };
196
+
157
197
  if (isProductionStart) {
158
198
  console.log('Building app...');
159
199
  const buildResult = spawnSync('pnpm', ['build'], {
160
200
  cwd: appDir,
161
- stdio: 'inherit',
201
+ stdio: auditCacheLogsEnabled ? 'pipe' : 'inherit',
162
202
  env,
203
+ encoding: auditCacheLogsEnabled ? 'utf8' : undefined,
163
204
  });
205
+ if (auditCacheLogsEnabled) {
206
+ logBuffer.text += buildResult.stdout ?? '';
207
+ logBuffer.text += buildResult.stderr ?? '';
208
+ if (buildResult.stdout) process.stdout.write(buildResult.stdout);
209
+ if (buildResult.stderr) process.stderr.write(buildResult.stderr);
210
+ }
164
211
  if (buildResult.status !== 0) {
165
212
  process.exit(buildResult.status ?? 1);
166
213
  }
167
214
  }
168
215
 
216
+ const enableCmsFetchLog = verifyCache || auditCacheLogsEnabled;
169
217
  const smokeEnv = {
170
218
  ...env,
171
219
  SMOKE_TEST_PORT: port,
172
- ...(verifyCache ? { SMOKE_TEST_VERIFY_CACHE: 'true', LOG_CMS_FETCH: '1' } : {}),
220
+ ...(verifyCache ? { SMOKE_TEST_VERIFY_CACHE: 'true' } : {}),
221
+ ...(enableCmsFetchLog ? { LOG_CMS_FETCH: '1' } : {}),
173
222
  };
174
223
 
175
224
  console.log(`Smoke test: checking ${readyUrl} (port ${port})...`);
@@ -184,6 +233,11 @@ try {
184
233
 
185
234
  if (serverUp && useRunningServer) {
186
235
  console.log(`Using existing server at ${readyUrl}.`);
236
+ if (auditCacheLogsEnabled) {
237
+ console.warn(
238
+ 'SMOKE_TEST_AUDIT_CACHE_LOGS=true but reusing an existing server — server logs cannot be captured.',
239
+ );
240
+ }
187
241
  } else if (serverUp && !useRunningServer) {
188
242
  console.error(
189
243
  `Server already running at ${readyUrl}. Stop it first, or set SMOKE_TEST_USE_RUNNING_SERVER=true.`,
@@ -199,11 +253,15 @@ try {
199
253
  server = spawn('pnpm', [serverScript], {
200
254
  cwd: appDir,
201
255
  env: smokeEnv,
202
- stdio: 'inherit',
256
+ stdio: auditCacheLogsEnabled ? ['inherit', 'pipe', 'pipe'] : 'inherit',
203
257
  detached: true,
204
258
  });
205
259
  spawnedServer = true;
206
260
 
261
+ if (auditCacheLogsEnabled) {
262
+ attachTeeHandlers(server, logBuffer);
263
+ }
264
+
207
265
  const readyMs = await waitForServer(readyUrl, startTimeoutMs, {
208
266
  child: server,
209
267
  label: 'Dev server',
@@ -212,12 +270,20 @@ try {
212
270
  }
213
271
 
214
272
  console.log('Running smoke tests...');
215
- const runResult = spawnSync('pnpm', ['smoke-test:run'], {
216
- cwd: appDir,
217
- stdio: 'inherit',
218
- env: smokeEnv,
219
- });
220
- exitCode = runResult.status ?? 1;
273
+ // Must not use spawnSync here when audit pipes server logs — sync blocks the event loop,
274
+ // pipe buffers fill, and the dev server deadlocks mid-compile.
275
+ exitCode = await runSmokeTests(appDir, smokeEnv);
276
+
277
+ if (auditCacheLogsEnabled && spawnedServer) {
278
+ const { auditCacheLogs, formatCacheLogAuditReport, getCacheLogAuditExitCode } =
279
+ await loadCacheLogAudit();
280
+ const auditResult = auditCacheLogs(logBuffer.text, { cacheSkipSeverity });
281
+ console.log('');
282
+ console.log(formatCacheLogAuditReport(auditResult));
283
+ if (getCacheLogAuditExitCode(auditResult) !== 0) {
284
+ exitCode = 1;
285
+ }
286
+ }
221
287
 
222
288
  if (verifyCache) {
223
289
  console.log('');