@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/run/fixtures.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
/** Attempt-scoped fixture graph
|
|
1
|
+
/** Attempt-scoped fixture graph. */
|
|
2
2
|
import { createAgentFixture } from '../agent/index.js';
|
|
3
3
|
import { createModelRouter } from '../agent/model/router.js';
|
|
4
4
|
import { createModelAdapter } from '../agent/model/sdk.js';
|
|
5
5
|
import { expectationBrand } from '../internal/brands.js';
|
|
6
|
-
import { ConfigurationError } from '../internal/errors.js';
|
|
6
|
+
import { ConfigurationError, errorMessage, InfrastructureError } from '../internal/errors.js';
|
|
7
|
+
import { didYouMean } from '../internal/suggest.js';
|
|
7
8
|
import { SecretLedger } from '../internal/redact.js';
|
|
9
|
+
import { obj } from '../internal/objects.js';
|
|
8
10
|
import { resolveNavigationUrl } from '../internal/urls.js';
|
|
9
11
|
import { FixtureRecorder } from './fixture-recording.js';
|
|
10
|
-
import { recordedSurface, StepAttachments } from './fixture-legacy.js';
|
|
11
12
|
import { LocatorEngine } from '../locator/engine.js';
|
|
12
13
|
import { createLocator, createScopedScreen, createScreen, } from '../locator/screen.js';
|
|
13
14
|
/** Secrets survive every fixture graph that shares the same live isolation. */
|
|
@@ -70,6 +71,7 @@ export function createFixtures(environment) {
|
|
|
70
71
|
platform: environment.target.platform,
|
|
71
72
|
verbs: environment.session.verbs,
|
|
72
73
|
},
|
|
74
|
+
app: environment.target.app,
|
|
73
75
|
attempt: environment.attempt,
|
|
74
76
|
priorSteps: environment.priorSteps,
|
|
75
77
|
agentContext: joinAgentContext(environment.config.agent.context, environment.agentContext),
|
|
@@ -102,9 +104,17 @@ export function createFixtures(environment) {
|
|
|
102
104
|
}
|
|
103
105
|
/** Keys a test body may probe without meaning a fixture. */
|
|
104
106
|
const PROBED_KEYS = new Set(['then', 'constructor', 'toJSON', 'toString', 'valueOf', 'inspect']);
|
|
107
|
+
/** Fixtures other runners hand out, each pointed at the e2e way of doing the same thing. */
|
|
108
|
+
const FOREIGN_FIXTURE_HINTS = {
|
|
109
|
+
page: 'there is no Playwright page: open the app with app.open() and find elements through screen; browser-only APIs are on the web fixture of a Playwright target',
|
|
110
|
+
browser: 'the browser is owned by the engine: drive it through app, screen, and (on a Playwright target) web',
|
|
111
|
+
context: 'the browser context is owned by the engine: cookies, routes, and storage are on the web fixture of a Playwright target',
|
|
112
|
+
request: 'there is no request fixture: call fetch() directly, or reach the browser through the web fixture of a Playwright target',
|
|
113
|
+
driver: 'there is no WebDriver session: drive the device through app, screen, and (on an agent-device target) device',
|
|
114
|
+
};
|
|
105
115
|
/**
|
|
106
|
-
* Reaching for a fixture the target's
|
|
107
|
-
* the first touch with the earliest honest error: the
|
|
116
|
+
* Reaching for a fixture the target's engine does not contribute fails at
|
|
117
|
+
* the first touch with the earliest honest error: the engine's name and what
|
|
108
118
|
* it does declare, instead of a TypeError three lines later.
|
|
109
119
|
*/
|
|
110
120
|
function gateUnknownFixtures(fixtures, environment) {
|
|
@@ -113,53 +123,53 @@ function gateUnknownFixtures(fixtures, environment) {
|
|
|
113
123
|
if (typeof property !== 'string' || property in target || PROBED_KEYS.has(property)) {
|
|
114
124
|
return Reflect.get(target, property, receiver);
|
|
115
125
|
}
|
|
116
|
-
const
|
|
117
|
-
const declared = Object.keys(
|
|
118
|
-
|
|
126
|
+
const engine = environment.target.engine;
|
|
127
|
+
const declared = Object.keys(engine?.fixtures ?? {});
|
|
128
|
+
const available = Object.keys(target).toSorted();
|
|
129
|
+
const contributed = `engine ${engine?.name ?? 'none'} contributes ${declared.length === 0 ? 'no fixtures' : declared.join(', ')}`;
|
|
130
|
+
const foreign = FOREIGN_FIXTURE_HINTS[property];
|
|
131
|
+
const hint = foreign === undefined ? didYouMean(property, available) : `; ${foreign}`;
|
|
132
|
+
throw new ConfigurationError('UNSUPPORTED_CAPABILITY', `target "${environment.target.name}" has no "${property}" fixture; available: ${available.join(', ')} (${contributed})${hint}`);
|
|
119
133
|
},
|
|
120
134
|
});
|
|
121
135
|
}
|
|
122
136
|
/**
|
|
123
|
-
*
|
|
124
|
-
* through context.fixture
|
|
125
|
-
*
|
|
126
|
-
*
|
|
137
|
+
* Engine-contributed fixtures: factories declare operation metadata
|
|
138
|
+
* through context.fixture and must return the surface they declared. Factories
|
|
139
|
+
* stay lazy and each instance belongs to one test's fixture graph; the
|
|
140
|
+
* session's secrecy state outlives that graph.
|
|
127
141
|
*/
|
|
128
142
|
function contributedFixtures(environment, engine, screenContext) {
|
|
129
|
-
const declared = environment.target.
|
|
143
|
+
const declared = environment.target.engine?.fixtures;
|
|
130
144
|
if (declared === undefined)
|
|
131
145
|
return {};
|
|
132
146
|
const contributed = {};
|
|
133
|
-
const attachments = new StepAttachments(environment.steps);
|
|
134
147
|
const recorder = new FixtureRecorder(environment);
|
|
135
|
-
const context = fixtureContext(environment, engine, screenContext,
|
|
148
|
+
const context = fixtureContext(environment, engine, screenContext, recorder);
|
|
136
149
|
for (const [name, factory] of Object.entries(declared)) {
|
|
137
150
|
let instance;
|
|
138
151
|
Object.defineProperty(contributed, name, {
|
|
139
152
|
enumerable: true,
|
|
140
153
|
get() {
|
|
141
|
-
instance ??= recorder.
|
|
142
|
-
path: [name],
|
|
143
|
-
kind: 'resource',
|
|
144
|
-
bounded: true,
|
|
145
|
-
}));
|
|
154
|
+
instance ??= recorder.require(name, factory(context));
|
|
146
155
|
return instance;
|
|
147
156
|
},
|
|
148
157
|
});
|
|
149
158
|
}
|
|
150
159
|
return contributed;
|
|
151
160
|
}
|
|
152
|
-
function fixtureContext(environment, engine, screenContext,
|
|
161
|
+
function fixtureContext(environment, engine, screenContext, recorder) {
|
|
153
162
|
const { config, steps } = environment;
|
|
163
|
+
const { app } = environment.target;
|
|
154
164
|
return {
|
|
155
165
|
targetName: environment.target.name,
|
|
156
166
|
fixture: (name, surface, operations) => recorder.fixture(name, surface, operations),
|
|
157
167
|
app: {
|
|
158
|
-
...(
|
|
159
|
-
allowedOrigins:
|
|
168
|
+
...obj({ baseUrl: app.base?.href }),
|
|
169
|
+
allowedOrigins: app.allowedOrigins,
|
|
160
170
|
resolveUrl: (url) => {
|
|
161
|
-
requireAppUrl(
|
|
162
|
-
return resolveNavigationUrl(url,
|
|
171
|
+
requireAppUrl(environment.target);
|
|
172
|
+
return resolveNavigationUrl(url, app.base, app.allowedOrigins).url;
|
|
163
173
|
},
|
|
164
174
|
},
|
|
165
175
|
timeouts: {
|
|
@@ -172,8 +182,8 @@ function fixtureContext(environment, engine, screenContext, attachments, recorde
|
|
|
172
182
|
return engine.signal;
|
|
173
183
|
},
|
|
174
184
|
operation: (timeoutMs) => engine.operation(timeoutMs),
|
|
175
|
-
attachArtifact: (kind, relativePath) =>
|
|
176
|
-
attachViewport: (viewport) =>
|
|
185
|
+
attachArtifact: (kind, relativePath) => steps.attachArtifact(environment.artifacts.register(kind, relativePath)),
|
|
186
|
+
attachViewport: (viewport) => steps.attachViewport(viewport),
|
|
177
187
|
locator: (expression) => createLocator(screenContext, expression),
|
|
178
188
|
screen: (wrap) => createScopedScreen(screenContext, wrap),
|
|
179
189
|
expectable(target, factory) {
|
|
@@ -182,11 +192,7 @@ function fixtureContext(environment, engine, screenContext, attachments, recorde
|
|
|
182
192
|
enumerable: false,
|
|
183
193
|
configurable: true,
|
|
184
194
|
get: () => {
|
|
185
|
-
surface ??= recorder.
|
|
186
|
-
path: ['expect'],
|
|
187
|
-
kind: 'assertion',
|
|
188
|
-
bounded: false,
|
|
189
|
-
}));
|
|
195
|
+
surface ??= recorder.require('expect', factory());
|
|
190
196
|
return surface;
|
|
191
197
|
},
|
|
192
198
|
});
|
|
@@ -227,22 +233,44 @@ function joinAgentContext(configContext, testContext) {
|
|
|
227
233
|
function initialSecretLedger(environment) {
|
|
228
234
|
return new SecretLedger([...environment.config.credentials].flatMap(([name, { password }]) => typeof password === 'string' ? [[name, password]] : []));
|
|
229
235
|
}
|
|
230
|
-
/** Navigation needs
|
|
231
|
-
function requireAppUrl(
|
|
232
|
-
if (
|
|
236
|
+
/** Navigation needs an app URL, and only the target's engine can declare one. */
|
|
237
|
+
function requireAppUrl(target) {
|
|
238
|
+
if (target.app.base !== undefined)
|
|
233
239
|
return;
|
|
234
|
-
throw new ConfigurationError('APP_URL_REQUIRED',
|
|
240
|
+
throw new ConfigurationError('APP_URL_REQUIRED', `navigation needs an app URL: the engine of target "${target.name}" declares none (${target.engine?.name ?? 'no engine'})`);
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Network-level failures a browser or device reports when nothing is
|
|
244
|
+
* listening where the app should be. Anything else that fails a navigation
|
|
245
|
+
* (a certificate, a 500, a crash mid-load) stays an engine failure.
|
|
246
|
+
*/
|
|
247
|
+
const NOTHING_LISTENING = /ERR_CONNECTION_REFUSED|ECONNREFUSED|ERR_NAME_NOT_RESOLVED|ENOTFOUND|ERR_ADDRESS_UNREACHABLE|EHOSTUNREACH|ERR_CONNECTION_TIMED_OUT|ETIMEDOUT/;
|
|
248
|
+
/**
|
|
249
|
+
* A navigation the network refused means the app is down, which is the
|
|
250
|
+
* first thing a new project runs into and the last thing an engine failure
|
|
251
|
+
* message suggests. Named by its own code, with the URL and the three ways
|
|
252
|
+
* to fix it.
|
|
253
|
+
*/
|
|
254
|
+
function unreachableApp(cause, url) {
|
|
255
|
+
const match = NOTHING_LISTENING.exec(errorMessage(cause));
|
|
256
|
+
if (match === null)
|
|
257
|
+
return undefined;
|
|
258
|
+
return new InfrastructureError('APP_UNREACHABLE', `nothing answered at ${url} (${match[0]}); start the app there, point the engine's url at where it runs, or give the engine a command so the runner starts it`, { cause });
|
|
235
259
|
}
|
|
236
260
|
function createApp(environment, engine) {
|
|
237
|
-
const { config, steps } = environment;
|
|
238
|
-
const allowed = config.app.allowedOrigins;
|
|
261
|
+
const { config, steps, target } = environment;
|
|
239
262
|
/** One recorded navigation: policy-resolved against the base URL, on the test budget. */
|
|
240
|
-
const navigate = (api, label,
|
|
241
|
-
requireAppUrl(
|
|
242
|
-
const resolved =
|
|
243
|
-
?
|
|
244
|
-
: resolveNavigationUrl(
|
|
245
|
-
|
|
263
|
+
const navigate = (api, label, url) => steps.run('app', api, label, async () => {
|
|
264
|
+
requireAppUrl(target);
|
|
265
|
+
const resolved = url === undefined
|
|
266
|
+
? target.app.base.href
|
|
267
|
+
: resolveNavigationUrl(url, target.app.base, target.app.allowedOrigins).url;
|
|
268
|
+
try {
|
|
269
|
+
await engine.session.app.open(resolved, engine.operation(config.timeout));
|
|
270
|
+
}
|
|
271
|
+
catch (cause) {
|
|
272
|
+
throw unreachableApp(cause, resolved) ?? cause;
|
|
273
|
+
}
|
|
246
274
|
});
|
|
247
275
|
return {
|
|
248
276
|
open: (openPath) => navigate('app.open', openPath ?? '/', openPath),
|
package/dist/run/fixtures.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../src/run/fixtures.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../src/run/fixtures.ts"],"names":[],"mappings":"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"}
|
package/dist/run/in-process.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* In-process `UnitRunner`, used when the config cannot cross a process
|
|
3
|
-
* boundary — a programmatic `rawConfig` may hold live
|
|
3
|
+
* boundary — a programmatic `rawConfig` may hold live engine handles and
|
|
4
4
|
* closures. Execution still goes through the scheduler and the same
|
|
5
5
|
* `TargetWorker` core; only the transport and pair resolution differ, and the
|
|
6
6
|
* scheduler is capped at one worker so nothing overlaps in this process.
|
package/dist/run/in-process.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* In-process `UnitRunner`, used when the config cannot cross a process
|
|
3
|
-
* boundary — a programmatic `rawConfig` may hold live
|
|
3
|
+
* boundary — a programmatic `rawConfig` may hold live engine handles and
|
|
4
4
|
* closures. Execution still goes through the scheduler and the same
|
|
5
5
|
* `TargetWorker` core; only the transport and pair resolution differ, and the
|
|
6
6
|
* scheduler is capped at one worker so nothing overlaps in this process.
|
|
@@ -1,38 +1,74 @@
|
|
|
1
|
-
/** Spawned-process management for
|
|
1
|
+
/** Spawned-process management for the commands and services engines declare, and their teardowns. */
|
|
2
2
|
import type { Readiness, ResolvedService } from '../config/app.ts';
|
|
3
3
|
import type { CommandConfig } from '../types.ts';
|
|
4
|
+
/**
|
|
5
|
+
* Kills every process group this module spawned and has not yet seen exit,
|
|
6
|
+
* synchronously and without waiting: the last resort before the process
|
|
7
|
+
* exits on the spot, so nothing it started outlives it. A reused process was
|
|
8
|
+
* never spawned here and is left alone.
|
|
9
|
+
*/
|
|
10
|
+
export declare function killManagedProcessGroups(): void;
|
|
11
|
+
/**
|
|
12
|
+
* What the runner tells a managed process about the run: whether CI mode is
|
|
13
|
+
* active (where `reuseExisting` is ignored) and where to narrate run-level
|
|
14
|
+
* progress such as a reused app.
|
|
15
|
+
*/
|
|
16
|
+
export interface ManagedProcessHooks {
|
|
17
|
+
readonly ci?: boolean;
|
|
18
|
+
readonly notice?: (message: string) => void;
|
|
19
|
+
}
|
|
4
20
|
/**
|
|
5
21
|
* One command the runner owns: spawned as a process group, waited on until
|
|
6
22
|
* its readiness contract holds, and terminated signal-then-force. `label`
|
|
7
|
-
* names it in every error (`
|
|
23
|
+
* names it in every error (`target "web" command`, `service "postgres"`).
|
|
8
24
|
*/
|
|
9
25
|
export declare class ManagedProcess {
|
|
10
26
|
private readonly label;
|
|
11
27
|
private readonly command;
|
|
12
28
|
private readonly projectRoot;
|
|
13
29
|
private readonly readiness;
|
|
30
|
+
private readonly hooks;
|
|
14
31
|
private child;
|
|
15
|
-
|
|
32
|
+
private reusedExisting;
|
|
33
|
+
constructor(label: string, command: CommandConfig, projectRoot: string, readiness: Readiness, hooks?: ManagedProcessHooks);
|
|
34
|
+
/** True once `start` found the readiness URL already answering and attached to it instead of spawning. */
|
|
35
|
+
get reused(): boolean;
|
|
16
36
|
/**
|
|
17
37
|
* Spawns the process group and waits for readiness. An already aborted
|
|
18
38
|
* `signal` spawns nothing; one that aborts during the wait ends it early and
|
|
19
39
|
* takes the process down with it. The caller reads the signal to learn the
|
|
20
40
|
* run was interrupted.
|
|
41
|
+
*
|
|
42
|
+
* A readiness URL that already answers before the spawn belongs to a
|
|
43
|
+
* process this run did not start, and HTTP readiness cannot tell which
|
|
44
|
+
* process answered later. So the preflight probe decides up front: with
|
|
45
|
+
* `reuseExisting` (outside CI) nothing is spawned and `stop` leaves the
|
|
46
|
+
* process alone; otherwise the launch fails with `APP_ALREADY_RUNNING`
|
|
47
|
+
* rather than letting the old server pass as the new command's readiness.
|
|
48
|
+
* The probe spends from the same `startupTimeout` budget as the wait.
|
|
21
49
|
*/
|
|
22
50
|
start(signal?: AbortSignal): Promise<void>;
|
|
23
|
-
/**
|
|
51
|
+
/**
|
|
52
|
+
* Opens `command.log` for appending, creating its directory, and returns
|
|
53
|
+
* the descriptor the child writes stdout and stderr to. No `log` means the
|
|
54
|
+
* output is discarded as before. The same file across services and runs
|
|
55
|
+
* accumulates, which is what a developer reading a failed boot wants.
|
|
56
|
+
*/
|
|
57
|
+
private openLog;
|
|
58
|
+
/** Gracefully terminates the whole process group, then force-kills. A reused process was never ours to stop. */
|
|
24
59
|
stop(): Promise<void>;
|
|
25
60
|
}
|
|
26
61
|
/**
|
|
27
|
-
* The dependency processes
|
|
28
|
-
* declaration order, each ready before the next starts, and
|
|
29
|
-
* reverse.
|
|
62
|
+
* The dependency processes the engines declared as `services`: started
|
|
63
|
+
* sequentially in declaration order, each ready before the next starts, and
|
|
64
|
+
* torn down in reverse.
|
|
30
65
|
*/
|
|
31
66
|
export declare class ServiceStack {
|
|
32
67
|
private readonly services;
|
|
33
68
|
private readonly projectRoot;
|
|
69
|
+
private readonly hooks;
|
|
34
70
|
private readonly started;
|
|
35
|
-
constructor(services: readonly ResolvedService[], projectRoot: string);
|
|
71
|
+
constructor(services: readonly ResolvedService[], projectRoot: string, hooks?: ManagedProcessHooks);
|
|
36
72
|
/**
|
|
37
73
|
* Starts every service in order. Stops early once `signal` aborts; the
|
|
38
74
|
* services already started still get their teardown from `stop`.
|
|
@@ -42,7 +78,8 @@ export declare class ServiceStack {
|
|
|
42
78
|
* Stops the started services in reverse order, then runs each of their
|
|
43
79
|
* teardown commands in reverse order and waits for it to exit. A failing
|
|
44
80
|
* teardown is reported through `onFailure` and never skips the rest, so one
|
|
45
|
-
* failing `docker compose down` cannot leave the others running.
|
|
81
|
+
* failing `docker compose down` cannot leave the others running. A reused
|
|
82
|
+
* service was not started by this run, so its teardown does not run either.
|
|
46
83
|
*/
|
|
47
84
|
stop(onFailure: (cause: unknown) => void): Promise<void>;
|
|
48
85
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-process.d.ts","sourceRoot":"","sources":["../../src/run/managed-process.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"managed-process.d.ts","sourceRoot":"","sources":["../../src/run/managed-process.ts"],"names":[],"mappings":"AAAA,qGAAqG;AAKrG,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AA4BjD;;;;;GAKG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AAqBD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAED;;;;GAIG;AACH,qBAAa,cAAc;IAKvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IARxB,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,cAAc,CAAS;IAE/B,YACmB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,SAAS,EACpB,KAAK,GAAE,mBAAwB,EAC9C;IAEJ,0GAA0G;IAC1G,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED;;;;;;;;;;;;;OAaG;IACG,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA2G/C;IAED;;;;;OAKG;IACH,OAAO,CAAC,OAAO;IAef,gHAAgH;IAC1G,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAgB1B;CACF;AAED;;;;GAIG;AACH,qBAAa,YAAY;IAOrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK;IARxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAGf;IAET,YACmB,QAAQ,EAAE,SAAS,eAAe,EAAE,EACpC,WAAW,EAAE,MAAM,EACnB,KAAK,GAAE,mBAAwB,EAC9C;IAEJ;;;OAGG;IACG,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAe/C;IAED;;;;;;OAMG;IACG,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAW7D;CACF"}
|