@e2edev/e2e 0.5.0 → 0.6.0
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 +64 -25
- package/dist/agent/act.d.ts +2 -2
- package/dist/agent/act.js +14 -37
- package/dist/agent/act.js.map +1 -1
- package/dist/agent/actions.d.ts +2 -2
- package/dist/agent/actions.d.ts.map +1 -1
- package/dist/agent/actions.js +1 -1
- package/dist/agent/ai-sdk.d.ts +1 -2
- package/dist/agent/ai-sdk.d.ts.map +1 -1
- package/dist/agent/ai-sdk.js +1 -2
- package/dist/agent/ai-sdk.js.map +1 -1
- package/dist/agent/default-agent.d.ts +10 -32
- package/dist/agent/default-agent.d.ts.map +1 -1
- package/dist/agent/default-agent.js +6 -13
- package/dist/agent/default-agent.js.map +1 -1
- package/dist/agent/derived.d.ts +1 -1
- package/dist/agent/derived.js +1 -1
- package/dist/agent/error.d.ts +2 -4
- package/dist/agent/error.d.ts.map +1 -1
- package/dist/agent/error.js +3 -5
- package/dist/agent/error.js.map +1 -1
- package/dist/agent/executor.d.ts +23 -52
- package/dist/agent/executor.d.ts.map +1 -1
- package/dist/agent/executor.js +1 -2
- package/dist/agent/executor.js.map +1 -1
- package/dist/agent/index.d.ts +1 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +10 -7
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/invocation.d.ts +8 -6
- package/dist/agent/invocation.d.ts.map +1 -1
- package/dist/agent/invocation.js +9 -4
- package/dist/agent/invocation.js.map +1 -1
- package/dist/agent/ledger.d.ts +17 -12
- package/dist/agent/ledger.d.ts.map +1 -1
- package/dist/agent/ledger.js +6 -9
- package/dist/agent/ledger.js.map +1 -1
- package/dist/agent/model/adapter.d.ts +7 -4
- package/dist/agent/model/adapter.d.ts.map +1 -1
- package/dist/agent/model/adapter.js +2 -2
- package/dist/agent/model/adapter.js.map +1 -1
- package/dist/agent/model/router.d.ts +1 -1
- package/dist/agent/model/router.d.ts.map +1 -1
- package/dist/agent/model/router.js +1 -1
- package/dist/agent/model/router.js.map +1 -1
- package/dist/agent/model/sdk.d.ts +11 -1
- package/dist/agent/model/sdk.d.ts.map +1 -1
- package/dist/agent/model/sdk.js +54 -10
- package/dist/agent/model/sdk.js.map +1 -1
- package/dist/agent/observation.d.ts +7 -7
- package/dist/agent/observation.d.ts.map +1 -1
- package/dist/agent/observation.js +7 -7
- package/dist/agent/observation.js.map +1 -1
- package/dist/agent/phases.d.ts +3 -3
- package/dist/agent/phases.d.ts.map +1 -1
- package/dist/agent/phases.js +4 -4
- package/dist/agent/phases.js.map +1 -1
- package/dist/agent/primitives.d.ts +4 -25
- package/dist/agent/primitives.d.ts.map +1 -1
- package/dist/agent/primitives.js +3 -36
- package/dist/agent/primitives.js.map +1 -1
- package/dist/agent/prompts.d.ts +1 -1
- package/dist/agent/prompts.js +1 -1
- package/dist/agent/protocol.d.ts +2 -3
- package/dist/agent/protocol.d.ts.map +1 -1
- package/dist/agent/protocol.js +2 -3
- package/dist/agent/protocol.js.map +1 -1
- package/dist/agent/public.d.ts +8 -10
- package/dist/agent/public.d.ts.map +1 -1
- package/dist/agent/public.js +7 -8
- package/dist/agent/public.js.map +1 -1
- package/dist/agent/replay.d.ts +2 -2
- package/dist/agent/replay.d.ts.map +1 -1
- package/dist/agent/replay.js +1 -1
- package/dist/agent/secrets.d.ts +3 -3
- package/dist/agent/secrets.d.ts.map +1 -1
- package/dist/agent/secrets.js +4 -4
- package/dist/agent/secrets.js.map +1 -1
- package/dist/agent/step-cache.d.ts +1 -1
- package/dist/agent/step-cache.d.ts.map +1 -1
- package/dist/agent/step-cache.js +7 -1
- package/dist/agent/step-cache.js.map +1 -1
- package/dist/agent/tool-loop.d.ts +9 -33
- package/dist/agent/tool-loop.d.ts.map +1 -1
- package/dist/agent/tool-loop.js +15 -38
- package/dist/agent/tool-loop.js.map +1 -1
- package/dist/agent/tool.d.ts +4 -5
- package/dist/agent/tool.d.ts.map +1 -1
- package/dist/agent/tool.js +2 -7
- package/dist/agent/tool.js.map +1 -1
- package/dist/cache/anchors.d.ts +2 -2
- package/dist/cache/anchors.d.ts.map +1 -1
- package/dist/cache/anchors.js +1 -1
- package/dist/cache/context.d.ts +6 -1
- package/dist/cache/context.d.ts.map +1 -1
- package/dist/cache/context.js +2 -1
- package/dist/cache/context.js.map +1 -1
- package/dist/cache/decide.d.ts +1 -1
- package/dist/cache/decide.js +1 -1
- package/dist/cache/identity.d.ts +9 -9
- package/dist/cache/identity.d.ts.map +1 -1
- package/dist/cache/identity.js +6 -6
- package/dist/cache/identity.js.map +1 -1
- package/dist/cache/recorder.d.ts +4 -2
- package/dist/cache/recorder.d.ts.map +1 -1
- package/dist/cache/recorder.js +10 -1
- package/dist/cache/recorder.js.map +1 -1
- package/dist/cache/relocate.d.ts +2 -2
- package/dist/cache/relocate.d.ts.map +1 -1
- package/dist/cache/relocate.js +1 -1
- package/dist/cache/store.d.ts +1 -1
- package/dist/cache/store.js +1 -1
- package/dist/cache/trace.d.ts +16 -1
- package/dist/cache/trace.d.ts.map +1 -1
- package/dist/cache/trace.js +22 -1
- package/dist/cache/trace.js.map +1 -1
- package/dist/cli/bin.js +9 -1
- package/dist/cli/bin.js.map +1 -1
- package/dist/cli/cache.d.ts +25 -0
- package/dist/cli/cache.d.ts.map +1 -0
- package/dist/cli/cache.js +249 -0
- package/dist/cli/cache.js.map +1 -0
- package/dist/cli/docs-url.d.ts +3 -0
- package/dist/cli/docs-url.d.ts.map +1 -0
- package/dist/cli/docs-url.js +3 -0
- package/dist/cli/docs-url.js.map +1 -0
- package/dist/cli/guide.d.ts +4 -0
- package/dist/cli/guide.d.ts.map +1 -0
- package/dist/cli/guide.js +16 -0
- package/dist/cli/guide.js.map +1 -0
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +211 -42
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/agent-skill.d.ts +34 -0
- package/dist/cli/init/agent-skill.d.ts.map +1 -0
- package/dist/cli/init/agent-skill.js +44 -0
- package/dist/cli/init/agent-skill.js.map +1 -0
- package/dist/cli/init/{backends.d.ts → engines.d.ts} +39 -32
- package/dist/cli/init/engines.d.ts.map +1 -0
- package/dist/cli/init/{backends.js → engines.js} +43 -34
- package/dist/cli/init/engines.js.map +1 -0
- package/dist/cli/init/package.d.ts +19 -3
- package/dist/cli/init/package.d.ts.map +1 -1
- package/dist/cli/init/package.js +20 -20
- package/dist/cli/init/package.js.map +1 -1
- package/dist/cli/init/scaffold.d.ts +3 -3
- package/dist/cli/init/scaffold.d.ts.map +1 -1
- package/dist/cli/init/scaffold.js +13 -12
- package/dist/cli/init/scaffold.js.map +1 -1
- package/dist/cli/init.d.ts +14 -2
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +104 -25
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/signals.d.ts +5 -2
- package/dist/cli/signals.d.ts.map +1 -1
- package/dist/cli/signals.js +9 -3
- package/dist/cli/signals.js.map +1 -1
- package/dist/cli/skill.d.ts +16 -0
- package/dist/cli/skill.d.ts.map +1 -0
- package/dist/cli/skill.js +57 -0
- package/dist/cli/skill.js.map +1 -0
- package/dist/collect/collect.d.ts +40 -3
- package/dist/collect/collect.d.ts.map +1 -1
- package/dist/collect/collect.js +142 -19
- package/dist/collect/collect.js.map +1 -1
- package/dist/collect/registry.d.ts +1 -1
- package/dist/collect/registry.d.ts.map +1 -1
- package/dist/collect/registry.js +2 -2
- package/dist/collect/registry.js.map +1 -1
- package/dist/collect/select.d.ts +1 -1
- package/dist/collect/select.d.ts.map +1 -1
- package/dist/collect/select.js +81 -8
- package/dist/collect/select.js.map +1 -1
- package/dist/config/agent.d.ts +14 -2
- package/dist/config/agent.d.ts.map +1 -1
- package/dist/config/agent.js +36 -11
- package/dist/config/agent.js.map +1 -1
- package/dist/config/app.d.ts +76 -19
- package/dist/config/app.d.ts.map +1 -1
- package/dist/config/app.js +159 -104
- package/dist/config/app.js.map +1 -1
- package/dist/config/diagnose.d.ts +15 -0
- package/dist/config/diagnose.d.ts.map +1 -0
- package/dist/config/diagnose.js +122 -0
- package/dist/config/diagnose.js.map +1 -0
- package/dist/config/load.d.ts +9 -1
- package/dist/config/load.d.ts.map +1 -1
- package/dist/config/load.js +35 -3
- package/dist/config/load.js.map +1 -1
- package/dist/config/resolve.d.ts +8 -7
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/resolve.js +73 -40
- package/dist/config/resolve.js.map +1 -1
- package/dist/config/validate.d.ts +6 -2
- package/dist/config/validate.d.ts.map +1 -1
- package/dist/config/validate.js +20 -3
- package/dist/config/validate.js.map +1 -1
- package/dist/credentials.d.ts +1 -1
- package/dist/credentials.d.ts.map +1 -1
- package/dist/credentials.js +1 -1
- package/dist/credentials.js.map +1 -1
- package/dist/{backend → engine}/contract.d.ts +27 -19
- package/dist/engine/contract.d.ts.map +1 -0
- package/dist/{backend → engine}/contract.js +18 -18
- package/dist/engine/contract.js.map +1 -0
- package/dist/{backend → engine}/index.d.ts +141 -79
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/{backend → engine}/index.js +62 -37
- package/dist/engine/index.js.map +1 -0
- package/dist/engine/session.d.ts +23 -0
- package/dist/engine/session.d.ts.map +1 -0
- package/dist/{backend → engine}/session.js +58 -51
- package/dist/engine/session.js.map +1 -0
- package/dist/{backend → engine}/surface.d.ts +11 -11
- package/dist/engine/surface.d.ts.map +1 -0
- package/dist/{backend → engine}/surface.js +2 -2
- package/dist/engine/surface.js.map +1 -0
- package/dist/engine/timing.d.ts.map +1 -0
- package/dist/engine/timing.js +8 -0
- package/dist/engine/timing.js.map +1 -0
- package/dist/expect/async.d.ts +1 -1
- package/dist/expect/async.d.ts.map +1 -1
- package/dist/expect/async.js +37 -1
- package/dist/expect/async.js.map +1 -1
- package/dist/expect/index.js +1 -1
- package/dist/expect/values.d.ts +1 -1
- package/dist/expect/values.d.ts.map +1 -1
- package/dist/expect/values.js +1 -1
- package/dist/expect/values.js.map +1 -1
- package/dist/index.d.ts +3 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -5
- package/dist/index.js.map +1 -1
- package/dist/internal/brands.d.ts +1 -1
- package/dist/internal/brands.d.ts.map +1 -1
- package/dist/internal/brands.js +1 -1
- package/dist/internal/brands.js.map +1 -1
- package/dist/internal/errors.d.ts +37 -19
- package/dist/internal/errors.d.ts.map +1 -1
- package/dist/internal/errors.js +94 -44
- package/dist/internal/errors.js.map +1 -1
- package/dist/internal/globs.d.ts +2 -2
- package/dist/internal/globs.d.ts.map +1 -1
- package/dist/internal/globs.js +2 -2
- package/dist/internal/globs.js.map +1 -1
- package/dist/internal/ids.d.ts +3 -3
- package/dist/internal/ids.d.ts.map +1 -1
- package/dist/internal/ids.js +3 -3
- package/dist/internal/ids.js.map +1 -1
- package/dist/internal/node-version.d.ts +10 -0
- package/dist/internal/node-version.d.ts.map +1 -0
- package/dist/internal/node-version.js +28 -0
- package/dist/internal/node-version.js.map +1 -0
- package/dist/internal/objects.d.ts +21 -0
- package/dist/internal/objects.d.ts.map +1 -0
- package/dist/internal/objects.js +14 -0
- package/dist/internal/objects.js.map +1 -0
- package/dist/internal/package-manager.d.ts +10 -0
- package/dist/internal/package-manager.d.ts.map +1 -0
- package/dist/internal/package-manager.js +43 -0
- package/dist/internal/package-manager.js.map +1 -0
- package/dist/internal/redact.d.ts +1 -1
- package/dist/internal/redact.d.ts.map +1 -1
- package/dist/internal/redact.js +1 -1
- package/dist/internal/redact.js.map +1 -1
- package/dist/internal/suggest.d.ts +16 -0
- package/dist/internal/suggest.d.ts.map +1 -0
- package/dist/internal/suggest.js +61 -0
- package/dist/internal/suggest.js.map +1 -0
- package/dist/internal/text.d.ts +1 -1
- package/dist/internal/text.d.ts.map +1 -1
- package/dist/internal/text.js +1 -1
- package/dist/internal/text.js.map +1 -1
- package/dist/internal/urls.d.ts +3 -3
- package/dist/internal/urls.d.ts.map +1 -1
- package/dist/internal/urls.js +8 -3
- package/dist/internal/urls.js.map +1 -1
- package/dist/locator/engine.d.ts +7 -7
- package/dist/locator/engine.d.ts.map +1 -1
- package/dist/locator/engine.js +14 -14
- package/dist/locator/engine.js.map +1 -1
- package/dist/locator/expression.d.ts +5 -3
- package/dist/locator/expression.d.ts.map +1 -1
- package/dist/locator/expression.js +25 -5
- package/dist/locator/expression.js.map +1 -1
- package/dist/locator/screen.d.ts +1 -1
- package/dist/locator/screen.d.ts.map +1 -1
- package/dist/locator/screen.js +3 -3
- package/dist/locator/screen.js.map +1 -1
- package/dist/report/build.d.ts +10 -9
- package/dist/report/build.d.ts.map +1 -1
- package/dist/report/build.js +25 -22
- package/dist/report/build.js.map +1 -1
- package/dist/report/code-frame.d.ts +8 -4
- package/dist/report/code-frame.d.ts.map +1 -1
- package/dist/report/code-frame.js +23 -18
- package/dist/report/code-frame.js.map +1 -1
- package/dist/report/debug-steps.js +1 -1
- package/dist/report/debug-steps.js.map +1 -1
- package/dist/report/format.d.ts +73 -0
- package/dist/report/format.d.ts.map +1 -0
- package/dist/report/format.js +147 -0
- package/dist/report/format.js.map +1 -0
- package/dist/report/junit.d.ts +1 -1
- package/dist/report/junit.d.ts.map +1 -1
- package/dist/report/junit.js +1 -1
- package/dist/report/junit.js.map +1 -1
- package/dist/report/list.d.ts +96 -47
- package/dist/report/list.d.ts.map +1 -1
- package/dist/report/list.js +489 -244
- package/dist/report/list.js.map +1 -1
- package/dist/report/live-window.d.ts +28 -0
- package/dist/report/live-window.d.ts.map +1 -0
- package/dist/report/live-window.js +102 -0
- package/dist/report/live-window.js.map +1 -0
- package/dist/report/write.d.ts +1 -1
- package/dist/report/write.d.ts.map +1 -1
- package/dist/report/write.js +1 -1
- package/dist/report/write.js.map +1 -1
- package/dist/run/budget.d.ts +2 -2
- package/dist/run/budget.js +2 -2
- package/dist/run/declared-processes.d.ts +30 -0
- package/dist/run/declared-processes.d.ts.map +1 -0
- package/dist/run/declared-processes.js +61 -0
- package/dist/run/declared-processes.js.map +1 -0
- package/dist/run/events.d.ts +30 -2
- package/dist/run/events.d.ts.map +1 -1
- package/dist/run/events.js.map +1 -1
- package/dist/run/execute.d.ts +19 -16
- package/dist/run/execute.d.ts.map +1 -1
- package/dist/run/execute.js +65 -67
- package/dist/run/execute.js.map +1 -1
- package/dist/run/fixture-recording.d.ts +10 -4
- package/dist/run/fixture-recording.d.ts.map +1 -1
- package/dist/run/fixture-recording.js +19 -6
- package/dist/run/fixture-recording.js.map +1 -1
- package/dist/run/fixtures.d.ts +2 -2
- package/dist/run/fixtures.d.ts.map +1 -1
- package/dist/run/fixtures.js +72 -44
- package/dist/run/fixtures.js.map +1 -1
- package/dist/run/in-process.d.ts +1 -1
- package/dist/run/in-process.js +1 -1
- package/dist/run/managed-process.d.ts +46 -9
- package/dist/run/managed-process.d.ts.map +1 -1
- package/dist/run/managed-process.js +136 -50
- package/dist/run/managed-process.js.map +1 -1
- package/dist/run/realm.d.ts +2 -2
- package/dist/run/realm.js +2 -2
- package/dist/run/runner.d.ts +23 -1
- package/dist/run/runner.d.ts.map +1 -1
- package/dist/run/runner.js +111 -40
- package/dist/run/runner.js.map +1 -1
- package/dist/run/scheduler.d.ts +5 -5
- package/dist/run/scheduler.d.ts.map +1 -1
- package/dist/run/scheduler.js +7 -7
- package/dist/run/scheduler.js.map +1 -1
- package/dist/run/serial.d.ts +10 -2
- package/dist/run/serial.d.ts.map +1 -1
- package/dist/run/serial.js +5 -3
- package/dist/run/serial.js.map +1 -1
- package/dist/run/sessions.d.ts +10 -10
- package/dist/run/sessions.d.ts.map +1 -1
- package/dist/run/sessions.js +11 -11
- package/dist/run/sessions.js.map +1 -1
- package/dist/run/steps.d.ts +3 -3
- package/dist/run/steps.d.ts.map +1 -1
- package/dist/run/steps.js +1 -1
- package/dist/run/steps.js.map +1 -1
- package/dist/run/units.d.ts +1 -1
- package/dist/run/units.js +1 -1
- package/dist/run/worker/entry.d.ts +1 -1
- package/dist/run/worker/entry.js +2 -2
- package/dist/run/worker/entry.js.map +1 -1
- package/dist/run/worker/protocol.d.ts +18 -6
- package/dist/run/worker/protocol.d.ts.map +1 -1
- package/dist/run/worker/protocol.js +1 -1
- package/dist/run/worker/protocol.js.map +1 -1
- package/dist/run/worker/session.d.ts +2 -2
- package/dist/run/worker/session.d.ts.map +1 -1
- package/dist/run/worker/session.js +5 -3
- package/dist/run/worker/session.js.map +1 -1
- package/dist/types.d.ts +58 -41
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -2
- package/package.json +13 -12
- package/skills/e2e/SKILL.md +110 -0
- package/skills/e2e/references/agent.md +210 -0
- package/skills/e2e/references/debugging.md +81 -0
- package/skills/e2e/references/running.md +153 -0
- package/skills/e2e/references/setup.md +238 -0
- package/skills/e2e/references/writing-tests.md +289 -0
- package/dist/backend/contract.d.ts.map +0 -1
- package/dist/backend/contract.js.map +0 -1
- package/dist/backend/index.d.ts.map +0 -1
- package/dist/backend/index.js.map +0 -1
- package/dist/backend/session.d.ts +0 -23
- package/dist/backend/session.d.ts.map +0 -1
- package/dist/backend/session.js.map +0 -1
- package/dist/backend/surface.d.ts.map +0 -1
- package/dist/backend/surface.js.map +0 -1
- package/dist/backend/timing.d.ts.map +0 -1
- package/dist/backend/timing.js +0 -8
- package/dist/backend/timing.js.map +0 -1
- package/dist/cli/init/backends.d.ts.map +0 -1
- package/dist/cli/init/backends.js.map +0 -1
- package/dist/report/live-status.d.ts +0 -51
- package/dist/report/live-status.d.ts.map +0 -1
- package/dist/report/live-status.js +0 -163
- package/dist/report/live-status.js.map +0 -1
- package/dist/run/fixture-legacy.d.ts +0 -36
- package/dist/run/fixture-legacy.d.ts.map +0 -1
- package/dist/run/fixture-legacy.js +0 -143
- package/dist/run/fixture-legacy.js.map +0 -1
- /package/dist/{backend → engine}/timing.d.ts +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"timing.js","sourceRoot":"","sources":["../../src/backend/timing.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,uFAAuF;AACvF,MAAM,UAAU,SAAS,CAAI,IAAqC,EAAE,MAAmB,EAAE,KAAa;IACpG,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,YAAY,CAAC,WAAW,EAAE,GAAG,KAAK,YAAY,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAClH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"backends.d.ts","sourceRoot":"","sources":["../../../src/cli/init/backends.ts"],"names":[],"mappings":"AAAA,iGAAiG;AAIjG,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,sFAAsF;AACtF,wBAAgB,iBAAiB;iBAIvB,MAAM;oBACH,MAAM;mBACP,gCAAgC;;;qBAG9B;;sDAEwC;sBACvC;;;;;;CAMd;yBACiB,wDAAwD;;iBAGhE,YAAY;oBACT,YAAY;mBACb,iBAAiB;;iBACP,oBAAoB,EAAE,MAAM;;;qBAEpC;sEACwD;sBACvD;;;;;;;CAOd;wBACgB;;;;;;;CAOhB;yBACiB,wDAAwD;;iBAGhE,cAAc;oBACX,cAAc;mBACf,iCAAiC;;iBACvB,sBAAsB,EAAE,MAAM;;;;;;yBA+BlC,0BAA0B;GAG3C;AAED,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3E,eAAO,MAAM,kBAAkB,SAA6B,CAAC;AAE7D,2EAA2E;AAC3E,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,SAAS,GAAG,aAAa,CAI7D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"backends.js","sourceRoot":"","sources":["../../../src/cli/init/backends.ts"],"names":[],"mappings":"AAAA,iGAAiG;AAEjG,OAAO,EAAE,MAAM,SAAS,CAAC;AAczB,sFAAsF;AACtF,MAAM,UAAU,iBAAiB;IAC/B,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC;IACvC,OAAO;QACL;YACE,EAAE,EAAE,MAAM;YACV,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,gCAAgC;YACtC,YAAY,EAAE,EAAE;YAChB,OAAO,EAAE,EAAE;YACX,MAAM,EAAE;;sDAEwC;YAChD,OAAO,EAAE;;;;;;CAMd;YACK,UAAU,EAAE,wDAAwD;SACrE;QACD;YACE,EAAE,EAAE,YAAY;YAChB,KAAK,EAAE,YAAY;YACnB,IAAI,EAAE,iBAAiB;YACvB,YAAY,EAAE,EAAE,oBAAoB,EAAE,MAAM,EAAE;YAC9C,OAAO,EAAE,CAAC,kDAAkD,CAAC;YAC7D,MAAM,EAAE;sEACwD;YAChE,OAAO,EAAE;;;;;;;CAOd;YACK,SAAS,EAAE;;;;;;;CAOhB;YACK,UAAU,EAAE,wDAAwD;SACrE;QACD;YACE,EAAE,EAAE,cAAc;YAClB,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,iCAAiC;YACvC,YAAY,EAAE,EAAE,sBAAsB,EAAE,MAAM,EAAE;YAChD,OAAO,EAAE,CAAC,qDAAqD,CAAC;YAChE,MAAM,EAAE,GAAG;gBACT,CAAC,CAAC;;cAEI;gBACN,CAAC,CAAC;;cAEI;YACR,OAAO,EAAE;;;;iBAIE,GAAG,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAC,CAAC,wCAAwC;;CAElH;YACK,SAAS,EAAE,GAAG;gBACZ,CAAC,CAAC;;;;;;CAMT;gBACO,CAAC,CAAC;;;;;;CAMT;YACK,UAAU,EAAE,0BAA0B;SACvC;KAC0C,CAAC;AAChD,CAAC;AAGD,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAA0B,CAAC;AAE7D,2EAA2E;AAC3E,MAAM,UAAU,gBAAgB,CAAC,EAAa;IAC5C,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IACpE,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Live in-progress block for TTY reporters: the currently executing pairs and
|
|
3
|
-
* one progress counter line, repainted below the permanent log. Constructed
|
|
4
|
-
* without a raw control channel it is a no-op, so callers never branch.
|
|
5
|
-
*/
|
|
6
|
-
export declare class LiveStatus {
|
|
7
|
-
private readonly raw;
|
|
8
|
-
/**
|
|
9
|
-
* Entries currently executing, keyed by the caller, in start order. An
|
|
10
|
-
* undefined text counts toward the progress line without rendering a row,
|
|
11
|
-
* for entries whose story streams permanently above the block.
|
|
12
|
-
*/
|
|
13
|
-
private readonly running;
|
|
14
|
-
/** Lines the status block currently occupies below the log. */
|
|
15
|
-
private statusLines;
|
|
16
|
-
/** Planned entries; 0 until the plan is announced. */
|
|
17
|
-
private total;
|
|
18
|
-
/** Entries with a reported result. */
|
|
19
|
-
private done;
|
|
20
|
-
/** Current spinner frame; advanced by the animation timer. */
|
|
21
|
-
private frame;
|
|
22
|
-
private timer;
|
|
23
|
-
constructor(raw: ((text: string) => void) | undefined);
|
|
24
|
-
/** Animates while any entry renders; stopped and unref'd otherwise. */
|
|
25
|
-
private syncTimer;
|
|
26
|
-
/** Announces how many entries the run will execute. */
|
|
27
|
-
plan(total: number): void;
|
|
28
|
-
/** Shows one started entry in the block; undefined counts it invisibly. */
|
|
29
|
-
start(key: string, text: string | undefined): void;
|
|
30
|
-
/** Counts one finished entry and removes it from the block. */
|
|
31
|
-
finish(key: string): void;
|
|
32
|
-
/** Counts one finished entry that never appeared in the block. */
|
|
33
|
-
skip(): void;
|
|
34
|
-
/** Clears the block so permanent log lines can be appended. */
|
|
35
|
-
erase(): void;
|
|
36
|
-
/**
|
|
37
|
-
* Ends the live block for good: entries still running (an interrupt, a
|
|
38
|
-
* crashed worker) are dropped and the spinner timer is cleared, so nothing
|
|
39
|
-
* repaints after the final summary in a long-lived programmatic caller.
|
|
40
|
-
*/
|
|
41
|
-
stop(): void;
|
|
42
|
-
/**
|
|
43
|
-
* Repaints the block below the permanent log. An entry may span several
|
|
44
|
-
* lines (test header, current step, recent calls); the marker goes on the
|
|
45
|
-
* first line and every line is clamped so the row count stays exact.
|
|
46
|
-
*/
|
|
47
|
-
redraw(): void;
|
|
48
|
-
/** One bounded counter line: completed, executing, and waiting entries. */
|
|
49
|
-
private progressLine;
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=live-status.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"live-status.d.ts","sourceRoot":"","sources":["../../src/report/live-status.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAsCH,qBAAa,UAAU;IAiBT,OAAO,CAAC,QAAQ,CAAC,GAAG;IAhBhC;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyC;IACjE,+DAA+D;IAC/D,OAAO,CAAC,WAAW,CAAK;IACxB,sDAAsD;IACtD,OAAO,CAAC,KAAK,CAAK;IAClB,sCAAsC;IACtC,OAAO,CAAC,IAAI,CAAK;IACjB,8DAA8D;IAC9D,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,KAAK,CAA6B;IAE1C,YAA6B,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,EAAI;IAE1E,uEAAuE;IACvE,OAAO,CAAC,SAAS;IAejB,uDAAuD;IACvD,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAGxB;IAED,2EAA2E;IAC3E,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAGjD;IAED,+DAA+D;IAC/D,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAGxB;IAED,kEAAkE;IAClE,IAAI,IAAI,IAAI,CAGX;IAED,+DAA+D;IAC/D,KAAK,IAAI,IAAI,CAIZ;IAED;;;;OAIG;IACH,IAAI,IAAI,IAAI,CAKX;IAED;;;;OAIG;IACH,MAAM,IAAI,IAAI,CAuBb;IAED,2EAA2E;IAC3E,OAAO,CAAC,YAAY;CAUrB"}
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Live in-progress block for TTY reporters: the currently executing pairs and
|
|
3
|
-
* one progress counter line, repainted below the permanent log. Constructed
|
|
4
|
-
* without a raw control channel it is a no-op, so callers never branch.
|
|
5
|
-
*/
|
|
6
|
-
import pc from 'picocolors';
|
|
7
|
-
const ESC = '\u001b';
|
|
8
|
-
const SPINNER_FRAMES = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
|
|
9
|
-
const SPINNER_INTERVAL_MS = 120;
|
|
10
|
-
/**
|
|
11
|
-
* Clamps one status line to the terminal width, skipping ANSI sequences when
|
|
12
|
-
* counting. The erase sequence counts physical rows, so a line that wraps
|
|
13
|
-
* would leave stale fragments behind on every repaint.
|
|
14
|
-
*/
|
|
15
|
-
function clampToWidth(text, columns) {
|
|
16
|
-
// Two columns of margin: the ellipsis takes one, and a line that reaches
|
|
17
|
-
// the exact width puts some terminals into pending-wrap, which breaks the
|
|
18
|
-
// erase row count the same way real wrapping does.
|
|
19
|
-
const max = Math.max(4, columns - 2);
|
|
20
|
-
let width = 0;
|
|
21
|
-
let out = '';
|
|
22
|
-
for (let i = 0; i < text.length;) {
|
|
23
|
-
const char = text[i];
|
|
24
|
-
if (char === ESC) {
|
|
25
|
-
const end = text.indexOf('m', i);
|
|
26
|
-
if (end === -1)
|
|
27
|
-
break;
|
|
28
|
-
out += text.slice(i, end + 1);
|
|
29
|
-
i = end + 1;
|
|
30
|
-
continue;
|
|
31
|
-
}
|
|
32
|
-
if (width >= max)
|
|
33
|
-
return `${out}${ESC}[0m…`;
|
|
34
|
-
out += char;
|
|
35
|
-
width += 1;
|
|
36
|
-
i += 1;
|
|
37
|
-
}
|
|
38
|
-
return out;
|
|
39
|
-
}
|
|
40
|
-
export class LiveStatus {
|
|
41
|
-
raw;
|
|
42
|
-
/**
|
|
43
|
-
* Entries currently executing, keyed by the caller, in start order. An
|
|
44
|
-
* undefined text counts toward the progress line without rendering a row,
|
|
45
|
-
* for entries whose story streams permanently above the block.
|
|
46
|
-
*/
|
|
47
|
-
running = new Map();
|
|
48
|
-
/** Lines the status block currently occupies below the log. */
|
|
49
|
-
statusLines = 0;
|
|
50
|
-
/** Planned entries; 0 until the plan is announced. */
|
|
51
|
-
total = 0;
|
|
52
|
-
/** Entries with a reported result. */
|
|
53
|
-
done = 0;
|
|
54
|
-
/** Current spinner frame; advanced by the animation timer. */
|
|
55
|
-
frame = 0;
|
|
56
|
-
timer;
|
|
57
|
-
constructor(raw) {
|
|
58
|
-
this.raw = raw;
|
|
59
|
-
}
|
|
60
|
-
/** Animates while any entry renders; stopped and unref'd otherwise. */
|
|
61
|
-
syncTimer(visible) {
|
|
62
|
-
if (this.raw === undefined)
|
|
63
|
-
return;
|
|
64
|
-
if (visible === 0) {
|
|
65
|
-
if (this.timer !== undefined)
|
|
66
|
-
clearInterval(this.timer);
|
|
67
|
-
this.timer = undefined;
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
if (this.timer !== undefined)
|
|
71
|
-
return;
|
|
72
|
-
this.timer = setInterval(() => {
|
|
73
|
-
this.frame = (this.frame + 1) % SPINNER_FRAMES.length;
|
|
74
|
-
this.redraw();
|
|
75
|
-
}, SPINNER_INTERVAL_MS);
|
|
76
|
-
this.timer.unref();
|
|
77
|
-
}
|
|
78
|
-
/** Announces how many entries the run will execute. */
|
|
79
|
-
plan(total) {
|
|
80
|
-
this.total = total;
|
|
81
|
-
this.redraw();
|
|
82
|
-
}
|
|
83
|
-
/** Shows one started entry in the block; undefined counts it invisibly. */
|
|
84
|
-
start(key, text) {
|
|
85
|
-
this.running.set(key, text);
|
|
86
|
-
this.redraw();
|
|
87
|
-
}
|
|
88
|
-
/** Counts one finished entry and removes it from the block. */
|
|
89
|
-
finish(key) {
|
|
90
|
-
this.done += 1;
|
|
91
|
-
this.running.delete(key);
|
|
92
|
-
}
|
|
93
|
-
/** Counts one finished entry that never appeared in the block. */
|
|
94
|
-
skip() {
|
|
95
|
-
this.done += 1;
|
|
96
|
-
this.redraw();
|
|
97
|
-
}
|
|
98
|
-
/** Clears the block so permanent log lines can be appended. */
|
|
99
|
-
erase() {
|
|
100
|
-
if (this.raw === undefined || this.statusLines === 0)
|
|
101
|
-
return;
|
|
102
|
-
this.raw(`${ESC}[${this.statusLines}A${ESC}[0J`);
|
|
103
|
-
this.statusLines = 0;
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Ends the live block for good: entries still running (an interrupt, a
|
|
107
|
-
* crashed worker) are dropped and the spinner timer is cleared, so nothing
|
|
108
|
-
* repaints after the final summary in a long-lived programmatic caller.
|
|
109
|
-
*/
|
|
110
|
-
stop() {
|
|
111
|
-
this.running.clear();
|
|
112
|
-
if (this.timer !== undefined)
|
|
113
|
-
clearInterval(this.timer);
|
|
114
|
-
this.timer = undefined;
|
|
115
|
-
this.erase();
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Repaints the block below the permanent log. An entry may span several
|
|
119
|
-
* lines (test header, current step, recent calls); the marker goes on the
|
|
120
|
-
* first line and every line is clamped so the row count stays exact.
|
|
121
|
-
*/
|
|
122
|
-
redraw() {
|
|
123
|
-
if (this.raw === undefined)
|
|
124
|
-
return;
|
|
125
|
-
// A pty without a size reports 0 columns; treat it as unknown like undefined.
|
|
126
|
-
const columns = process.stdout.columns || 100;
|
|
127
|
-
let payload = this.statusLines > 0 ? `${ESC}[${this.statusLines}A${ESC}[0J` : '';
|
|
128
|
-
let rows = 0;
|
|
129
|
-
let visible = 0;
|
|
130
|
-
const marker = SPINNER_FRAMES[this.frame] ?? '▸';
|
|
131
|
-
for (const text of this.running.values()) {
|
|
132
|
-
if (text === undefined)
|
|
133
|
-
continue;
|
|
134
|
-
visible += 1;
|
|
135
|
-
const lines = text.split('\n');
|
|
136
|
-
for (const [index, line] of lines.entries()) {
|
|
137
|
-
const prefixed = index === 0 ? `${pc.cyan(marker)} ${line}` : line;
|
|
138
|
-
payload += `${clampToWidth(prefixed, columns)}\n`;
|
|
139
|
-
rows += 1;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
const progress = this.progressLine();
|
|
143
|
-
if (progress !== undefined)
|
|
144
|
-
payload += `${clampToWidth(progress, columns)}\n`;
|
|
145
|
-
this.statusLines = rows + (progress === undefined ? 0 : 1);
|
|
146
|
-
if (payload !== '')
|
|
147
|
-
this.raw(payload);
|
|
148
|
-
this.syncTimer(visible);
|
|
149
|
-
}
|
|
150
|
-
/** One bounded counter line: completed, executing, and waiting entries. */
|
|
151
|
-
progressLine() {
|
|
152
|
-
if (this.total === 0)
|
|
153
|
-
return undefined;
|
|
154
|
-
const waiting = Math.max(0, this.total - this.done - this.running.size);
|
|
155
|
-
const parts = [
|
|
156
|
-
`${this.done}/${this.total} done`,
|
|
157
|
-
`${this.running.size} running`,
|
|
158
|
-
`${waiting} waiting`,
|
|
159
|
-
];
|
|
160
|
-
return pc.dim(` ${parts.join(' · ')}`);
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
//# sourceMappingURL=live-status.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"live-status.js","sourceRoot":"","sources":["../../src/report/live-status.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import type { AttemptEnvironment } from './fixtures.ts';
|
|
2
|
-
import type { StepKind, StepRecorder } from './steps.ts';
|
|
3
|
-
export declare class StepAttachments {
|
|
4
|
-
private readonly steps;
|
|
5
|
-
private readonly scope;
|
|
6
|
-
constructor(steps: StepRecorder);
|
|
7
|
-
/** Legacy continuations retain their eventual step scope, even though invocation preceded it. */
|
|
8
|
-
record(attach: () => void): void;
|
|
9
|
-
/** Holds early attachments, then binds later continuations to the scope that releases them. */
|
|
10
|
-
collect(): {
|
|
11
|
-
run: <T>(call: () => T) => T;
|
|
12
|
-
release: () => void;
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
interface RecordingOptions {
|
|
16
|
-
/** Dotted step-name prefix, e.g. `['gadget', 'knobs']`. */
|
|
17
|
-
readonly path: readonly string[];
|
|
18
|
-
readonly kind: StepKind;
|
|
19
|
-
/** Whether calls are bounded by the action timeout (or their own `timeout` option). */
|
|
20
|
-
readonly bounded: boolean;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Wraps a contributed surface so every async method call is one recorded
|
|
24
|
-
* step. Nested plain objects (namespaces such as `keyboard`) are wrapped
|
|
25
|
-
* recursively with a dotted path; symbol-keyed members and synchronous
|
|
26
|
-
* results pass through untouched.
|
|
27
|
-
*
|
|
28
|
-
* The member is invoked first and the step opens around the promise it
|
|
29
|
-
* returns, which is what lets a synchronous accessor stay an accessor. A
|
|
30
|
-
* synchronous throw is recorded as the failed step it would have been, and
|
|
31
|
-
* anything the call attached through the context is released into that step,
|
|
32
|
-
* however early in the call it happened.
|
|
33
|
-
*/
|
|
34
|
-
export declare function recordedSurface<T extends object>(surface: T, environment: AttemptEnvironment, attachments: StepAttachments, options: RecordingOptions): T;
|
|
35
|
-
export {};
|
|
36
|
-
//# sourceMappingURL=fixture-legacy.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fixture-legacy.d.ts","sourceRoot":"","sources":["../../src/run/fixture-legacy.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAezD,qBAAa,eAAe;IAGd,OAAO,CAAC,QAAQ,CAAC,KAAK;IAFlC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+C;IAErE,YAA6B,KAAK,EAAE,YAAY,EAAI;IAEpD,iGAAiG;IACjG,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,GAAG,IAAI,CAM/B;IAED,+FAA+F;IAC/F,OAAO,IAAI;QAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAU/D;CACF;AA0CD,UAAU,gBAAgB;IACxB,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,uFAAuF;IACvF,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAC9C,OAAO,EAAE,CAAC,EACV,WAAW,EAAE,kBAAkB,EAC/B,WAAW,EAAE,eAAe,EAC5B,OAAO,EAAE,gBAAgB,GACxB,CAAC,CA6DH"}
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
/** Compatibility adapter for fixture factories predating explicit operation metadata. */
|
|
2
|
-
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
3
|
-
import { TestError } from '../internal/errors.js';
|
|
4
|
-
import { withTimeout } from '../internal/time.js';
|
|
5
|
-
export class StepAttachments {
|
|
6
|
-
steps;
|
|
7
|
-
scope = new AsyncLocalStorage();
|
|
8
|
-
constructor(steps) {
|
|
9
|
-
this.steps = steps;
|
|
10
|
-
}
|
|
11
|
-
/** Legacy continuations retain their eventual step scope, even though invocation preceded it. */
|
|
12
|
-
record(attach) {
|
|
13
|
-
const pending = this.scope.getStore();
|
|
14
|
-
const current = this.steps.currentStepId;
|
|
15
|
-
if (pending === undefined || (current !== undefined && current !== pending.parentId))
|
|
16
|
-
attach();
|
|
17
|
-
else if (pending.run === undefined)
|
|
18
|
-
pending.held.push(attach);
|
|
19
|
-
else
|
|
20
|
-
pending.run(attach);
|
|
21
|
-
}
|
|
22
|
-
/** Holds early attachments, then binds later continuations to the scope that releases them. */
|
|
23
|
-
collect() {
|
|
24
|
-
const pending = { parentId: this.steps.currentStepId, held: [], run: undefined };
|
|
25
|
-
return {
|
|
26
|
-
run: (call) => this.scope.run(pending, call),
|
|
27
|
-
release: () => {
|
|
28
|
-
pending.run = AsyncLocalStorage.snapshot();
|
|
29
|
-
for (const attach of pending.held)
|
|
30
|
-
pending.run(attach);
|
|
31
|
-
pending.held.length = 0;
|
|
32
|
-
},
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
function isThenable(value) {
|
|
37
|
-
return (typeof value === 'object' &&
|
|
38
|
-
value !== null &&
|
|
39
|
-
typeof value.then === 'function');
|
|
40
|
-
}
|
|
41
|
-
/** Longest label a fixture argument may contribute to the report. */
|
|
42
|
-
const LABEL_LIMIT = 80;
|
|
43
|
-
/** Method names whose string argument is typed input, labelled by length only. */
|
|
44
|
-
const INPUT_METHODS = new Set(['type', 'fill', 'insertText']);
|
|
45
|
-
/**
|
|
46
|
-
* Step label heuristic: the first string or pattern argument, if any. Fixture
|
|
47
|
-
* arguments are report-visible by this rule; secret material travels as
|
|
48
|
-
* `Secret` handles, never as strings, so it cannot land here. Typed input is
|
|
49
|
-
* the exception: it is user data, so only its length is recorded.
|
|
50
|
-
*/
|
|
51
|
-
function labelFor(api, args) {
|
|
52
|
-
const method = api.slice(api.lastIndexOf('.') + 1);
|
|
53
|
-
if (INPUT_METHODS.has(method) && typeof args[0] === 'string')
|
|
54
|
-
return `${args[0].length} chars`;
|
|
55
|
-
for (const arg of args) {
|
|
56
|
-
if (typeof arg === 'string')
|
|
57
|
-
return arg.length > LABEL_LIMIT ? `${arg.slice(0, LABEL_LIMIT)}...` : arg;
|
|
58
|
-
if (arg instanceof RegExp)
|
|
59
|
-
return String(arg);
|
|
60
|
-
}
|
|
61
|
-
return '';
|
|
62
|
-
}
|
|
63
|
-
/** A call's own `timeout` option wins over the action timeout, as on Locator. */
|
|
64
|
-
function timeoutFor(args, fallback) {
|
|
65
|
-
for (const arg of args) {
|
|
66
|
-
if (typeof arg !== 'object' || arg === null || Array.isArray(arg))
|
|
67
|
-
continue;
|
|
68
|
-
const timeout = arg.timeout;
|
|
69
|
-
if (typeof timeout === 'number' && Number.isFinite(timeout) && timeout > 0)
|
|
70
|
-
return timeout;
|
|
71
|
-
}
|
|
72
|
-
return fallback;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Wraps a contributed surface so every async method call is one recorded
|
|
76
|
-
* step. Nested plain objects (namespaces such as `keyboard`) are wrapped
|
|
77
|
-
* recursively with a dotted path; symbol-keyed members and synchronous
|
|
78
|
-
* results pass through untouched.
|
|
79
|
-
*
|
|
80
|
-
* The member is invoked first and the step opens around the promise it
|
|
81
|
-
* returns, which is what lets a synchronous accessor stay an accessor. A
|
|
82
|
-
* synchronous throw is recorded as the failed step it would have been, and
|
|
83
|
-
* anything the call attached through the context is released into that step,
|
|
84
|
-
* however early in the call it happened.
|
|
85
|
-
*/
|
|
86
|
-
export function recordedSurface(surface, environment, attachments, options) {
|
|
87
|
-
return new Proxy(surface, {
|
|
88
|
-
get(target, property, receiver) {
|
|
89
|
-
const value = Reflect.get(target, property, receiver);
|
|
90
|
-
if (typeof property !== 'string')
|
|
91
|
-
return value;
|
|
92
|
-
if (typeof value === 'function') {
|
|
93
|
-
return (...args) => {
|
|
94
|
-
const api = [...options.path, property].join('.');
|
|
95
|
-
const collected = attachments.collect();
|
|
96
|
-
let result;
|
|
97
|
-
try {
|
|
98
|
-
result = collected.run(() => value.apply(target, args));
|
|
99
|
-
}
|
|
100
|
-
catch (cause) {
|
|
101
|
-
// Recorded as the failed step it was, then rethrown as it was thrown:
|
|
102
|
-
// a synchronous caller must not receive a promise in place of a throw.
|
|
103
|
-
environment.steps
|
|
104
|
-
.run(options.kind, api, labelFor(api, args), () => {
|
|
105
|
-
collected.release();
|
|
106
|
-
return Promise.reject(cause);
|
|
107
|
-
})
|
|
108
|
-
.catch(() => undefined);
|
|
109
|
-
throw cause;
|
|
110
|
-
}
|
|
111
|
-
const { release } = collected;
|
|
112
|
-
if (!isThenable(result)) {
|
|
113
|
-
release();
|
|
114
|
-
return result;
|
|
115
|
-
}
|
|
116
|
-
return environment.steps.run(options.kind, api, labelFor(api, args), () => {
|
|
117
|
-
release();
|
|
118
|
-
const pending = Promise.resolve(result);
|
|
119
|
-
if (!options.bounded)
|
|
120
|
-
return pending;
|
|
121
|
-
const timeout = timeoutFor(args, environment.config.actionTimeout);
|
|
122
|
-
// A call that outlives its budget is a failed action, like a
|
|
123
|
-
// locator action that never became actionable; the test clock is
|
|
124
|
-
// a separate matter.
|
|
125
|
-
return withTimeout(pending, timeout, () => new TestError('ACTION_FAILED', `${api} exceeded its timeout of ${timeout}ms`));
|
|
126
|
-
}, { verifies: options.kind === 'assertion' });
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
if (typeof value === 'object' &&
|
|
130
|
-
value !== null &&
|
|
131
|
-
!Array.isArray(value) &&
|
|
132
|
-
!isThenable(value) &&
|
|
133
|
-
Object.getPrototypeOf(value) === Object.prototype) {
|
|
134
|
-
return recordedSurface(value, environment, attachments, {
|
|
135
|
-
...options,
|
|
136
|
-
path: [...options.path, property],
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
return value;
|
|
140
|
-
},
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
//# sourceMappingURL=fixture-legacy.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fixture-legacy.js","sourceRoot":"","sources":["../../src/run/fixture-legacy.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|