Google API errors as typed findings, never raw JSON: cli/lib/google-errors.ts parses SERVICE_DISABLED (api-disabled: service, Cloud project, console page), PERMISSION_DENIED (no-app-access: which app, Users and permissions), 401 / invalid_grant (auth-revoked) and 429 (quota); health / analytics print one line with the URL, raw text in detail and the log; desktop Health tab: the line, 'Turn it on in Google Cloud' and 'Check again', raw text in a collapsed Details; Portfolio shows a Cloud project blocking several apps once. Findings exit codes are results: the sidecar reports outcome (ok / findings / declined / failed) and the command's own error line; scan / check / validate / health exit 1 with findings show and cache the findings; no bare 'Exit code N' anywhere. tests/google-errors.test.ts, boot check errors cases (api-disabled, scan-findings, scan-failed) (pitfall 57)
This commit is contained in:
parent
f69c10d3a0
commit
89256f1e80
28 changed files with 666 additions and 47 deletions
|
|
@ -107,7 +107,9 @@ describe('Play vitals: errorIssues:search time zone', () => {
|
|||
reporting(() => new Response(UNSUPPORTED_TZ, { status: 400 }));
|
||||
const h = await collectPlayHealth(mkdtempSync(join(tmpdir(), 'sb-post-')), PKG, 7);
|
||||
expect(h.crash).toEqual([]);
|
||||
expect(h.issuesError).toStartWith(`GET /v1beta1/apps/${PKG}/errorIssues:search -> 400 {"error":{"code":400,"message":"Unsupported timezone`);
|
||||
// one plain line: the API's message without the JSON around it (pitfall 57)
|
||||
expect(h.issuesError).toStartWith(`GET /v1beta1/apps/${PKG}/errorIssues:search -> 400 Unsupported timezone`);
|
||||
expect(h.issuesError).not.toContain('{"error"');
|
||||
const f = healthFindings({ date: '2026-10-11', play: h });
|
||||
expect(f.map(x => x.code)).toEqual(['vitals', 'vitals-issues']);
|
||||
expect(f[1]).toMatchObject({ level: 'warn', msg: expect.stringContaining('Unsupported timezone') });
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue