@gate-forge/pack-playwright 0.7.0 → 0.8.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 +31 -0
- package/dist/constants.d.ts +13 -140
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +13 -148
- package/dist/constants.js.map +1 -1
- package/dist/cypress/plugin.d.ts +53 -0
- package/dist/cypress/plugin.d.ts.map +1 -0
- package/dist/cypress/plugin.js +369 -0
- package/dist/cypress/plugin.js.map +1 -0
- package/dist/cypress/spec-scan.d.ts +39 -0
- package/dist/cypress/spec-scan.d.ts.map +1 -0
- package/dist/cypress/spec-scan.js +301 -0
- package/dist/cypress/spec-scan.js.map +1 -0
- package/dist/diagnosis.d.ts +39 -0
- package/dist/diagnosis.d.ts.map +1 -0
- package/dist/diagnosis.js +63 -0
- package/dist/diagnosis.js.map +1 -0
- package/dist/discovery/adapter-projection.d.ts +13 -0
- package/dist/discovery/adapter-projection.d.ts.map +1 -0
- package/dist/discovery/adapter-projection.js +84 -0
- package/dist/discovery/adapter-projection.js.map +1 -0
- package/dist/discovery/config-locations.d.ts +5 -0
- package/dist/discovery/config-locations.d.ts.map +1 -0
- package/dist/discovery/config-locations.js +19 -0
- package/dist/discovery/config-locations.js.map +1 -0
- package/dist/discovery/cypress-runner-adapter.d.ts +112 -0
- package/dist/discovery/cypress-runner-adapter.d.ts.map +1 -0
- package/dist/discovery/cypress-runner-adapter.js +501 -0
- package/dist/discovery/cypress-runner-adapter.js.map +1 -0
- package/dist/discovery/discover.d.ts +53 -1
- package/dist/discovery/discover.d.ts.map +1 -1
- package/dist/discovery/discover.js +100 -3
- package/dist/discovery/discover.js.map +1 -1
- package/dist/discovery/git-ignore.d.ts +13 -0
- package/dist/discovery/git-ignore.d.ts.map +1 -0
- package/dist/discovery/git-ignore.js +62 -0
- package/dist/discovery/git-ignore.js.map +1 -0
- package/dist/discovery/index.d.ts +9 -0
- package/dist/discovery/index.d.ts.map +1 -1
- package/dist/discovery/index.js +9 -0
- package/dist/discovery/index.js.map +1 -1
- package/dist/discovery/playwright-runner-adapter.d.ts +108 -0
- package/dist/discovery/playwright-runner-adapter.d.ts.map +1 -0
- package/dist/discovery/playwright-runner-adapter.js +185 -0
- package/dist/discovery/playwright-runner-adapter.js.map +1 -0
- package/dist/discovery/prepare-barrier.d.ts +522 -0
- package/dist/discovery/prepare-barrier.d.ts.map +1 -0
- package/dist/discovery/prepare-barrier.js +739 -0
- package/dist/discovery/prepare-barrier.js.map +1 -0
- package/dist/discovery/pytest-adapter.d.ts.map +1 -1
- package/dist/discovery/pytest-adapter.js +6 -2
- package/dist/discovery/pytest-adapter.js.map +1 -1
- package/dist/discovery/pytest-runner-adapter.d.ts +124 -0
- package/dist/discovery/pytest-runner-adapter.d.ts.map +1 -0
- package/dist/discovery/pytest-runner-adapter.js +454 -0
- package/dist/discovery/pytest-runner-adapter.js.map +1 -0
- package/dist/discovery/reconcile.d.ts +80 -11
- package/dist/discovery/reconcile.d.ts.map +1 -1
- package/dist/discovery/reconcile.js +395 -78
- package/dist/discovery/reconcile.js.map +1 -1
- package/dist/discovery/runner-env.d.ts +88 -2
- package/dist/discovery/runner-env.d.ts.map +1 -1
- package/dist/discovery/runner-env.js +142 -4
- package/dist/discovery/runner-env.js.map +1 -1
- package/dist/discovery/static-discovery.d.ts +38 -3
- package/dist/discovery/static-discovery.d.ts.map +1 -1
- package/dist/discovery/static-discovery.js +454 -15
- package/dist/discovery/static-discovery.js.map +1 -1
- package/dist/discovery/supervised-run.d.ts +199 -10
- package/dist/discovery/supervised-run.d.ts.map +1 -1
- package/dist/discovery/supervised-run.js +350 -39
- package/dist/discovery/supervised-run.js.map +1 -1
- package/dist/discovery/trusted-config.d.ts +180 -6
- package/dist/discovery/trusted-config.d.ts.map +1 -1
- package/dist/discovery/trusted-config.js +279 -10
- package/dist/discovery/trusted-config.js.map +1 -1
- package/dist/discovery/vitest-runner-adapter.d.ts +172 -0
- package/dist/discovery/vitest-runner-adapter.d.ts.map +1 -0
- package/dist/discovery/vitest-runner-adapter.js +607 -0
- package/dist/discovery/vitest-runner-adapter.js.map +1 -0
- package/dist/fixture/consumer-runner.d.ts +4 -0
- package/dist/fixture/consumer-runner.d.ts.map +1 -0
- package/dist/fixture/consumer-runner.js +38 -0
- package/dist/fixture/consumer-runner.js.map +1 -0
- package/dist/fixture/evidence.d.ts +27 -0
- package/dist/fixture/evidence.d.ts.map +1 -1
- package/dist/fixture/evidence.js +12 -0
- package/dist/fixture/evidence.js.map +1 -1
- package/dist/fixture/fixture.d.ts +2 -1
- package/dist/fixture/fixture.d.ts.map +1 -1
- package/dist/fixture/fixture.js +1 -17
- package/dist/fixture/fixture.js.map +1 -1
- package/dist/fixture/witness-client.d.ts +6 -174
- package/dist/fixture/witness-client.d.ts.map +1 -1
- package/dist/fixture/witness-client.js +6 -267
- package/dist/fixture/witness-client.js.map +1 -1
- package/dist/index.d.ts +9 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/json.d.ts +6 -12
- package/dist/json.d.ts.map +1 -1
- package/dist/json.js +6 -17
- package/dist/json.js.map +1 -1
- package/dist/reporter/project-graph-reporter.d.ts +92 -0
- package/dist/reporter/project-graph-reporter.d.ts.map +1 -0
- package/dist/reporter/project-graph-reporter.js +92 -0
- package/dist/reporter/project-graph-reporter.js.map +1 -0
- package/dist/reporter/reporter.cjs.map +1 -1
- package/dist/reporter/reporter.d.ts +93 -4
- package/dist/reporter/reporter.d.ts.map +1 -1
- package/dist/reporter/reporter.js +174 -18
- package/dist/reporter/reporter.js.map +1 -1
- package/dist/runner-claims.d.ts +13 -0
- package/dist/runner-claims.d.ts.map +1 -0
- package/dist/runner-claims.js +46 -0
- package/dist/runner-claims.js.map +1 -0
- package/dist/runner-resolution.d.ts +3 -0
- package/dist/runner-resolution.d.ts.map +1 -0
- package/dist/runner-resolution.js +14 -0
- package/dist/runner-resolution.js.map +1 -0
- package/dist/supervisor/client.d.ts +23 -1
- package/dist/supervisor/client.d.ts.map +1 -1
- package/dist/supervisor/client.js +49 -0
- package/dist/supervisor/client.js.map +1 -1
- package/dist/supervisor/drain.d.ts +65 -0
- package/dist/supervisor/drain.d.ts.map +1 -1
- package/dist/supervisor/drain.js +353 -9
- package/dist/supervisor/drain.js.map +1 -1
- package/dist/supervisor/index.d.ts +7 -3
- package/dist/supervisor/index.d.ts.map +1 -1
- package/dist/supervisor/index.js +7 -3
- package/dist/supervisor/index.js.map +1 -1
- package/dist/supervisor/spool.d.ts +65 -2
- package/dist/supervisor/spool.d.ts.map +1 -1
- package/dist/supervisor/spool.js +47 -0
- package/dist/supervisor/spool.js.map +1 -1
- package/dist/surface.d.ts +6 -207
- package/dist/surface.d.ts.map +1 -1
- package/dist/surface.js +6 -264
- package/dist/surface.js.map +1 -1
- package/dist/vitest/index.d.ts +23 -0
- package/dist/vitest/index.d.ts.map +1 -0
- package/dist/vitest/index.js +356 -0
- package/dist/vitest/index.js.map +1 -0
- package/dist/vitest/reporter.d.ts +83 -0
- package/dist/vitest/reporter.d.ts.map +1 -0
- package/dist/vitest/reporter.js +211 -0
- package/dist/vitest/reporter.js.map +1 -0
- package/dist/vitest/worker-slot.d.ts +36 -0
- package/dist/vitest/worker-slot.d.ts.map +1 -0
- package/dist/vitest/worker-slot.js +51 -0
- package/dist/vitest/worker-slot.js.map +1 -0
- package/dist/witness/adapter-registry.d.ts +6 -50
- package/dist/witness/adapter-registry.d.ts.map +1 -1
- package/dist/witness/adapter-registry.js +6 -257
- package/dist/witness/adapter-registry.js.map +1 -1
- package/dist/witness/behavior-request.d.ts +6 -76
- package/dist/witness/behavior-request.d.ts.map +1 -1
- package/dist/witness/behavior-request.js +6 -273
- package/dist/witness/behavior-request.js.map +1 -1
- package/dist/witness/behavior.d.ts +6 -48
- package/dist/witness/behavior.d.ts.map +1 -1
- package/dist/witness/behavior.js +6 -114
- package/dist/witness/behavior.js.map +1 -1
- package/dist/witness/bin.d.ts +6 -17
- package/dist/witness/bin.d.ts.map +1 -1
- package/dist/witness/bin.js +6 -168
- package/dist/witness/bin.js.map +1 -1
- package/dist/witness/browser.d.ts +14 -206
- package/dist/witness/browser.d.ts.map +1 -1
- package/dist/witness/browser.js +15 -654
- package/dist/witness/browser.js.map +1 -1
- package/dist/witness/classifications.d.ts +6 -38
- package/dist/witness/classifications.d.ts.map +1 -1
- package/dist/witness/classifications.js +6 -83
- package/dist/witness/classifications.js.map +1 -1
- package/dist/witness/env-attestation.d.ts +6 -94
- package/dist/witness/env-attestation.d.ts.map +1 -1
- package/dist/witness/env-attestation.js +6 -198
- package/dist/witness/env-attestation.js.map +1 -1
- package/dist/witness/fixture-provider.d.ts +6 -82
- package/dist/witness/fixture-provider.d.ts.map +1 -1
- package/dist/witness/fixture-provider.js +6 -105
- package/dist/witness/fixture-provider.js.map +1 -1
- package/dist/witness/loopback-pins.d.ts +6 -75
- package/dist/witness/loopback-pins.d.ts.map +1 -1
- package/dist/witness/loopback-pins.js +6 -240
- package/dist/witness/loopback-pins.js.map +1 -1
- package/dist/witness/server.d.ts +8 -26
- package/dist/witness/server.d.ts.map +1 -1
- package/dist/witness/server.js +24 -3761
- package/dist/witness/server.js.map +1 -1
- package/dist/witness/types.d.ts +6 -882
- package/dist/witness/types.d.ts.map +1 -1
- package/dist/witness/types.js +9 -1
- package/dist/witness/types.js.map +1 -1
- package/examples/overlay-proof.spec.js +75 -0
- package/package.json +8 -2
- package/python/gateforge_pytest_plugin.py +462 -0
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Playwright runner adapter behind the runner-neutral
|
|
3
|
+
* `RunnerAdapter` contract (plan 2026-09-25 phase 0).
|
|
4
|
+
*
|
|
5
|
+
* This is NOT a rewrite of the Playwright path: every call lands on the
|
|
6
|
+
* code the supervised run already used (`discoverTestCatalog`,
|
|
7
|
+
* `executeSupervisedPlaywright`, `parseOutcomesText`). Its job is to
|
|
8
|
+
* state the four jobs — enumerate, tag, execute, parse — in the shape
|
|
9
|
+
* every other runner will use, so the contract suite has something
|
|
10
|
+
* honest to grade (phase 0 acceptance: "the contract suite runs against
|
|
11
|
+
* the current Playwright path and passes").
|
|
12
|
+
*
|
|
13
|
+
* Compatibility: nothing here is on the supervised-run path. The
|
|
14
|
+
* existing `PlaywrightAdapter` (discovery/adapters.ts) keeps serving the
|
|
15
|
+
* CLI unchanged; this adapter is the contract-shaped view of the same
|
|
16
|
+
* machinery.
|
|
17
|
+
*/
|
|
18
|
+
import { loadConfig } from '@gate-forge/core';
|
|
19
|
+
import { ENV_APP_BASE_URL, ENV_RUN_TOKEN, ENV_WITNESS_URL } from '../constants.js';
|
|
20
|
+
import { discoverTestCatalog } from './discover.js';
|
|
21
|
+
import { executeSupervisedPlaywright, parseOutcomesText } from './supervised-run.js';
|
|
22
|
+
/**
|
|
23
|
+
* Per-test session variables a runner adapter publishes to the test.
|
|
24
|
+
*
|
|
25
|
+
* These are the values the trusted CLI resolves for ONE supervisor-
|
|
26
|
+
* opened session and hands to that test alone. They are new env NAMES
|
|
27
|
+
* (additive — the frozen Playwright child allowlist is untouched, so an
|
|
28
|
+
* existing Playwright user's run env is byte-identical); the Playwright
|
|
29
|
+
* fixture itself receives the same values through the supervisor's
|
|
30
|
+
* session-resolve response rather than through the environment.
|
|
31
|
+
*/
|
|
32
|
+
export const ENV_SESSION_ID = 'GATEFORGE_SESSION_ID';
|
|
33
|
+
export const ENV_SESSION_TOKEN = 'GATEFORGE_SESSION_TOKEN';
|
|
34
|
+
export const ENV_SESSION_PROXY_URL = 'GATEFORGE_SESSION_PROXY_URL';
|
|
35
|
+
/** The variables that carry ONE test's identity to its traffic. */
|
|
36
|
+
export const PLAYWRIGHT_IDENTITY_ENV = [
|
|
37
|
+
ENV_SESSION_ID,
|
|
38
|
+
ENV_SESSION_TOKEN,
|
|
39
|
+
ENV_SESSION_PROXY_URL,
|
|
40
|
+
];
|
|
41
|
+
/** Playwright behind the runner-neutral contract. */
|
|
42
|
+
export class PlaywrightRunnerAdapter {
|
|
43
|
+
options;
|
|
44
|
+
runner = 'playwright';
|
|
45
|
+
capabilities = {
|
|
46
|
+
inventory: 'available',
|
|
47
|
+
resolveInstances: 'available',
|
|
48
|
+
execute: 'available',
|
|
49
|
+
};
|
|
50
|
+
constructor(options = {}) {
|
|
51
|
+
this.options = options;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Job 1: the expected set, fixed BEFORE the run (static scan
|
|
55
|
+
* reconciled against the native list).
|
|
56
|
+
*
|
|
57
|
+
* Args:
|
|
58
|
+
* cwd: absolute repo root the playwright configuration lives under.
|
|
59
|
+
*
|
|
60
|
+
* Returns:
|
|
61
|
+
* Promise<RunnerEnumeration>: the enumerated tests, or an
|
|
62
|
+
* `unavailable` verdict. A project with no configured tests is
|
|
63
|
+
* `unavailable`, never an empty `discovered` list: nothing executed
|
|
64
|
+
* proves nothing.
|
|
65
|
+
*/
|
|
66
|
+
async enumerate(cwd) {
|
|
67
|
+
let config;
|
|
68
|
+
try {
|
|
69
|
+
config = this.options.config ?? loadConfig(`${cwd}/.gateforge.yml`);
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
return {
|
|
73
|
+
status: 'unavailable',
|
|
74
|
+
detail: `playwright enumeration could not load the gateforge config: ${describeError(error)}`,
|
|
75
|
+
tests: [],
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
let catalog;
|
|
79
|
+
try {
|
|
80
|
+
const discovered = await discoverTestCatalog({ cwd, config, ...this.options.discover });
|
|
81
|
+
catalog = discovered.catalog;
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
return {
|
|
85
|
+
status: 'unavailable',
|
|
86
|
+
detail: `playwright enumeration failed: ${describeError(error)}`,
|
|
87
|
+
tests: [],
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
const tests = catalog.entries
|
|
91
|
+
.filter((entry) => entry.runner === 'playwright')
|
|
92
|
+
.map((entry) => ({
|
|
93
|
+
logicalKey: entry.logicalKey,
|
|
94
|
+
project: entry.project,
|
|
95
|
+
file: entry.file,
|
|
96
|
+
titlePath: entry.titlePath,
|
|
97
|
+
blockingAnnotations: [
|
|
98
|
+
...new Set(entry.suppressionSignals
|
|
99
|
+
.filter((signal) => signal.kind === 'only' || signal.kind === 'skip' || signal.kind === 'fixme')
|
|
100
|
+
.map((signal) => signal.kind)),
|
|
101
|
+
].sort(),
|
|
102
|
+
// The native reporter's own instance id (the same value the
|
|
103
|
+
// supervised registration path uses).
|
|
104
|
+
frameworkId: entry.parameterIdentity ?? undefined,
|
|
105
|
+
}))
|
|
106
|
+
.sort((a, b) => (a.logicalKey < b.logicalKey ? -1 : a.logicalKey > b.logicalKey ? 1 : 0));
|
|
107
|
+
if (tests.length === 0) {
|
|
108
|
+
return {
|
|
109
|
+
status: 'unavailable',
|
|
110
|
+
detail: `playwright enumeration found no tests under ${cwd} — a zero-test run never proves coverage`,
|
|
111
|
+
tests: [],
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
return { status: 'discovered', detail: `enumerated ${String(tests.length)} playwright test(s)`, tests };
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Job 2: the per-test tag. Playwright's channel is the session proxy
|
|
118
|
+
* origin: the fixture resolves the supervisor-opened session for the
|
|
119
|
+
* current test and routes the page through that origin, so every
|
|
120
|
+
* exchange — absolute paths included — is attributed to THAT session.
|
|
121
|
+
*
|
|
122
|
+
* Args:
|
|
123
|
+
* session: the test being tagged.
|
|
124
|
+
* context: run-scoped, non-secret witness wiring.
|
|
125
|
+
*
|
|
126
|
+
* Returns:
|
|
127
|
+
* RunnerChildEnv: the run identity plus the session-scoped tag.
|
|
128
|
+
*/
|
|
129
|
+
childEnv(_session, context) {
|
|
130
|
+
return {
|
|
131
|
+
vars: {
|
|
132
|
+
[ENV_WITNESS_URL]: context.witnessUrl,
|
|
133
|
+
[ENV_RUN_TOKEN]: context.runToken,
|
|
134
|
+
[ENV_APP_BASE_URL]: context.appBaseUrl,
|
|
135
|
+
[ENV_SESSION_ID]: context.sessionId,
|
|
136
|
+
[ENV_SESSION_TOKEN]: context.sessionToken,
|
|
137
|
+
[ENV_SESSION_PROXY_URL]: context.sessionProxyUrl,
|
|
138
|
+
},
|
|
139
|
+
tagChannel: 'session-proxy',
|
|
140
|
+
identityVars: PLAYWRIGHT_IDENTITY_ENV,
|
|
141
|
+
mechanism: 'gateforge playwright fixture resolves the supervisor session for the running test and routes its page through the per-test session proxy origin',
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Job 3: the supervised run (unchanged machinery, contract shape).
|
|
146
|
+
*
|
|
147
|
+
* Args:
|
|
148
|
+
* request: the exact selection, run identity, and wall-clock bound.
|
|
149
|
+
*
|
|
150
|
+
* Returns:
|
|
151
|
+
* Promise<RunnerExecutionEnvelope>: the structured outcome envelope.
|
|
152
|
+
*/
|
|
153
|
+
async execute(request) {
|
|
154
|
+
return executeSupervisedPlaywright({ logicalKeys: request.logicalKeys }, { stateDir: request.stateDir, runId: request.runId, vars: {} }, {
|
|
155
|
+
cwd: request.cwd,
|
|
156
|
+
timeoutMs: request.timeoutMs,
|
|
157
|
+
// The project selection is part of the identity join key: a run
|
|
158
|
+
// that does not select the enumerated projects reports outcomes
|
|
159
|
+
// under different identities than the expected set was fixed
|
|
160
|
+
// with, and supervision (correctly) calls them unplanned.
|
|
161
|
+
...(request.testLocations !== undefined ? { testLocations: request.testLocations } : {}),
|
|
162
|
+
...(request.projects !== undefined ? { projects: request.projects } : {}),
|
|
163
|
+
...this.options.run,
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Job 4: the gateforge reporter's runner-outcomes document, through
|
|
168
|
+
* the SAME validation and mapping the supervised run uses.
|
|
169
|
+
*
|
|
170
|
+
* Args:
|
|
171
|
+
* raw: the outcomes document JSON text plus the runner exit status.
|
|
172
|
+
*
|
|
173
|
+
* Returns:
|
|
174
|
+
* RunnerExecutionEnvelope: reporter input, never a verdict. An
|
|
175
|
+
* unreadable or malformed document is `complete: false`.
|
|
176
|
+
*/
|
|
177
|
+
parseResults(raw) {
|
|
178
|
+
return parseOutcomesText(raw.report, raw.processExit);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
/** Single-line message of an unknown thrown value. */
|
|
182
|
+
function describeError(error) {
|
|
183
|
+
return error instanceof Error ? error.message : String(error);
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=playwright-runner-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playwright-runner-adapter.js","sourceRoot":"","sources":["../../src/discovery/playwright-runner-adapter.ts"],"names":[],"mappings":"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"}
|