@desplega.ai/qa-use 2.10.1 → 2.13.1
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/README.md +16 -6
- package/dist/lib/api/browser-types.d.ts +1 -0
- package/dist/lib/api/browser-types.d.ts.map +1 -1
- package/dist/lib/api/browser.d.ts +1 -0
- package/dist/lib/api/browser.d.ts.map +1 -1
- package/dist/lib/api/browser.js +14 -1
- package/dist/lib/api/browser.js.map +1 -1
- package/dist/lib/api/index.d.ts +4 -3
- package/dist/lib/api/index.d.ts.map +1 -1
- package/dist/lib/api/index.js +18 -2
- package/dist/lib/api/index.js.map +1 -1
- package/dist/lib/env/index.d.ts +12 -2
- package/dist/lib/env/index.d.ts.map +1 -1
- package/dist/lib/env/index.js +56 -5
- package/dist/lib/env/index.js.map +1 -1
- package/dist/package.json +2 -1
- package/dist/src/cli/commands/api/examples.d.ts +3 -0
- package/dist/src/cli/commands/api/examples.d.ts.map +1 -0
- package/dist/src/cli/commands/api/examples.js +48 -0
- package/dist/src/cli/commands/api/examples.js.map +1 -0
- package/dist/src/cli/commands/api/index.d.ts.map +1 -1
- package/dist/src/cli/commands/api/index.js +22 -0
- package/dist/src/cli/commands/api/index.js.map +1 -1
- package/dist/src/cli/commands/api/info.d.ts +3 -0
- package/dist/src/cli/commands/api/info.d.ts.map +1 -0
- package/dist/src/cli/commands/api/info.js +59 -0
- package/dist/src/cli/commands/api/info.js.map +1 -0
- package/dist/src/cli/commands/api/lib/openapi-spec.d.ts +22 -0
- package/dist/src/cli/commands/api/lib/openapi-spec.d.ts.map +1 -1
- package/dist/src/cli/commands/api/lib/openapi-spec.js +33 -1
- package/dist/src/cli/commands/api/lib/openapi-spec.js.map +1 -1
- package/dist/src/cli/commands/api/lib/output.d.ts +4 -0
- package/dist/src/cli/commands/api/lib/output.d.ts.map +1 -1
- package/dist/src/cli/commands/api/lib/output.js +90 -0
- package/dist/src/cli/commands/api/lib/output.js.map +1 -1
- package/dist/src/cli/commands/api/lib/route-matching.d.ts +4 -0
- package/dist/src/cli/commands/api/lib/route-matching.d.ts.map +1 -0
- package/dist/src/cli/commands/api/lib/route-matching.js +9 -0
- package/dist/src/cli/commands/api/lib/route-matching.js.map +1 -0
- package/dist/src/cli/commands/api/lib/schema-resolver.d.ts +30 -0
- package/dist/src/cli/commands/api/lib/schema-resolver.d.ts.map +1 -0
- package/dist/src/cli/commands/api/lib/schema-resolver.js +91 -0
- package/dist/src/cli/commands/api/lib/schema-resolver.js.map +1 -0
- package/dist/src/cli/commands/api/ls.d.ts.map +1 -1
- package/dist/src/cli/commands/api/ls.js +6 -1
- package/dist/src/cli/commands/api/ls.js.map +1 -1
- package/dist/src/cli/commands/api/openapi.d.ts +3 -0
- package/dist/src/cli/commands/api/openapi.d.ts.map +1 -0
- package/dist/src/cli/commands/api/openapi.js +55 -0
- package/dist/src/cli/commands/api/openapi.js.map +1 -0
- package/dist/src/cli/commands/api/request.d.ts.map +1 -1
- package/dist/src/cli/commands/api/request.js +9 -11
- package/dist/src/cli/commands/api/request.js.map +1 -1
- package/dist/src/cli/commands/app-config/create.d.ts +6 -0
- package/dist/src/cli/commands/app-config/create.d.ts.map +1 -0
- package/dist/src/cli/commands/app-config/create.js +32 -0
- package/dist/src/cli/commands/app-config/create.js.map +1 -0
- package/dist/src/cli/commands/app-config/delete.d.ts +6 -0
- package/dist/src/cli/commands/app-config/delete.d.ts.map +1 -0
- package/dist/src/cli/commands/app-config/delete.js +31 -0
- package/dist/src/cli/commands/app-config/delete.js.map +1 -0
- package/dist/src/cli/commands/app-config/index.d.ts +6 -0
- package/dist/src/cli/commands/app-config/index.d.ts.map +1 -0
- package/dist/src/cli/commands/app-config/index.js +16 -0
- package/dist/src/cli/commands/app-config/index.js.map +1 -0
- package/dist/src/cli/commands/app-config/info.d.ts +6 -0
- package/dist/src/cli/commands/app-config/info.d.ts.map +1 -0
- package/dist/src/cli/commands/app-config/info.js +67 -0
- package/dist/src/cli/commands/app-config/info.js.map +1 -0
- package/dist/src/cli/commands/app-config/list.d.ts +6 -0
- package/dist/src/cli/commands/app-config/list.d.ts.map +1 -0
- package/dist/src/cli/commands/app-config/list.js +58 -0
- package/dist/src/cli/commands/app-config/list.js.map +1 -0
- package/dist/src/cli/commands/app-config/update.d.ts +6 -0
- package/dist/src/cli/commands/app-config/update.d.ts.map +1 -0
- package/dist/src/cli/commands/app-config/update.js +31 -0
- package/dist/src/cli/commands/app-config/update.js.map +1 -0
- package/dist/src/cli/commands/app-context/create.d.ts +6 -0
- package/dist/src/cli/commands/app-context/create.d.ts.map +1 -0
- package/dist/src/cli/commands/app-context/create.js +32 -0
- package/dist/src/cli/commands/app-context/create.js.map +1 -0
- package/dist/src/cli/commands/app-context/delete.d.ts +6 -0
- package/dist/src/cli/commands/app-context/delete.d.ts.map +1 -0
- package/dist/src/cli/commands/app-context/delete.js +31 -0
- package/dist/src/cli/commands/app-context/delete.js.map +1 -0
- package/dist/src/cli/commands/app-context/index.d.ts +6 -0
- package/dist/src/cli/commands/app-context/index.d.ts.map +1 -0
- package/dist/src/cli/commands/app-context/index.js +16 -0
- package/dist/src/cli/commands/app-context/index.js.map +1 -0
- package/dist/src/cli/commands/app-context/info.d.ts +6 -0
- package/dist/src/cli/commands/app-context/info.d.ts.map +1 -0
- package/dist/src/cli/commands/app-context/info.js +51 -0
- package/dist/src/cli/commands/app-context/info.js.map +1 -0
- package/dist/src/cli/commands/app-context/list.d.ts +6 -0
- package/dist/src/cli/commands/app-context/list.d.ts.map +1 -0
- package/dist/src/cli/commands/app-context/list.js +58 -0
- package/dist/src/cli/commands/app-context/list.js.map +1 -0
- package/dist/src/cli/commands/app-context/update.d.ts +6 -0
- package/dist/src/cli/commands/app-context/update.d.ts.map +1 -0
- package/dist/src/cli/commands/app-context/update.js +31 -0
- package/dist/src/cli/commands/app-context/update.js.map +1 -0
- package/dist/src/cli/commands/browser/back.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/back.js +2 -4
- package/dist/src/cli/commands/browser/back.js.map +1 -1
- package/dist/src/cli/commands/browser/blur.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/blur.js +2 -4
- package/dist/src/cli/commands/browser/blur.js.map +1 -1
- package/dist/src/cli/commands/browser/check.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/check.js +2 -4
- package/dist/src/cli/commands/browser/check.js.map +1 -1
- package/dist/src/cli/commands/browser/click.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/click.js +2 -4
- package/dist/src/cli/commands/browser/click.js.map +1 -1
- package/dist/src/cli/commands/browser/close.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/close.js +2 -4
- package/dist/src/cli/commands/browser/close.js.map +1 -1
- package/dist/src/cli/commands/browser/create.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/create.js +7 -4
- package/dist/src/cli/commands/browser/create.js.map +1 -1
- package/dist/src/cli/commands/browser/downloads.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/downloads.js +2 -4
- package/dist/src/cli/commands/browser/downloads.js.map +1 -1
- package/dist/src/cli/commands/browser/drag.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/drag.js +2 -4
- package/dist/src/cli/commands/browser/drag.js.map +1 -1
- package/dist/src/cli/commands/browser/evaluate.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/evaluate.js +2 -4
- package/dist/src/cli/commands/browser/evaluate.js.map +1 -1
- package/dist/src/cli/commands/browser/fill.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/fill.js +2 -4
- package/dist/src/cli/commands/browser/fill.js.map +1 -1
- package/dist/src/cli/commands/browser/focus.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/focus.js +2 -4
- package/dist/src/cli/commands/browser/focus.js.map +1 -1
- package/dist/src/cli/commands/browser/forward.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/forward.js +2 -4
- package/dist/src/cli/commands/browser/forward.js.map +1 -1
- package/dist/src/cli/commands/browser/generate-test.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/generate-test.js +2 -4
- package/dist/src/cli/commands/browser/generate-test.js.map +1 -1
- package/dist/src/cli/commands/browser/get-blocks.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/get-blocks.js +2 -4
- package/dist/src/cli/commands/browser/get-blocks.js.map +1 -1
- package/dist/src/cli/commands/browser/goto.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/goto.js +2 -4
- package/dist/src/cli/commands/browser/goto.js.map +1 -1
- package/dist/src/cli/commands/browser/hover.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/hover.js +2 -4
- package/dist/src/cli/commands/browser/hover.js.map +1 -1
- package/dist/src/cli/commands/browser/list.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/list.js +2 -4
- package/dist/src/cli/commands/browser/list.js.map +1 -1
- package/dist/src/cli/commands/browser/logs.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/logs.js +3 -6
- package/dist/src/cli/commands/browser/logs.js.map +1 -1
- package/dist/src/cli/commands/browser/mfa-totp.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/mfa-totp.js +2 -4
- package/dist/src/cli/commands/browser/mfa-totp.js.map +1 -1
- package/dist/src/cli/commands/browser/press.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/press.js +2 -4
- package/dist/src/cli/commands/browser/press.js.map +1 -1
- package/dist/src/cli/commands/browser/reload.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/reload.js +2 -4
- package/dist/src/cli/commands/browser/reload.js.map +1 -1
- package/dist/src/cli/commands/browser/run.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/run.js +5 -4
- package/dist/src/cli/commands/browser/run.js.map +1 -1
- package/dist/src/cli/commands/browser/screenshot.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/screenshot.js +2 -4
- package/dist/src/cli/commands/browser/screenshot.js.map +1 -1
- package/dist/src/cli/commands/browser/scroll-into-view.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/scroll-into-view.js +2 -4
- package/dist/src/cli/commands/browser/scroll-into-view.js.map +1 -1
- package/dist/src/cli/commands/browser/scroll.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/scroll.js +2 -4
- package/dist/src/cli/commands/browser/scroll.js.map +1 -1
- package/dist/src/cli/commands/browser/select.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/select.js +2 -4
- package/dist/src/cli/commands/browser/select.js.map +1 -1
- package/dist/src/cli/commands/browser/snapshot.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/snapshot.js +2 -4
- package/dist/src/cli/commands/browser/snapshot.js.map +1 -1
- package/dist/src/cli/commands/browser/status.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/status.js +6 -4
- package/dist/src/cli/commands/browser/status.js.map +1 -1
- package/dist/src/cli/commands/browser/stream.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/stream.js +2 -4
- package/dist/src/cli/commands/browser/stream.js.map +1 -1
- package/dist/src/cli/commands/browser/type.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/type.js +2 -4
- package/dist/src/cli/commands/browser/type.js.map +1 -1
- package/dist/src/cli/commands/browser/uncheck.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/uncheck.js +2 -4
- package/dist/src/cli/commands/browser/uncheck.js.map +1 -1
- package/dist/src/cli/commands/browser/upload.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/upload.js +2 -4
- package/dist/src/cli/commands/browser/upload.js.map +1 -1
- package/dist/src/cli/commands/browser/url.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/url.js +2 -4
- package/dist/src/cli/commands/browser/url.js.map +1 -1
- package/dist/src/cli/commands/browser/wait-for-load.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/wait-for-load.js +2 -4
- package/dist/src/cli/commands/browser/wait-for-load.js.map +1 -1
- package/dist/src/cli/commands/browser/wait-for-selector.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/wait-for-selector.js +2 -4
- package/dist/src/cli/commands/browser/wait-for-selector.js.map +1 -1
- package/dist/src/cli/commands/browser/wait.d.ts.map +1 -1
- package/dist/src/cli/commands/browser/wait.js +2 -4
- package/dist/src/cli/commands/browser/wait.js.map +1 -1
- package/dist/src/cli/commands/data-asset/delete.d.ts +6 -0
- package/dist/src/cli/commands/data-asset/delete.d.ts.map +1 -0
- package/dist/src/cli/commands/data-asset/delete.js +31 -0
- package/dist/src/cli/commands/data-asset/delete.js.map +1 -0
- package/dist/src/cli/commands/data-asset/index.d.ts +6 -0
- package/dist/src/cli/commands/data-asset/index.d.ts.map +1 -0
- package/dist/src/cli/commands/data-asset/index.js +14 -0
- package/dist/src/cli/commands/data-asset/index.js.map +1 -0
- package/dist/src/cli/commands/data-asset/info.d.ts +6 -0
- package/dist/src/cli/commands/data-asset/info.d.ts.map +1 -0
- package/dist/src/cli/commands/data-asset/info.js +75 -0
- package/dist/src/cli/commands/data-asset/info.js.map +1 -0
- package/dist/src/cli/commands/data-asset/list.d.ts +6 -0
- package/dist/src/cli/commands/data-asset/list.d.ts.map +1 -0
- package/dist/src/cli/commands/data-asset/list.js +76 -0
- package/dist/src/cli/commands/data-asset/list.js.map +1 -0
- package/dist/src/cli/commands/data-asset/upload.d.ts +6 -0
- package/dist/src/cli/commands/data-asset/upload.d.ts.map +1 -0
- package/dist/src/cli/commands/data-asset/upload.js +83 -0
- package/dist/src/cli/commands/data-asset/upload.js.map +1 -0
- package/dist/src/cli/commands/docs.d.ts.map +1 -1
- package/dist/src/cli/commands/docs.js +7 -1
- package/dist/src/cli/commands/docs.js.map +1 -1
- package/dist/src/cli/commands/info.d.ts.map +1 -1
- package/dist/src/cli/commands/info.js +15 -6
- package/dist/src/cli/commands/info.js.map +1 -1
- package/dist/src/cli/commands/issues/index.d.ts +6 -0
- package/dist/src/cli/commands/issues/index.d.ts.map +1 -0
- package/dist/src/cli/commands/issues/index.js +12 -0
- package/dist/src/cli/commands/issues/index.js.map +1 -0
- package/dist/src/cli/commands/issues/info.d.ts +6 -0
- package/dist/src/cli/commands/issues/info.d.ts.map +1 -0
- package/dist/src/cli/commands/issues/info.js +57 -0
- package/dist/src/cli/commands/issues/info.js.map +1 -0
- package/dist/src/cli/commands/issues/list.d.ts +6 -0
- package/dist/src/cli/commands/issues/list.d.ts.map +1 -0
- package/dist/src/cli/commands/issues/list.js +71 -0
- package/dist/src/cli/commands/issues/list.js.map +1 -0
- package/dist/src/cli/commands/issues/occurrences.d.ts +6 -0
- package/dist/src/cli/commands/issues/occurrences.d.ts.map +1 -0
- package/dist/src/cli/commands/issues/occurrences.js +54 -0
- package/dist/src/cli/commands/issues/occurrences.js.map +1 -0
- package/dist/src/cli/commands/persona/create.d.ts +6 -0
- package/dist/src/cli/commands/persona/create.d.ts.map +1 -0
- package/dist/src/cli/commands/persona/create.js +30 -0
- package/dist/src/cli/commands/persona/create.js.map +1 -0
- package/dist/src/cli/commands/persona/delete.d.ts +6 -0
- package/dist/src/cli/commands/persona/delete.d.ts.map +1 -0
- package/dist/src/cli/commands/persona/delete.js +31 -0
- package/dist/src/cli/commands/persona/delete.js.map +1 -0
- package/dist/src/cli/commands/persona/index.d.ts +6 -0
- package/dist/src/cli/commands/persona/index.d.ts.map +1 -0
- package/dist/src/cli/commands/persona/index.js +16 -0
- package/dist/src/cli/commands/persona/index.js.map +1 -0
- package/dist/src/cli/commands/persona/info.d.ts +6 -0
- package/dist/src/cli/commands/persona/info.d.ts.map +1 -0
- package/dist/src/cli/commands/persona/info.js +51 -0
- package/dist/src/cli/commands/persona/info.js.map +1 -0
- package/dist/src/cli/commands/persona/list.d.ts +6 -0
- package/dist/src/cli/commands/persona/list.d.ts.map +1 -0
- package/dist/src/cli/commands/persona/list.js +58 -0
- package/dist/src/cli/commands/persona/list.js.map +1 -0
- package/dist/src/cli/commands/persona/update.d.ts +6 -0
- package/dist/src/cli/commands/persona/update.d.ts.map +1 -0
- package/dist/src/cli/commands/persona/update.js +31 -0
- package/dist/src/cli/commands/persona/update.js.map +1 -0
- package/dist/src/cli/commands/setup.d.ts.map +1 -1
- package/dist/src/cli/commands/setup.js +4 -2
- package/dist/src/cli/commands/setup.js.map +1 -1
- package/dist/src/cli/commands/suite/create.d.ts +6 -0
- package/dist/src/cli/commands/suite/create.d.ts.map +1 -0
- package/dist/src/cli/commands/suite/create.js +30 -0
- package/dist/src/cli/commands/suite/create.js.map +1 -0
- package/dist/src/cli/commands/suite/delete.d.ts +6 -0
- package/dist/src/cli/commands/suite/delete.d.ts.map +1 -0
- package/dist/src/cli/commands/suite/delete.js +31 -0
- package/dist/src/cli/commands/suite/delete.js.map +1 -0
- package/dist/src/cli/commands/suite/index.d.ts +6 -0
- package/dist/src/cli/commands/suite/index.d.ts.map +1 -0
- package/dist/src/cli/commands/suite/index.js +18 -0
- package/dist/src/cli/commands/suite/index.js.map +1 -0
- package/dist/src/cli/commands/suite/info.d.ts +6 -0
- package/dist/src/cli/commands/suite/info.d.ts.map +1 -0
- package/dist/src/cli/commands/suite/info.js +66 -0
- package/dist/src/cli/commands/suite/info.js.map +1 -0
- package/dist/src/cli/commands/suite/list.d.ts +6 -0
- package/dist/src/cli/commands/suite/list.d.ts.map +1 -0
- package/dist/src/cli/commands/suite/list.js +58 -0
- package/dist/src/cli/commands/suite/list.js.map +1 -0
- package/dist/src/cli/commands/suite/run.d.ts +6 -0
- package/dist/src/cli/commands/suite/run.d.ts.map +1 -0
- package/dist/src/cli/commands/suite/run.js +34 -0
- package/dist/src/cli/commands/suite/run.js.map +1 -0
- package/dist/src/cli/commands/suite/update.d.ts +6 -0
- package/dist/src/cli/commands/suite/update.d.ts.map +1 -0
- package/dist/src/cli/commands/suite/update.js +31 -0
- package/dist/src/cli/commands/suite/update.js.map +1 -0
- package/dist/src/cli/commands/test/diff.d.ts.map +1 -1
- package/dist/src/cli/commands/test/diff.js +2 -4
- package/dist/src/cli/commands/test/diff.js.map +1 -1
- package/dist/src/cli/commands/test/export.d.ts.map +1 -1
- package/dist/src/cli/commands/test/export.js +2 -4
- package/dist/src/cli/commands/test/export.js.map +1 -1
- package/dist/src/cli/commands/test/index.js +1 -1
- package/dist/src/cli/commands/test/index.js.map +1 -1
- package/dist/src/cli/commands/test/info.d.ts.map +1 -1
- package/dist/src/cli/commands/test/info.js +150 -46
- package/dist/src/cli/commands/test/info.js.map +1 -1
- package/dist/src/cli/commands/test/list.d.ts.map +1 -1
- package/dist/src/cli/commands/test/list.js +78 -23
- package/dist/src/cli/commands/test/list.js.map +1 -1
- package/dist/src/cli/commands/test/run.d.ts.map +1 -1
- package/dist/src/cli/commands/test/run.js +2 -4
- package/dist/src/cli/commands/test/run.js.map +1 -1
- package/dist/src/cli/commands/test/runs/cancel.d.ts +6 -0
- package/dist/src/cli/commands/test/runs/cancel.d.ts.map +1 -0
- package/dist/src/cli/commands/test/runs/cancel.js +31 -0
- package/dist/src/cli/commands/test/runs/cancel.js.map +1 -0
- package/dist/src/cli/commands/test/runs/index.d.ts +6 -0
- package/dist/src/cli/commands/test/runs/index.d.ts.map +1 -0
- package/dist/src/cli/commands/test/runs/index.js +16 -0
- package/dist/src/cli/commands/test/runs/index.js.map +1 -0
- package/dist/src/cli/commands/test/runs/info.d.ts +6 -0
- package/dist/src/cli/commands/test/runs/info.d.ts.map +1 -0
- package/dist/src/cli/commands/test/runs/info.js +72 -0
- package/dist/src/cli/commands/test/runs/info.js.map +1 -0
- package/dist/src/cli/commands/test/runs/list.d.ts +6 -0
- package/dist/src/cli/commands/test/runs/list.d.ts.map +1 -0
- package/dist/src/cli/commands/test/runs/list.js +128 -0
- package/dist/src/cli/commands/test/runs/list.js.map +1 -0
- package/dist/src/cli/commands/test/runs/logs.d.ts +6 -0
- package/dist/src/cli/commands/test/runs/logs.d.ts.map +1 -0
- package/dist/src/cli/commands/test/runs/logs.js +88 -0
- package/dist/src/cli/commands/test/runs/logs.js.map +1 -0
- package/dist/src/cli/commands/test/runs/steps.d.ts +6 -0
- package/dist/src/cli/commands/test/runs/steps.d.ts.map +1 -0
- package/dist/src/cli/commands/test/runs/steps.js +110 -0
- package/dist/src/cli/commands/test/runs/steps.js.map +1 -0
- package/dist/src/cli/commands/test/runs.d.ts.map +1 -1
- package/dist/src/cli/commands/test/runs.js +2 -4
- package/dist/src/cli/commands/test/runs.js.map +1 -1
- package/dist/src/cli/commands/test/schema.d.ts.map +1 -1
- package/dist/src/cli/commands/test/schema.js +2 -6
- package/dist/src/cli/commands/test/schema.js.map +1 -1
- package/dist/src/cli/commands/test/sync.d.ts.map +1 -1
- package/dist/src/cli/commands/test/sync.js +3 -6
- package/dist/src/cli/commands/test/sync.js.map +1 -1
- package/dist/src/cli/commands/test/validate.d.ts.map +1 -1
- package/dist/src/cli/commands/test/validate.js +2 -4
- package/dist/src/cli/commands/test/validate.js.map +1 -1
- package/dist/src/cli/commands/usage.d.ts +6 -0
- package/dist/src/cli/commands/usage.d.ts.map +1 -0
- package/dist/src/cli/commands/usage.js +106 -0
- package/dist/src/cli/commands/usage.js.map +1 -0
- package/dist/src/cli/generated/docs-content.d.ts +1 -1
- package/dist/src/cli/generated/docs-content.d.ts.map +1 -1
- package/dist/src/cli/generated/docs-content.js +12 -5
- package/dist/src/cli/generated/docs-content.js.map +1 -1
- package/dist/src/cli/index.js +43 -1
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/cli/lib/api-helpers.d.ts +59 -0
- package/dist/src/cli/lib/api-helpers.d.ts.map +1 -0
- package/dist/src/cli/lib/api-helpers.js +149 -0
- package/dist/src/cli/lib/api-helpers.js.map +1 -0
- package/dist/src/cli/lib/config.d.ts +20 -7
- package/dist/src/cli/lib/config.d.ts.map +1 -1
- package/dist/src/cli/lib/config.js +88 -26
- package/dist/src/cli/lib/config.js.map +1 -1
- package/dist/src/cli/lib/table.d.ts +47 -0
- package/dist/src/cli/lib/table.d.ts.map +1 -0
- package/dist/src/cli/lib/table.js +161 -0
- package/dist/src/cli/lib/table.js.map +1 -0
- package/dist/src/types/test-definition.d.ts +29 -2
- package/dist/src/types/test-definition.d.ts.map +1 -1
- package/dist/src/types/test-definition.js +2 -2
- package/lib/api/browser-types.ts +1 -0
- package/lib/api/browser.test.ts +28 -0
- package/lib/api/browser.ts +15 -1
- package/lib/api/index.ts +28 -5
- package/lib/env/index.ts +65 -5
- package/package.json +2 -1
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* qa-use test runs info - Show detailed test run information
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from 'commander';
|
|
5
|
+
import { apiCall, requireApiKey } from '../../../lib/api-helpers.js';
|
|
6
|
+
import { loadConfig } from '../../../lib/config.js';
|
|
7
|
+
import { error, formatError } from '../../../lib/output.js';
|
|
8
|
+
import { formatDuration, formatStatus, formatTimestamp } from '../../../lib/table.js';
|
|
9
|
+
const colors = {
|
|
10
|
+
reset: '\x1b[0m',
|
|
11
|
+
gray: '\x1b[90m',
|
|
12
|
+
cyan: '\x1b[36m',
|
|
13
|
+
};
|
|
14
|
+
function printField(label, value) {
|
|
15
|
+
const display = value ?? '-';
|
|
16
|
+
console.log(` ${colors.gray}${label.padEnd(18)}${colors.reset} ${display}`);
|
|
17
|
+
}
|
|
18
|
+
export const infoCommand = new Command('info')
|
|
19
|
+
.description('Show detailed test run information')
|
|
20
|
+
.argument('<run-id>', 'Test run ID (UUID)')
|
|
21
|
+
.option('--json', 'Output as JSON')
|
|
22
|
+
.action(async (runId, options) => {
|
|
23
|
+
try {
|
|
24
|
+
const config = await loadConfig();
|
|
25
|
+
requireApiKey(config);
|
|
26
|
+
const run = (await apiCall(config, 'GET', `/api/v1/test-runs/${runId}`));
|
|
27
|
+
if (options.json) {
|
|
28
|
+
console.log(JSON.stringify(run, null, 2));
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
console.log(`${colors.cyan}Test Run Details${colors.reset}\n`);
|
|
32
|
+
printField('ID', String(run.id ?? '-'));
|
|
33
|
+
printField('Status', formatStatus(String(run.run_status ?? run.status ?? '-')));
|
|
34
|
+
printField('Test ID', String(run.test_id ?? '-'));
|
|
35
|
+
if (run.test_name) {
|
|
36
|
+
printField('Test Name', String(run.test_name));
|
|
37
|
+
}
|
|
38
|
+
printField('Duration', formatDuration(run.duration_seconds));
|
|
39
|
+
printField('Created', formatTimestamp(String(run.created_at ?? '')));
|
|
40
|
+
if (run.started_at) {
|
|
41
|
+
printField('Started', formatTimestamp(String(run.started_at)));
|
|
42
|
+
}
|
|
43
|
+
if (run.completed_at) {
|
|
44
|
+
printField('Completed', formatTimestamp(String(run.completed_at)));
|
|
45
|
+
}
|
|
46
|
+
if (run.app_url) {
|
|
47
|
+
printField('App URL', String(run.app_url));
|
|
48
|
+
}
|
|
49
|
+
// Error info
|
|
50
|
+
if (run.error || run.error_message) {
|
|
51
|
+
console.log(`\n ${colors.gray}Error:${colors.reset}`);
|
|
52
|
+
console.log(` ${run.error || run.error_message}`);
|
|
53
|
+
}
|
|
54
|
+
// Config details
|
|
55
|
+
const configData = run.config ?? run.run_config;
|
|
56
|
+
if (configData && typeof configData === 'object') {
|
|
57
|
+
console.log(`\n ${colors.gray}Config:${colors.reset}`);
|
|
58
|
+
const cfg = configData;
|
|
59
|
+
for (const [key, value] of Object.entries(cfg)) {
|
|
60
|
+
if (value !== undefined && value !== null) {
|
|
61
|
+
const display = typeof value === 'object' ? JSON.stringify(value) : String(value);
|
|
62
|
+
printField(` ${key}`, display);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
catch (err) {
|
|
68
|
+
console.log(error(`Failed to fetch test run: ${formatError(err)}`));
|
|
69
|
+
process.exit(1);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
//# sourceMappingURL=info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../../../../src/cli/commands/test/runs/info.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEtF,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,UAAU;CACjB,CAAC;AAEF,SAAS,UAAU,CAAC,KAAa,EAAE,KAAgC;IACjE,MAAM,OAAO,GAAG,KAAK,IAAI,GAAG,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,IAAI,OAAO,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,oCAAoC,CAAC;KACjD,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;KAC1C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAC/B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAClC,aAAa,CAAC,MAAM,CAAC,CAAC;QAEtB,MAAM,GAAG,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,qBAAqB,KAAK,EAAE,CAAC,CAGtE,CAAC;QAEF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,mBAAmB,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;QAE/D,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;QACxC,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QAChF,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC;QAClD,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,UAAU,CAAC,UAAU,EAAE,cAAc,CAAC,GAAG,CAAC,gBAAsC,CAAC,CAAC,CAAC;QACnF,UAAU,CAAC,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACnB,UAAU,CAAC,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;YACrB,UAAU,CAAC,WAAW,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7C,CAAC;QAED,aAAa;QACb,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,IAAI,SAAS,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,iBAAiB;QACjB,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC;QAChD,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,IAAI,UAAU,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACxD,MAAM,GAAG,GAAG,UAAqC,CAAC;YAClD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBAC1C,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAClF,UAAU,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/commands/test/runs/list.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,eAAO,MAAM,WAAW,SAiIpB,CAAC"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* qa-use test runs list - List test run history
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from 'commander';
|
|
5
|
+
import { apiCall, paginationQuery, requireApiKey } from '../../../lib/api-helpers.js';
|
|
6
|
+
import { loadConfig } from '../../../lib/config.js';
|
|
7
|
+
import { error, formatError, warning } from '../../../lib/output.js';
|
|
8
|
+
import { formatDuration, formatStatus, formatTimestamp, printTable, truncate, } from '../../../lib/table.js';
|
|
9
|
+
export const listCommand = new Command('list')
|
|
10
|
+
.description('List test run history')
|
|
11
|
+
.argument('[test-name]', 'Filter by test name (optional)')
|
|
12
|
+
.option('--id <uuid>', 'Filter by test ID')
|
|
13
|
+
.option('--status <status>', 'Filter by run status (pending, running, passed, failed, cancelled, timeout)')
|
|
14
|
+
.option('--limit <n>', 'Limit results (default: 20)', '20')
|
|
15
|
+
.option('--offset <n>', 'Skip N results', '0')
|
|
16
|
+
.option('--json', 'Output as JSON')
|
|
17
|
+
.action(async (testName, options) => {
|
|
18
|
+
try {
|
|
19
|
+
const config = await loadConfig();
|
|
20
|
+
requireApiKey(config);
|
|
21
|
+
// Resolve test name to ID if provided
|
|
22
|
+
let testId = options.id;
|
|
23
|
+
let testDisplayName;
|
|
24
|
+
if (testName && !testId) {
|
|
25
|
+
// Search for test by name via API
|
|
26
|
+
const testsData = (await apiCall(config, 'GET', '/api/v1/tests', {
|
|
27
|
+
query: { query: testName, limit: '10' },
|
|
28
|
+
}));
|
|
29
|
+
const exactMatch = testsData.find((t) => t.name === testName);
|
|
30
|
+
const partialMatches = testsData.filter((t) => t.name.toLowerCase().includes(testName.toLowerCase()));
|
|
31
|
+
if (exactMatch) {
|
|
32
|
+
testId = exactMatch.id;
|
|
33
|
+
testDisplayName = exactMatch.name;
|
|
34
|
+
}
|
|
35
|
+
else if (partialMatches.length === 1) {
|
|
36
|
+
testId = partialMatches[0].id;
|
|
37
|
+
testDisplayName = partialMatches[0].name;
|
|
38
|
+
}
|
|
39
|
+
else if (partialMatches.length > 1) {
|
|
40
|
+
console.log(error(`Multiple tests match "${testName}":`));
|
|
41
|
+
for (const t of partialMatches.slice(0, 5)) {
|
|
42
|
+
console.log(` • ${t.name} (${t.id})`);
|
|
43
|
+
}
|
|
44
|
+
console.log('\nUse --id <uuid> to specify exactly.');
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
console.log(error(`No test found matching "${testName}"`));
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// Build query params
|
|
53
|
+
const query = {
|
|
54
|
+
...paginationQuery(options),
|
|
55
|
+
};
|
|
56
|
+
if (testId)
|
|
57
|
+
query.test_id = testId;
|
|
58
|
+
if (options.status)
|
|
59
|
+
query.run_status = options.status;
|
|
60
|
+
// Fetch test runs
|
|
61
|
+
const runs = (await apiCall(config, 'GET', '/api/v1/test-runs', { query }));
|
|
62
|
+
// Define columns
|
|
63
|
+
const columns = [
|
|
64
|
+
{ key: 'id', header: 'ID', width: 36 },
|
|
65
|
+
{ key: 'test_id', header: 'TEST ID', width: 36 },
|
|
66
|
+
{
|
|
67
|
+
key: 'run_status',
|
|
68
|
+
header: 'STATUS',
|
|
69
|
+
width: 11,
|
|
70
|
+
format: (v) => formatStatus(String(v ?? '-')),
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
key: 'duration_seconds',
|
|
74
|
+
header: 'DURATION',
|
|
75
|
+
width: 10,
|
|
76
|
+
format: (v) => formatDuration(v),
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
key: 'created_at',
|
|
80
|
+
header: 'CREATED',
|
|
81
|
+
width: 19,
|
|
82
|
+
format: (v) => formatTimestamp(String(v ?? '')),
|
|
83
|
+
},
|
|
84
|
+
];
|
|
85
|
+
// If responses include test_name, show it instead of test_id
|
|
86
|
+
if (runs.length > 0 && runs[0].test_name) {
|
|
87
|
+
columns[1] = {
|
|
88
|
+
key: 'test_name',
|
|
89
|
+
header: 'TEST',
|
|
90
|
+
width: 30,
|
|
91
|
+
format: (v) => truncate(String(v ?? '-'), 30),
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
// Title
|
|
95
|
+
const limit = Number.parseInt(options.limit, 10);
|
|
96
|
+
const offset = Number.parseInt(options.offset, 10);
|
|
97
|
+
let title;
|
|
98
|
+
if (testDisplayName) {
|
|
99
|
+
title = `Test Runs for: ${testDisplayName} (${runs.length} run${runs.length === 1 ? '' : 's'})`;
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
title = `Test Runs (${runs.length} result${runs.length === 1 ? '' : 's'})`;
|
|
103
|
+
}
|
|
104
|
+
// Empty message
|
|
105
|
+
let emptyMessage;
|
|
106
|
+
if (testId) {
|
|
107
|
+
emptyMessage = warning(`No runs found for test${testDisplayName ? ` "${testDisplayName}"` : ''}`);
|
|
108
|
+
}
|
|
109
|
+
else if (options.status) {
|
|
110
|
+
emptyMessage = warning(`No runs found with status "${options.status}"`);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
emptyMessage = warning('No test runs found');
|
|
114
|
+
}
|
|
115
|
+
printTable(columns, runs, {
|
|
116
|
+
json: options.json,
|
|
117
|
+
title,
|
|
118
|
+
emptyMessage,
|
|
119
|
+
limit,
|
|
120
|
+
offset,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
catch (err) {
|
|
124
|
+
console.log(error(`Failed to list test runs: ${formatError(err)}`));
|
|
125
|
+
process.exit(1);
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../../src/cli/commands/test/runs/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/commands/test/runs/logs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyBpC,eAAO,MAAM,WAAW,SAqEpB,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* qa-use test runs logs - Fetch console/network logs for a test run
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from 'commander';
|
|
5
|
+
import { apiCall, requireApiKey } from '../../../lib/api-helpers.js';
|
|
6
|
+
import { loadConfig } from '../../../lib/config.js';
|
|
7
|
+
import { error, formatError, warning } from '../../../lib/output.js';
|
|
8
|
+
const colors = {
|
|
9
|
+
reset: '\x1b[0m',
|
|
10
|
+
gray: '\x1b[90m',
|
|
11
|
+
cyan: '\x1b[36m',
|
|
12
|
+
yellow: '\x1b[33m',
|
|
13
|
+
red: '\x1b[31m',
|
|
14
|
+
};
|
|
15
|
+
function formatLogLevel(level) {
|
|
16
|
+
switch (level) {
|
|
17
|
+
case 'error':
|
|
18
|
+
return `${colors.red}ERROR${colors.reset}`;
|
|
19
|
+
case 'warn':
|
|
20
|
+
case 'warning':
|
|
21
|
+
return `${colors.yellow}WARN ${colors.reset}`;
|
|
22
|
+
default:
|
|
23
|
+
return `${colors.gray}${level.toUpperCase().padEnd(5)}${colors.reset}`;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export const logsCommand = new Command('logs')
|
|
27
|
+
.description('Fetch console or network logs for a test run')
|
|
28
|
+
.argument('<run-id>', 'Test run ID (UUID)')
|
|
29
|
+
.option('--type <type>', 'Log type: console or network (default: console)', 'console')
|
|
30
|
+
.option('--json', 'Output as JSON')
|
|
31
|
+
.action(async (runId, options) => {
|
|
32
|
+
try {
|
|
33
|
+
const config = await loadConfig();
|
|
34
|
+
requireApiKey(config);
|
|
35
|
+
const query = {};
|
|
36
|
+
if (options.type)
|
|
37
|
+
query.type = options.type;
|
|
38
|
+
const data = (await apiCall(config, 'GET', `/api/v1/test-runs/${runId}/logs`, {
|
|
39
|
+
query,
|
|
40
|
+
}));
|
|
41
|
+
if (options.json) {
|
|
42
|
+
console.log(JSON.stringify(data, null, 2));
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
// Handle both array and object responses
|
|
46
|
+
const logs = Array.isArray(data)
|
|
47
|
+
? data
|
|
48
|
+
: data.logs
|
|
49
|
+
? data.logs
|
|
50
|
+
: [];
|
|
51
|
+
if (logs.length === 0) {
|
|
52
|
+
console.log(warning(`No ${options.type} logs found for run ${runId}`));
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
console.log(`${colors.cyan}${options.type === 'network' ? 'Network' : 'Console'} Logs${colors.reset} (${logs.length} entries)\n`);
|
|
56
|
+
for (const entry of logs) {
|
|
57
|
+
if (typeof entry === 'string') {
|
|
58
|
+
console.log(entry);
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
const log = entry;
|
|
62
|
+
if (options.type === 'network') {
|
|
63
|
+
// Network log format
|
|
64
|
+
const method = log.method ?? 'GET';
|
|
65
|
+
const url = log.url ?? '';
|
|
66
|
+
const status = log.status ?? '';
|
|
67
|
+
const timestamp = log.timestamp
|
|
68
|
+
? `${colors.gray}${new Date(String(log.timestamp)).toISOString().slice(11, 23)}${colors.reset} `
|
|
69
|
+
: '';
|
|
70
|
+
console.log(`${timestamp}${method} ${status} ${url}`);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
// Console log format
|
|
74
|
+
const level = formatLogLevel(String(log.level ?? log.type ?? 'log'));
|
|
75
|
+
const message = log.message ?? log.text ?? '';
|
|
76
|
+
const timestamp = log.timestamp
|
|
77
|
+
? `${colors.gray}${new Date(String(log.timestamp)).toISOString().slice(11, 23)}${colors.reset} `
|
|
78
|
+
: '';
|
|
79
|
+
console.log(`${timestamp}${level} ${message}`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
catch (err) {
|
|
84
|
+
console.log(error(`Failed to fetch logs: ${formatError(err)}`));
|
|
85
|
+
process.exit(1);
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
//# sourceMappingURL=logs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../../../../src/cli/commands/test/runs/logs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"steps.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/commands/test/runs/steps.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,eAAO,MAAM,YAAY,SA4GrB,CAAC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* qa-use test runs steps - Show step-by-step execution details
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from 'commander';
|
|
5
|
+
import { apiCall, requireApiKey } from '../../../lib/api-helpers.js';
|
|
6
|
+
import { loadConfig } from '../../../lib/config.js';
|
|
7
|
+
import { error, formatError } from '../../../lib/output.js';
|
|
8
|
+
import { formatDuration, formatStatus, printTable, truncate, } from '../../../lib/table.js';
|
|
9
|
+
const colors = {
|
|
10
|
+
reset: '\x1b[0m',
|
|
11
|
+
gray: '\x1b[90m',
|
|
12
|
+
red: '\x1b[31m',
|
|
13
|
+
};
|
|
14
|
+
export const stepsCommand = new Command('steps')
|
|
15
|
+
.description('Show step-by-step execution details for a test run')
|
|
16
|
+
.argument('<run-id>', 'Test run ID (UUID)')
|
|
17
|
+
.option('--json', 'Output as JSON')
|
|
18
|
+
.option('--verbose', 'Show full step details including logs and errors')
|
|
19
|
+
.action(async (runId, options) => {
|
|
20
|
+
try {
|
|
21
|
+
const config = await loadConfig();
|
|
22
|
+
requireApiKey(config);
|
|
23
|
+
const data = (await apiCall(config, 'GET', `/api/v1/test-runs/${runId}/steps`));
|
|
24
|
+
// Handle both array and object responses
|
|
25
|
+
const steps = Array.isArray(data)
|
|
26
|
+
? data
|
|
27
|
+
: data.steps
|
|
28
|
+
? data.steps
|
|
29
|
+
: [];
|
|
30
|
+
if (options.json) {
|
|
31
|
+
console.log(JSON.stringify(steps, null, 2));
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const rows = steps.map((step, idx) => ({
|
|
35
|
+
...step,
|
|
36
|
+
_index: step.step_index ?? step.index ?? idx + 1,
|
|
37
|
+
}));
|
|
38
|
+
const columns = [
|
|
39
|
+
{
|
|
40
|
+
key: '_index',
|
|
41
|
+
header: 'STEP#',
|
|
42
|
+
width: 6,
|
|
43
|
+
format: (v) => String(v ?? '-'),
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
key: 'name',
|
|
47
|
+
header: 'ACTION',
|
|
48
|
+
width: 40,
|
|
49
|
+
format: (v) => truncate(String(v ?? '-'), 40),
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
key: 'status',
|
|
53
|
+
header: 'STATUS',
|
|
54
|
+
width: 11,
|
|
55
|
+
format: (v) => formatStatus(String(v ?? '-')),
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
key: 'duration',
|
|
59
|
+
header: 'DURATION',
|
|
60
|
+
width: 10,
|
|
61
|
+
format: (v) => {
|
|
62
|
+
// Handle both seconds and milliseconds
|
|
63
|
+
const num = v;
|
|
64
|
+
return formatDuration(num);
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
];
|
|
68
|
+
if (options.verbose) {
|
|
69
|
+
columns.push({
|
|
70
|
+
key: 'error',
|
|
71
|
+
header: 'ERROR',
|
|
72
|
+
width: 50,
|
|
73
|
+
format: (v) => {
|
|
74
|
+
if (!v)
|
|
75
|
+
return '-';
|
|
76
|
+
return `${colors.red}${truncate(String(v), 50)}${colors.reset}`;
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
printTable(columns, rows, {
|
|
81
|
+
json: false,
|
|
82
|
+
title: `Steps for run ${runId}`,
|
|
83
|
+
emptyMessage: `No steps found for run ${runId}`,
|
|
84
|
+
});
|
|
85
|
+
// In verbose mode, print full error details after the table
|
|
86
|
+
if (options.verbose) {
|
|
87
|
+
for (const step of rows) {
|
|
88
|
+
const stepError = step.error ?? step.error_message;
|
|
89
|
+
const logs = step.logs;
|
|
90
|
+
if (stepError || (logs && logs.length > 0)) {
|
|
91
|
+
console.log(`\n${colors.gray}── Step ${step._index}: ${step.name ?? 'unknown'} ──${colors.reset}`);
|
|
92
|
+
if (stepError) {
|
|
93
|
+
console.log(` ${colors.red}Error:${colors.reset} ${stepError}`);
|
|
94
|
+
}
|
|
95
|
+
if (logs && logs.length > 0) {
|
|
96
|
+
console.log(` ${colors.gray}Logs:${colors.reset}`);
|
|
97
|
+
for (const log of logs) {
|
|
98
|
+
console.log(` ${colors.gray}${log}${colors.reset}`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
catch (err) {
|
|
106
|
+
console.log(error(`Failed to fetch steps: ${formatError(err)}`));
|
|
107
|
+
process.exit(1);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
//# sourceMappingURL=steps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"steps.js","sourceRoot":"","sources":["../../../../../../src/cli/commands/test/runs/steps.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/test/runs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/test/runs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgDpC,eAAO,MAAM,WAAW,SAiHpB,CAAC"}
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
* qa-use test runs - List test run history
|
|
3
3
|
*/
|
|
4
4
|
import { Command } from 'commander';
|
|
5
|
-
import {
|
|
6
|
-
import { loadConfig } from '../../lib/config.js';
|
|
5
|
+
import { createApiClient, loadConfig } from '../../lib/config.js';
|
|
7
6
|
import { error, formatError, warning } from '../../lib/output.js';
|
|
8
7
|
// ANSI color codes
|
|
9
8
|
const colors = {
|
|
@@ -62,8 +61,7 @@ export const runsCommand = new Command('runs')
|
|
|
62
61
|
console.log(' Run `qa-use setup` to configure');
|
|
63
62
|
process.exit(1);
|
|
64
63
|
}
|
|
65
|
-
const client =
|
|
66
|
-
client.setApiKey(config.api_key);
|
|
64
|
+
const client = createApiClient(config);
|
|
67
65
|
// Resolve test name to ID if provided
|
|
68
66
|
let testId = options.id;
|
|
69
67
|
let testDisplayName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../../../../../src/cli/commands/test/runs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../../../../../src/cli/commands/test/runs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAElE,mBAAmB;AACnB,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,UAAU;IACjB,GAAG,EAAE,UAAU;IACf,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,UAAU;CACjB,CAAC;AAEF,SAAS,YAAY,CAAC,MAAc;IAClC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAChC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ;YACX,OAAO,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QACnD,KAAK,QAAQ;YACX,OAAO,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QACjD,KAAK,SAAS,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QACpD,KAAK,WAAW,CAAC;QACjB,KAAK,SAAS,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,GAAG,MAAM,CAAC,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAClD;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,OAA2B;IACjD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrE,IAAI,OAAO,GAAG,EAAE,EAAE,CAAC;QACjB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACtC,OAAO,GAAG,IAAI,KAAK,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,eAAe,CAAC,SAAiB;IACxC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,uBAAuB,CAAC;KACpC,QAAQ,CAAC,aAAa,EAAE,gCAAgC,CAAC;KACzD,MAAM,CAAC,aAAa,EAAE,mBAAmB,CAAC;KAC1C,MAAM,CACL,mBAAmB,EACnB,6EAA6E,CAC9E;KACA,MAAM,CAAC,aAAa,EAAE,6BAA6B,EAAE,IAAI,CAAC;KAC1D,MAAM,CAAC,cAAc,EAAE,gBAAgB,EAAE,GAAG,CAAC;KAC7C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;IAClC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAElC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAEvC,sCAAsC;QACtC,IAAI,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;QACxB,IAAI,eAAmC,CAAC;QAExC,IAAI,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACxB,mCAAmC;YACnC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YACrE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;YAC1D,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACxC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CACtD,CAAC;YAEF,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC;gBACvB,eAAe,GAAG,UAAU,CAAC,IAAI,CAAC;YACpC,CAAC;iBAAM,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvC,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9B,eAAe,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3C,CAAC;iBAAM,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,yBAAyB,QAAQ,IAAI,CAAC,CAAC,CAAC;gBAC1D,KAAK,MAAM,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;oBAC3C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBACzC,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;gBACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B,QAAQ,GAAG,CAAC,CAAC,CAAC;gBAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,kBAAkB;QAClB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;YACrC,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,OAAO,CAAC,MAAM;YAC1B,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YAClC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;SACrC,CAAC,CAAC;QAEH,cAAc;QACd,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3C,OAAO;QACT,CAAC;QAED,wBAAwB;QACxB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CACT,OAAO,CAAC,yBAAyB,eAAe,CAAC,CAAC,CAAC,KAAK,eAAe,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACnF,CAAC;YACJ,CAAC;iBAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,8BAA8B,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACxE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO;QACT,CAAC;QAED,SAAS;QACT,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CACT,kBAAkB,eAAe,KAAK,IAAI,CAAC,MAAM,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAC1F,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,MAAM,UAAU,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;QACpF,CAAC;QAED,eAAe;QACf,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAE5B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC/C,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YACzD,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAEnD,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,SAAS,GAAG,WAAW,GAAG,UAAU,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,kBAAkB;QAClB,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;YAChD,OAAO,CAAC,GAAG,CACT,KAAK,MAAM,CAAC,IAAI,gBAAgB,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,MAAM,CAAC,KAAK,EAAE,CACxH,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/test/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/test/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,eAAO,MAAM,aAAa,SAmFtB,CAAC"}
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
* qa-use test schema - View test definition schema
|
|
3
3
|
*/
|
|
4
4
|
import { Command } from 'commander';
|
|
5
|
-
import {
|
|
6
|
-
import { loadConfig } from '../../lib/config.js';
|
|
5
|
+
import { createApiClient, loadConfig } from '../../lib/config.js';
|
|
7
6
|
import { error, formatError, info } from '../../lib/output.js';
|
|
8
7
|
export const schemaCommand = new Command('schema')
|
|
9
8
|
.description('View test definition schema')
|
|
@@ -20,10 +19,7 @@ Examples:
|
|
|
20
19
|
try {
|
|
21
20
|
const config = await loadConfig();
|
|
22
21
|
// Initialize API client
|
|
23
|
-
const client =
|
|
24
|
-
if (config.api_key) {
|
|
25
|
-
client.setApiKey(config.api_key);
|
|
26
|
-
}
|
|
22
|
+
const client = createApiClient(config);
|
|
27
23
|
// Fetch schema
|
|
28
24
|
const schema = await client.getTestDefinitionSchema();
|
|
29
25
|
let output = schema;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../../src/cli/commands/test/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../../src/cli/commands/test/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/test/sync.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,eAAO,MAAM,WAAW,SAAiE,CAAC;
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/test/sync.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,eAAO,MAAM,WAAW,SAAiE,CAAC;AAoQ1F;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKjG"}
|
|
@@ -5,9 +5,8 @@ import * as fs from 'node:fs/promises';
|
|
|
5
5
|
import * as path from 'node:path';
|
|
6
6
|
import { Command } from 'commander';
|
|
7
7
|
import * as yaml from 'yaml';
|
|
8
|
-
import { ApiClient } from '../../../../lib/api/index.js';
|
|
9
8
|
import { toSafeFilename } from '../../../utils/strings.js';
|
|
10
|
-
import { loadConfig } from '../../lib/config.js';
|
|
9
|
+
import { createApiClient, loadConfig } from '../../lib/config.js';
|
|
11
10
|
import { discoverTests, loadTestDefinition } from '../../lib/loader.js';
|
|
12
11
|
import { error, formatError, info, success, warning } from '../../lib/output.js';
|
|
13
12
|
// Parent command
|
|
@@ -29,8 +28,7 @@ const pullCommand = new Command('pull')
|
|
|
29
28
|
process.exit(1);
|
|
30
29
|
}
|
|
31
30
|
// Initialize API client
|
|
32
|
-
const client =
|
|
33
|
-
client.setApiKey(config.api_key);
|
|
31
|
+
const client = createApiClient(config);
|
|
34
32
|
const testDir = config.test_directory || './qa-tests';
|
|
35
33
|
await pullFromCloud(client, testDir, {
|
|
36
34
|
dryRun: options.dryRun,
|
|
@@ -68,8 +66,7 @@ const pushCommand = new Command('push')
|
|
|
68
66
|
process.exit(1);
|
|
69
67
|
}
|
|
70
68
|
// Initialize API client
|
|
71
|
-
const client =
|
|
72
|
-
client.setApiKey(config.api_key);
|
|
69
|
+
const client = createApiClient(config);
|
|
73
70
|
const testDir = config.test_directory || './qa-tests';
|
|
74
71
|
await pushToCloud(client, testDir, {
|
|
75
72
|
dryRun: options.dryRun,
|