@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
package/dist/expect/async.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** Runner-owned polling locator assertions
|
|
1
|
+
/** Runner-owned polling locator assertions. */
|
|
2
2
|
import { TestError } from '../internal/errors.js';
|
|
3
3
|
import { normalizeText, containsText, matchesText, toTextPattern, describePattern } from '../internal/text.js';
|
|
4
4
|
import { Deadline, pollCondition } from '../internal/time.js';
|
|
@@ -10,6 +10,7 @@ const STATE_MATCHERS = {
|
|
|
10
10
|
toBeChecked: { key: 'checked', expected: true, describeExpected: 'checked' },
|
|
11
11
|
toBeSelected: { key: 'selected', expected: true, describeExpected: 'selected' },
|
|
12
12
|
toBeExpanded: { key: 'expanded', expected: true, describeExpected: 'expanded' },
|
|
13
|
+
toBeFocused: { key: 'focused', expected: true, describeExpected: 'focused' },
|
|
13
14
|
};
|
|
14
15
|
const TEXT_MATCHERS = {
|
|
15
16
|
toHaveText: {
|
|
@@ -149,6 +150,9 @@ class AsyncExpectationImpl {
|
|
|
149
150
|
toBeExpanded(options) {
|
|
150
151
|
return this.stateMatcher('toBeExpanded', options?.timeout);
|
|
151
152
|
}
|
|
153
|
+
toBeFocused(options) {
|
|
154
|
+
return this.stateMatcher('toBeFocused', options?.timeout);
|
|
155
|
+
}
|
|
152
156
|
toHaveText(expected, options) {
|
|
153
157
|
return this.textMatcher('toHaveText', expected, options?.timeout);
|
|
154
158
|
}
|
|
@@ -158,6 +162,38 @@ class AsyncExpectationImpl {
|
|
|
158
162
|
toHaveValue(expected, options) {
|
|
159
163
|
return this.textMatcher('toHaveValue', expected, options?.timeout);
|
|
160
164
|
}
|
|
165
|
+
toHaveAttribute(name, valueOrOptions, options) {
|
|
166
|
+
let value;
|
|
167
|
+
let timeout;
|
|
168
|
+
if (typeof valueOrOptions === 'string' || valueOrOptions instanceof RegExp) {
|
|
169
|
+
value = valueOrOptions;
|
|
170
|
+
timeout = options?.timeout;
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
timeout = valueOrOptions?.timeout;
|
|
174
|
+
}
|
|
175
|
+
const pattern = value === undefined ? undefined : toTextPattern(value, { exact: true });
|
|
176
|
+
return this.poll({
|
|
177
|
+
name: 'toHaveAttribute',
|
|
178
|
+
predicate: (sample) => {
|
|
179
|
+
if (sample.node === null)
|
|
180
|
+
return false;
|
|
181
|
+
const attribute = sample.node.attributes?.[name];
|
|
182
|
+
return attribute !== undefined && (pattern === undefined || matchesText(attribute, pattern));
|
|
183
|
+
},
|
|
184
|
+
describeExpected: pattern === undefined
|
|
185
|
+
? `attribute "${name}"`
|
|
186
|
+
: `attribute "${name}" ${describePattern(pattern)}`,
|
|
187
|
+
observed: (sample) => {
|
|
188
|
+
if (sample.node === null)
|
|
189
|
+
return 'no node';
|
|
190
|
+
const attribute = sample.node.attributes?.[name];
|
|
191
|
+
return attribute === undefined
|
|
192
|
+
? `attribute "${name}" absent`
|
|
193
|
+
: `attribute "${name}" ${JSON.stringify(attribute)}`;
|
|
194
|
+
},
|
|
195
|
+
}, timeout);
|
|
196
|
+
}
|
|
161
197
|
toHaveAccessibleName(expected, options) {
|
|
162
198
|
return this.textMatcher('toHaveAccessibleName', expected, options?.timeout);
|
|
163
199
|
}
|
package/dist/expect/async.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async.js","sourceRoot":"","sources":["../../src/expect/async.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"async.js","sourceRoot":"","sources":["../../src/expect/async.ts"],"names":[],"mappings":"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"}
|
package/dist/expect/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import { createAsyncExpectation } from './async.js';
|
|
|
6
6
|
import { createValueExpectation } from './values.js';
|
|
7
7
|
/**
|
|
8
8
|
* A fixture's attached expectation surface hangs off the fixture object under
|
|
9
|
-
* a global symbol (`
|
|
9
|
+
* a global symbol (`EngineFixtureContext.expectable`), so an expect()
|
|
10
10
|
* imported in an isolated test-module realm can still reach it. Core routes
|
|
11
11
|
* to the surface and never knows which matchers a platform contributed.
|
|
12
12
|
*/
|
package/dist/expect/values.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** Synchronous plain-value matchers
|
|
1
|
+
/** Synchronous plain-value matchers. */
|
|
2
2
|
import type { ValueExpectation } from '../types.ts';
|
|
3
3
|
export declare function createValueExpectation<T>(actual: T): ValueExpectation<T>;
|
|
4
4
|
//# sourceMappingURL=values.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../src/expect/values.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../src/expect/values.ts"],"names":[],"mappings":"AAAA,wCAAwC;AAIxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAwJpD,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAExE"}
|
package/dist/expect/values.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"values.js","sourceRoot":"","sources":["../../src/expect/values.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"values.js","sourceRoot":"","sources":["../../src/expect/values.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
/** Public sdk-0.1 entrypoint. */
|
|
2
|
-
import type { E2EConfig } from './types.ts';
|
|
3
2
|
export { test } from './collect/registry.ts';
|
|
4
3
|
export { expect } from './expect/index.ts';
|
|
5
4
|
export { credentials } from './credentials.ts';
|
|
6
5
|
export { AgentError } from './agent/error.ts';
|
|
7
|
-
export { BLOCKABLE_CODES, RUNTIME_CODES
|
|
6
|
+
export { BLOCKABLE_CODES, RUNTIME_CODES } from './agent/executor.ts';
|
|
8
7
|
export { buildTraceEntry, readTraceEntry } from './cache/trace.ts';
|
|
9
|
-
/** Type-checks and returns an e2e configuration object. */
|
|
10
|
-
export declare function defineConfig(config: E2EConfig): E2EConfig;
|
|
11
8
|
export type * from './types.ts';
|
|
12
|
-
export type {
|
|
9
|
+
export type { ExecutorActions, ExecutorAttempt, ExecutorBudgets, ExecutorModelCall, ExecutorNode, ExecutorObservation, ExecutorObserveOptions, ExecutorPixels, ExecutorStep, ExecutorTarget, ReplayedPrefix, ReplayHandOffReason, StepExecutor, StepExecutorContext, StepVerdict, StepVerdictStatus, } from './agent/executor.ts';
|
|
13
10
|
export type { VisionDegradation } from './run/steps.ts';
|
|
11
|
+
export type { EngineAppDeclaration } from './engine/index.ts';
|
|
14
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AAEjC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AAEjC,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIrE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEnE,mBAAmB,YAAY,CAAC;AAChC,YAAY,EACV,eAAe,EACf,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,13 +3,9 @@ export { test } from './collect/registry.js';
|
|
|
3
3
|
export { expect } from './expect/index.js';
|
|
4
4
|
export { credentials } from './credentials.js';
|
|
5
5
|
export { AgentError } from './agent/error.js';
|
|
6
|
-
export { BLOCKABLE_CODES, RUNTIME_CODES
|
|
6
|
+
export { BLOCKABLE_CODES, RUNTIME_CODES } from './agent/executor.js';
|
|
7
7
|
// Entry framing for custom TraceCacheStore implementations: a remote store
|
|
8
8
|
// serializes buildTraceEntry(payload) on write and validates documents with
|
|
9
9
|
// readTraceEntry on read — the same framing the default file store uses.
|
|
10
10
|
export { buildTraceEntry, readTraceEntry } from './cache/trace.js';
|
|
11
|
-
/** Type-checks and returns an e2e configuration object. */
|
|
12
|
-
export function defineConfig(config) {
|
|
13
|
-
return config;
|
|
14
|
-
}
|
|
15
11
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AAEjC,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACrE,2EAA2E;AAC3E,4EAA4E;AAC5E,yEAAyE;AACzE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
export declare const secretBrand: unique symbol;
|
|
3
3
|
export declare const credentialBrand: unique symbol;
|
|
4
4
|
export declare const testCaseBrand: unique symbol;
|
|
5
|
-
export declare const
|
|
5
|
+
export declare const engineBrand: unique symbol;
|
|
6
6
|
export declare const locatorBrand: unique symbol;
|
|
7
7
|
/** Slot under which a fixture carries its attached expectation surface. */
|
|
8
8
|
export declare const expectationBrand: unique symbol;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brands.d.ts","sourceRoot":"","sources":["../../src/internal/brands.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAE5D,eAAO,MAAM,WAAW,EAAE,OAAO,MAAiC,CAAC;AACnE,eAAO,MAAM,eAAe,EAAE,OAAO,MAAqC,CAAC;AAC3E,eAAO,MAAM,aAAa,EAAE,OAAO,MAAmC,CAAC;AACvE,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"brands.d.ts","sourceRoot":"","sources":["../../src/internal/brands.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAE5D,eAAO,MAAM,WAAW,EAAE,OAAO,MAAiC,CAAC;AACnE,eAAO,MAAM,eAAe,EAAE,OAAO,MAAqC,CAAC;AAC3E,eAAO,MAAM,aAAa,EAAE,OAAO,MAAmC,CAAC;AACvE,eAAO,MAAM,WAAW,EAAE,OAAO,MAAoC,CAAC;AACtE,eAAO,MAAM,YAAY,EAAE,OAAO,MAAkC,CAAC;AACrE,2EAA2E;AAC3E,eAAO,MAAM,gBAAgB,EAAE,OAAO,MAAyC,CAAC"}
|
package/dist/internal/brands.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
export const secretBrand = Symbol.for('e2e.secret');
|
|
3
3
|
export const credentialBrand = Symbol.for('e2e.credential');
|
|
4
4
|
export const testCaseBrand = Symbol.for('e2e.testCase');
|
|
5
|
-
export const
|
|
5
|
+
export const engineBrand = Symbol.for('e2e.engine.v1');
|
|
6
6
|
export const locatorBrand = Symbol.for('e2e.locator');
|
|
7
7
|
/** Slot under which a fixture carries its attached expectation surface. */
|
|
8
8
|
export const expectationBrand = Symbol.for('e2e.expectation.v1');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brands.js","sourceRoot":"","sources":["../../src/internal/brands.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAE5D,MAAM,CAAC,MAAM,WAAW,GAAkB,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,eAAe,GAAkB,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC3E,MAAM,CAAC,MAAM,aAAa,GAAkB,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACvE,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"brands.js","sourceRoot":"","sources":["../../src/internal/brands.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAE5D,MAAM,CAAC,MAAM,WAAW,GAAkB,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,eAAe,GAAkB,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC3E,MAAM,CAAC,MAAM,aAAa,GAAkB,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACvE,MAAM,CAAC,MAAM,WAAW,GAAkB,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,YAAY,GAAkB,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACrE,2EAA2E;AAC3E,MAAM,CAAC,MAAM,gBAAgB,GAAkB,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC"}
|
|
@@ -1,7 +1,21 @@
|
|
|
1
|
-
/** Runner-owned error taxonomy and exit-code mapping
|
|
2
|
-
import { type
|
|
1
|
+
/** Runner-owned error taxonomy and exit-code mapping. */
|
|
2
|
+
import { type EngineErrorCode } from '../engine/contract.ts';
|
|
3
3
|
/** Message of an arbitrary thrown value, for diagnostics that must not throw. */
|
|
4
4
|
export declare function errorMessage(cause: unknown): string;
|
|
5
|
+
/**
|
|
6
|
+
* Appends a remedy to a message: as a clause after a one-line message, on its
|
|
7
|
+
* own line after a multi-line one (a provider's paragraph, Node's own `Did you
|
|
8
|
+
* mean` line), so the hint never dangles off a sentence that already ended.
|
|
9
|
+
*/
|
|
10
|
+
export declare function withHint(message: string, hint: string): string;
|
|
11
|
+
/**
|
|
12
|
+
* An error's message followed by its causes, innermost last: `fetch failed:
|
|
13
|
+
* connect ECONNREFUSED 127.0.0.1:3000`. Node and most libraries put the
|
|
14
|
+
* actionable detail in `cause`, which a bare `message` hides. An aggregate
|
|
15
|
+
* lists each member once, a cause with an empty message contributes its
|
|
16
|
+
* `code`, and a message already present is not repeated.
|
|
17
|
+
*/
|
|
18
|
+
export declare function messageWithCauses(error: Error): string;
|
|
5
19
|
export type ErrorCategory = 'test' | 'configuration' | 'infrastructure' | 'internal' | 'interrupted';
|
|
6
20
|
export type ErrorPhase = 'config' | 'collection' | 'launch' | 'beforeAll' | 'beforeEach' | 'body' | 'afterEach' | 'afterAll' | 'cleanup' | 'report';
|
|
7
21
|
export interface SerializedError {
|
|
@@ -16,18 +30,18 @@ export interface SerializedError {
|
|
|
16
30
|
/** Marks classified errors so instances survive isolated module realms. */
|
|
17
31
|
declare const E2E_ERROR_MARKER: unique symbol;
|
|
18
32
|
/**
|
|
19
|
-
* Normalizes
|
|
20
|
-
*
|
|
33
|
+
* Normalizes an engine failure, including one thrown by another copy of the
|
|
34
|
+
* engine module.
|
|
21
35
|
*
|
|
22
|
-
*
|
|
23
|
-
* registry than the runner, so its `
|
|
36
|
+
* An engine imported by a config file is loaded through a different module
|
|
37
|
+
* registry than the runner, so its `EngineError` is a different class and
|
|
24
38
|
* `instanceof` misses it. Detection is therefore structural, keyed on the
|
|
25
|
-
* closed code set: without this, every out-of-tree
|
|
39
|
+
* closed code set: without this, every out-of-tree engine's typed failures
|
|
26
40
|
* silently degrade to a generic error and lose their taxonomy. A foreign
|
|
27
41
|
* instance is held to the same retryability rule as the local class.
|
|
28
42
|
*/
|
|
29
|
-
export declare function
|
|
30
|
-
code:
|
|
43
|
+
export declare function asEngineError(value: unknown): {
|
|
44
|
+
code: EngineErrorCode;
|
|
31
45
|
message: string;
|
|
32
46
|
retryable: boolean;
|
|
33
47
|
} | undefined;
|
|
@@ -72,23 +86,23 @@ export declare class TestError extends E2EError {
|
|
|
72
86
|
export declare class TestTimeoutError extends TestError {
|
|
73
87
|
constructor(message: string);
|
|
74
88
|
}
|
|
75
|
-
/** Maps a category to its process exit code
|
|
89
|
+
/** Maps a category to its process exit code. */
|
|
76
90
|
export declare function exitCodeForCategory(category: ErrorCategory): 0 | 1 | 2 | 3 | 4 | 130;
|
|
77
91
|
/** Combines exit codes for mixed outcomes using precedence 130 > 4 > 3 > 2 > 1 > 0. */
|
|
78
92
|
export declare function combineExitCodes(codes: readonly number[]): 0 | 1 | 2 | 3 | 4 | 130;
|
|
79
93
|
/**
|
|
80
|
-
* Canonical
|
|
81
|
-
* Applies to every
|
|
82
|
-
* state capture/restore, and observation. Non-
|
|
83
|
-
* non-retryable infrastructure
|
|
94
|
+
* Canonical EngineError -> runner taxonomy mapping.
|
|
95
|
+
* Applies to every engine surface: lifecycle, app, screen, artifacts,
|
|
96
|
+
* state capture/restore, and observation. Non-EngineError causes become
|
|
97
|
+
* non-retryable infrastructure ENGINE_FAILURE.
|
|
84
98
|
*/
|
|
85
|
-
export declare function
|
|
99
|
+
export declare function translateEngineError(cause: unknown, suffix?: string): E2EError;
|
|
86
100
|
/**
|
|
87
|
-
* Classifies a failure of
|
|
101
|
+
* Classifies a failure of an engine's `prepare` hook. Provisioning runs before
|
|
88
102
|
* any test exists, so nothing thrown there can be a test failure: a harness-
|
|
89
103
|
* classified error keeps the category its author chose (a `ConfigurationError`
|
|
90
|
-
* for an option the
|
|
91
|
-
* cancellation, and everything else -
|
|
104
|
+
* for an option the engine cannot honour), an engine cancellation stays a
|
|
105
|
+
* cancellation, and everything else - an `EngineError` of any code, a plain
|
|
92
106
|
* `Error` from an installer - is infrastructure.
|
|
93
107
|
*/
|
|
94
108
|
export declare function translateProvisioningError(cause: unknown, suffix?: string): E2EError;
|
|
@@ -99,7 +113,11 @@ export declare function serializeError(error: E2EError, extras?: {
|
|
|
99
113
|
phase?: ErrorPhase;
|
|
100
114
|
scopeId?: string;
|
|
101
115
|
}): SerializedError;
|
|
102
|
-
/**
|
|
116
|
+
/**
|
|
117
|
+
* Strips ANSI escape sequences, then C0/C1 control characters except tab and
|
|
118
|
+
* newline. Libraries color their own messages; left in, the color codes reach
|
|
119
|
+
* the report as literal text and the terminal as `\uFFFD[31m` noise.
|
|
120
|
+
*/
|
|
103
121
|
export declare function sanitizeText(text: string): string;
|
|
104
122
|
/** Truncates a string so its UTF-8 encoding fits maxBytes without splitting a code point. */
|
|
105
123
|
export declare function truncateUtf8(text: string, maxBytes: number): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/internal/errors.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/internal/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/internal/errors.js
CHANGED
|
@@ -1,38 +1,84 @@
|
|
|
1
|
-
/** Runner-owned error taxonomy and exit-code mapping
|
|
2
|
-
import {
|
|
1
|
+
/** Runner-owned error taxonomy and exit-code mapping. */
|
|
2
|
+
import { stripVTControlCharacters } from 'node:util';
|
|
3
|
+
import { ENGINE_ERROR_CODES, EngineError, RETRYABLE_ENGINE_ERROR_CODES, } from '../engine/contract.js';
|
|
3
4
|
/** Message of an arbitrary thrown value, for diagnostics that must not throw. */
|
|
4
5
|
export function errorMessage(cause) {
|
|
5
6
|
return cause instanceof Error ? cause.message : String(cause);
|
|
6
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* Appends a remedy to a message: as a clause after a one-line message, on its
|
|
10
|
+
* own line after a multi-line one (a provider's paragraph, Node's own `Did you
|
|
11
|
+
* mean` line), so the hint never dangles off a sentence that already ended.
|
|
12
|
+
*/
|
|
13
|
+
export function withHint(message, hint) {
|
|
14
|
+
if (hint === '')
|
|
15
|
+
return message;
|
|
16
|
+
const base = message.trimEnd();
|
|
17
|
+
return `${base}${base.includes('\n') ? '\n' : '; '}${hint}`;
|
|
18
|
+
}
|
|
19
|
+
/** How deep a `cause` chain is followed when an error is described. */
|
|
20
|
+
const MAX_CAUSE_DEPTH = 3;
|
|
21
|
+
/**
|
|
22
|
+
* An error's message followed by its causes, innermost last: `fetch failed:
|
|
23
|
+
* connect ECONNREFUSED 127.0.0.1:3000`. Node and most libraries put the
|
|
24
|
+
* actionable detail in `cause`, which a bare `message` hides. An aggregate
|
|
25
|
+
* lists each member once, a cause with an empty message contributes its
|
|
26
|
+
* `code`, and a message already present is not repeated.
|
|
27
|
+
*/
|
|
28
|
+
export function messageWithCauses(error) {
|
|
29
|
+
const parts = [error.message];
|
|
30
|
+
let current = error.cause;
|
|
31
|
+
for (let depth = 0; current !== undefined && depth < MAX_CAUSE_DEPTH; depth += 1) {
|
|
32
|
+
const text = describeCause(current);
|
|
33
|
+
if (text !== '' && !parts.includes(text))
|
|
34
|
+
parts.push(text);
|
|
35
|
+
current = current instanceof Error ? current.cause : undefined;
|
|
36
|
+
}
|
|
37
|
+
return parts.join(': ');
|
|
38
|
+
}
|
|
39
|
+
function describeCause(cause) {
|
|
40
|
+
if (cause instanceof AggregateError) {
|
|
41
|
+
const members = [...new Set(cause.errors.map(describeCause).filter((text) => text !== ''))];
|
|
42
|
+
if (members.length > 0)
|
|
43
|
+
return members.join('; ');
|
|
44
|
+
}
|
|
45
|
+
if (cause instanceof Error) {
|
|
46
|
+
if (cause.message !== '')
|
|
47
|
+
return cause.message;
|
|
48
|
+
const code = cause.code;
|
|
49
|
+
return typeof code === 'string' ? code : '';
|
|
50
|
+
}
|
|
51
|
+
return String(cause);
|
|
52
|
+
}
|
|
7
53
|
/** Marks classified errors so instances survive isolated module realms. */
|
|
8
54
|
const E2E_ERROR_MARKER = Symbol.for('e2e.error.v1');
|
|
9
55
|
/**
|
|
10
|
-
* Normalizes
|
|
11
|
-
*
|
|
56
|
+
* Normalizes an engine failure, including one thrown by another copy of the
|
|
57
|
+
* engine module.
|
|
12
58
|
*
|
|
13
|
-
*
|
|
14
|
-
* registry than the runner, so its `
|
|
59
|
+
* An engine imported by a config file is loaded through a different module
|
|
60
|
+
* registry than the runner, so its `EngineError` is a different class and
|
|
15
61
|
* `instanceof` misses it. Detection is therefore structural, keyed on the
|
|
16
|
-
* closed code set: without this, every out-of-tree
|
|
62
|
+
* closed code set: without this, every out-of-tree engine's typed failures
|
|
17
63
|
* silently degrade to a generic error and lose their taxonomy. A foreign
|
|
18
64
|
* instance is held to the same retryability rule as the local class.
|
|
19
65
|
*/
|
|
20
|
-
export function
|
|
21
|
-
if (value instanceof
|
|
66
|
+
export function asEngineError(value) {
|
|
67
|
+
if (value instanceof EngineError)
|
|
22
68
|
return value;
|
|
23
|
-
if (!(value instanceof Error) || value.name !== '
|
|
69
|
+
if (!(value instanceof Error) || value.name !== 'EngineError')
|
|
24
70
|
return undefined;
|
|
25
71
|
const code = value.code;
|
|
26
|
-
if (!
|
|
72
|
+
if (!isEngineErrorCode(code))
|
|
27
73
|
return undefined;
|
|
28
74
|
const retryable = value.retryable === true;
|
|
29
|
-
if (retryable && !
|
|
30
|
-
return { code: '
|
|
75
|
+
if (retryable && !RETRYABLE_ENGINE_ERROR_CODES.has(code)) {
|
|
76
|
+
return { code: 'ENGINE_FAILURE', message: value.message, retryable: false };
|
|
31
77
|
}
|
|
32
78
|
return { code, message: value.message, retryable };
|
|
33
79
|
}
|
|
34
|
-
function
|
|
35
|
-
return typeof value === 'string' &&
|
|
80
|
+
function isEngineErrorCode(value) {
|
|
81
|
+
return typeof value === 'string' && ENGINE_ERROR_CODES.includes(value);
|
|
36
82
|
}
|
|
37
83
|
/** Base class for every runner-classified error. */
|
|
38
84
|
export class E2EError extends Error {
|
|
@@ -92,7 +138,7 @@ export class TestTimeoutError extends TestError {
|
|
|
92
138
|
this.name = 'TestTimeoutError';
|
|
93
139
|
}
|
|
94
140
|
}
|
|
95
|
-
/** Maps a category to its process exit code
|
|
141
|
+
/** Maps a category to its process exit code. */
|
|
96
142
|
export function exitCodeForCategory(category) {
|
|
97
143
|
switch (category) {
|
|
98
144
|
case 'test':
|
|
@@ -117,55 +163,55 @@ export function combineExitCodes(codes) {
|
|
|
117
163
|
return 0;
|
|
118
164
|
}
|
|
119
165
|
/**
|
|
120
|
-
* Canonical
|
|
121
|
-
* Applies to every
|
|
122
|
-
* state capture/restore, and observation. Non-
|
|
123
|
-
* non-retryable infrastructure
|
|
166
|
+
* Canonical EngineError -> runner taxonomy mapping.
|
|
167
|
+
* Applies to every engine surface: lifecycle, app, screen, artifacts,
|
|
168
|
+
* state capture/restore, and observation. Non-EngineError causes become
|
|
169
|
+
* non-retryable infrastructure ENGINE_FAILURE.
|
|
124
170
|
*/
|
|
125
|
-
export function
|
|
171
|
+
export function translateEngineError(cause, suffix = '') {
|
|
126
172
|
if (cause instanceof E2EError)
|
|
127
173
|
return cause;
|
|
128
|
-
const
|
|
129
|
-
if (
|
|
130
|
-
switch (
|
|
174
|
+
const engineError = asEngineError(cause);
|
|
175
|
+
if (engineError !== undefined) {
|
|
176
|
+
switch (engineError.code) {
|
|
131
177
|
case 'NODE_STALE':
|
|
132
178
|
return new TestError('LOCATOR_NOT_FOUND', `node became stale${suffix}`, { cause });
|
|
133
179
|
case 'FRAME_NOT_FOUND':
|
|
134
|
-
return new TestError('LOCATOR_NOT_FOUND', `${
|
|
180
|
+
return new TestError('LOCATOR_NOT_FOUND', `${engineError.message}${suffix}`, { cause });
|
|
135
181
|
case 'FRAME_AMBIGUOUS':
|
|
136
|
-
return new TestError('LOCATOR_AMBIGUOUS', `${
|
|
182
|
+
return new TestError('LOCATOR_AMBIGUOUS', `${engineError.message}${suffix}`, { cause });
|
|
137
183
|
case 'NOT_ACTIONABLE':
|
|
138
|
-
return new TestError('ACTION_FAILED', `${
|
|
184
|
+
return new TestError('ACTION_FAILED', `${engineError.message}${suffix}`, { cause });
|
|
139
185
|
case 'ACTION_MAY_HAVE_COMMITTED':
|
|
140
|
-
return new TestError('ACTION_FAILED', `${
|
|
186
|
+
return new TestError('ACTION_FAILED', `${engineError.message}${suffix}`, { cause });
|
|
141
187
|
case 'OPERATION_TIMEOUT':
|
|
142
188
|
return new TestError('ACTION_FAILED', `operation timed out${suffix}`, { cause });
|
|
143
189
|
case 'CANCELLED':
|
|
144
190
|
return new E2EError('infrastructure', 'CANCELLED', 'operation cancelled', { cause });
|
|
145
191
|
case 'UNSUPPORTED_CAPABILITY':
|
|
146
|
-
return new E2EError('configuration', 'UNSUPPORTED_CAPABILITY',
|
|
192
|
+
return new E2EError('configuration', 'UNSUPPORTED_CAPABILITY', engineError.message, { cause });
|
|
147
193
|
case 'INVALID_STATE':
|
|
148
|
-
return new TestError('APP_NOT_OPEN',
|
|
149
|
-
case '
|
|
150
|
-
return new E2EError('infrastructure', '
|
|
194
|
+
return new TestError('APP_NOT_OPEN', engineError.message, { cause });
|
|
195
|
+
case 'ENGINE_FAILURE':
|
|
196
|
+
return new E2EError('infrastructure', 'ENGINE_FAILURE', engineError.message, { cause });
|
|
151
197
|
}
|
|
152
198
|
}
|
|
153
|
-
return new E2EError('infrastructure', '
|
|
199
|
+
return new E2EError('infrastructure', 'ENGINE_FAILURE', errorMessage(cause), { cause });
|
|
154
200
|
}
|
|
155
201
|
/**
|
|
156
|
-
* Classifies a failure of
|
|
202
|
+
* Classifies a failure of an engine's `prepare` hook. Provisioning runs before
|
|
157
203
|
* any test exists, so nothing thrown there can be a test failure: a harness-
|
|
158
204
|
* classified error keeps the category its author chose (a `ConfigurationError`
|
|
159
|
-
* for an option the
|
|
160
|
-
* cancellation, and everything else -
|
|
205
|
+
* for an option the engine cannot honour), an engine cancellation stays a
|
|
206
|
+
* cancellation, and everything else - an `EngineError` of any code, a plain
|
|
161
207
|
* `Error` from an installer - is infrastructure.
|
|
162
208
|
*/
|
|
163
209
|
export function translateProvisioningError(cause, suffix = '') {
|
|
164
210
|
if (cause instanceof E2EError || isForeignE2EError(cause))
|
|
165
211
|
return classifyError(cause);
|
|
166
|
-
if (
|
|
167
|
-
return
|
|
168
|
-
return new InfrastructureError('
|
|
212
|
+
if (asEngineError(cause)?.code === 'CANCELLED')
|
|
213
|
+
return translateEngineError(cause);
|
|
214
|
+
return new InfrastructureError('ENGINE_FAILURE', `${errorMessage(cause)}${suffix}`, { cause });
|
|
169
215
|
}
|
|
170
216
|
/** Classifies an arbitrary thrown value into an E2EError; unknown values become test failures. */
|
|
171
217
|
export function classifyError(value) {
|
|
@@ -177,11 +223,11 @@ export function classifyError(value) {
|
|
|
177
223
|
cause: value,
|
|
178
224
|
});
|
|
179
225
|
}
|
|
180
|
-
if (
|
|
181
|
-
return
|
|
226
|
+
if (asEngineError(value) !== undefined) {
|
|
227
|
+
return translateEngineError(value);
|
|
182
228
|
}
|
|
183
229
|
if (value instanceof Error) {
|
|
184
|
-
return new TestError('ERROR', value
|
|
230
|
+
return new TestError('ERROR', messageWithCauses(value), { cause: value });
|
|
185
231
|
}
|
|
186
232
|
return new TestError('ERROR', String(value));
|
|
187
233
|
}
|
|
@@ -208,9 +254,13 @@ export function serializeError(error, extras = {}) {
|
|
|
208
254
|
const CONTROL_PATTERN = /[\u0000-\u0008\u000b-\u001f\u007f-\u009f]/g;
|
|
209
255
|
const UTF8 = new TextEncoder();
|
|
210
256
|
const UTF8_DECODER = new TextDecoder();
|
|
211
|
-
/**
|
|
257
|
+
/**
|
|
258
|
+
* Strips ANSI escape sequences, then C0/C1 control characters except tab and
|
|
259
|
+
* newline. Libraries color their own messages; left in, the color codes reach
|
|
260
|
+
* the report as literal text and the terminal as `\uFFFD[31m` noise.
|
|
261
|
+
*/
|
|
212
262
|
export function sanitizeText(text) {
|
|
213
|
-
return text.replace(CONTROL_PATTERN, '\uFFFD');
|
|
263
|
+
return stripVTControlCharacters(text).replace(CONTROL_PATTERN, '\uFFFD');
|
|
214
264
|
}
|
|
215
265
|
/** Truncates a string so its UTF-8 encoding fits maxBytes without splitting a code point. */
|
|
216
266
|
export function truncateUtf8(text, maxBytes) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/internal/errors.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/internal/errors.ts"],"names":[],"mappings":"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"}
|