@lingxia/test 0.18.0 → 0.19.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/dist/clock.d.ts +30 -0
- package/dist/clock.d.ts.map +1 -0
- package/dist/clock.js +99 -0
- package/dist/clock.js.map +1 -0
- package/dist/coverage.d.ts +25 -0
- package/dist/coverage.d.ts.map +1 -0
- package/dist/coverage.js +92 -0
- package/dist/coverage.js.map +1 -0
- package/dist/deadline.d.ts +82 -0
- package/dist/deadline.d.ts.map +1 -0
- package/dist/deadline.js +184 -0
- package/dist/deadline.js.map +1 -0
- package/dist/dialogs.d.ts +28 -0
- package/dist/dialogs.d.ts.map +1 -0
- package/dist/dialogs.js +74 -0
- package/dist/dialogs.js.map +1 -0
- package/dist/equal.d.ts +28 -0
- package/dist/equal.d.ts.map +1 -0
- package/dist/equal.js +149 -0
- package/dist/equal.js.map +1 -0
- package/dist/errors.d.ts +8 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +37 -0
- package/dist/errors.js.map +1 -0
- package/dist/expect.d.ts +35 -7
- package/dist/expect.d.ts.map +1 -1
- package/dist/expect.js +216 -68
- package/dist/expect.js.map +1 -1
- package/dist/fixture.d.ts +201 -23
- package/dist/fixture.d.ts.map +1 -1
- package/dist/fixture.js +1127 -157
- package/dist/fixture.js.map +1 -1
- package/dist/format.d.ts +2 -0
- package/dist/format.d.ts.map +1 -1
- package/dist/format.js +78 -0
- package/dist/format.js.map +1 -1
- package/dist/host-types.d.ts +65 -0
- package/dist/host-types.d.ts.map +1 -0
- package/dist/host-types.js +2 -0
- package/dist/host-types.js.map +1 -0
- package/dist/host.d.ts +20 -0
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +33 -1
- package/dist/host.js.map +1 -1
- package/dist/ids.d.ts +14 -0
- package/dist/ids.d.ts.map +1 -1
- package/dist/ids.js +37 -2
- package/dist/ids.js.map +1 -1
- package/dist/index.d.ts +5 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -5
- package/dist/index.js.map +1 -1
- package/dist/json-result.d.ts +3 -0
- package/dist/json-result.d.ts.map +1 -0
- package/dist/json-result.js +62 -0
- package/dist/json-result.js.map +1 -0
- package/dist/junit.d.ts +1 -1
- package/dist/junit.d.ts.map +1 -1
- package/dist/junit.js +32 -4
- package/dist/junit.js.map +1 -1
- package/dist/locator.d.ts +87 -9
- package/dist/locator.d.ts.map +1 -1
- package/dist/locator.js +413 -86
- package/dist/locator.js.map +1 -1
- package/dist/mock.d.ts +43 -0
- package/dist/mock.d.ts.map +1 -0
- package/dist/mock.js +162 -0
- package/dist/mock.js.map +1 -0
- package/dist/network.d.ts +68 -0
- package/dist/network.d.ts.map +1 -0
- package/dist/network.js +287 -0
- package/dist/network.js.map +1 -0
- package/dist/openapi.d.ts +127 -0
- package/dist/openapi.d.ts.map +1 -0
- package/dist/openapi.js +414 -0
- package/dist/openapi.js.map +1 -0
- package/dist/pending.d.ts +84 -0
- package/dist/pending.d.ts.map +1 -0
- package/dist/pending.js +311 -0
- package/dist/pending.js.map +1 -0
- package/dist/redact.d.ts +41 -0
- package/dist/redact.d.ts.map +1 -0
- package/dist/redact.js +168 -0
- package/dist/redact.js.map +1 -0
- package/dist/remote.d.ts +32 -0
- package/dist/remote.d.ts.map +1 -0
- package/dist/remote.js +117 -0
- package/dist/remote.js.map +1 -0
- package/dist/report-extras.d.ts +16 -0
- package/dist/report-extras.d.ts.map +1 -0
- package/dist/report-extras.js +125 -0
- package/dist/report-extras.js.map +1 -0
- package/dist/report-types.d.ts +428 -0
- package/dist/report-types.d.ts.map +1 -0
- package/dist/report-types.js +6 -0
- package/dist/report-types.js.map +1 -0
- package/dist/report.d.ts +15 -1
- package/dist/report.d.ts.map +1 -1
- package/dist/report.js +195 -19
- package/dist/report.js.map +1 -1
- package/dist/runner.d.ts +13 -0
- package/dist/runner.d.ts.map +1 -0
- package/dist/runner.js +11 -0
- package/dist/runner.js.map +1 -0
- package/dist/runtime.d.ts +54 -4
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +1375 -97
- package/dist/runtime.js.map +1 -1
- package/dist/schema.d.ts +29 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +463 -0
- package/dist/schema.js.map +1 -0
- package/dist/spec-api.d.ts +7 -2
- package/dist/spec-api.d.ts.map +1 -1
- package/dist/tags.d.ts +26 -0
- package/dist/tags.d.ts.map +1 -0
- package/dist/tags.js +78 -0
- package/dist/tags.js.map +1 -0
- package/dist/types.d.ts +852 -165
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +18 -5
- package/schemas/lxdev.schema.json +50 -0
- package/schemas/mock-config.schema.json +21 -0
- package/schemas/scenario.schema.json +180 -0
package/dist/fixture.d.ts
CHANGED
|
@@ -1,17 +1,33 @@
|
|
|
1
|
+
import type { PendingWork } from "./pending.js";
|
|
1
2
|
import { type ResolvedHost } from "./host.js";
|
|
2
|
-
import type {
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import type { Redactor } from "./redact.js";
|
|
4
|
+
import { ScenarioScope } from "./mock.js";
|
|
5
|
+
import { ClockScope } from "./clock.js";
|
|
6
|
+
import { TimeoutError } from "./deadline.js";
|
|
7
|
+
import type { ArgOptions, Fixture, StepScope, TestAutomation, RejectExpected, TestApp, OpenApiRun, WaitForOptions } from "./types.js";
|
|
8
|
+
import type { AttachmentRef, AssertionRecord, ReportError, StepRecord } from "./report-types.js";
|
|
9
|
+
import type { HostRunAutomation as Automation, LxAppDriver } from "@lingxia/types/automation";
|
|
10
|
+
export { TimeoutError };
|
|
11
|
+
/**
|
|
12
|
+
* Thrown by `t.skip()`. It unwinds the spec like any throw, but the runtime
|
|
13
|
+
* grades it `skipped`, never `failed` — and not `xfail` under `spec.fail`.
|
|
14
|
+
* Internal: a spec never needs to name it.
|
|
15
|
+
*/
|
|
16
|
+
export declare class SkipSignal extends Error {
|
|
17
|
+
readonly reason: string;
|
|
18
|
+
readonly name = "SkipSignal";
|
|
19
|
+
readonly code: "E_SKIPPED";
|
|
20
|
+
constructor(reason: string);
|
|
6
21
|
}
|
|
7
|
-
export type FailurePhase = "beforeEach" | "body" | "defer" | "forensics" | "timeout";
|
|
22
|
+
export type FailurePhase = "beforeEach" | "body" | "defer" | "forensics" | "timeout" | "contract" | "capture";
|
|
8
23
|
export declare class LiveFixture implements Fixture {
|
|
9
24
|
readonly specId: string;
|
|
10
25
|
private readonly host;
|
|
11
26
|
private readonly specBudgetMs;
|
|
12
|
-
readonly
|
|
27
|
+
private readonly redactor?;
|
|
13
28
|
readonly automation: TestAutomation;
|
|
14
|
-
|
|
29
|
+
/** `--arg` / `--secret-arg` values; read through `arg()`. */
|
|
30
|
+
private readonly argValues;
|
|
15
31
|
readonly steps: StepRecord[];
|
|
16
32
|
/**
|
|
17
33
|
* `lx.*` members this spec's evals actually reached. Collected so the report
|
|
@@ -26,25 +42,103 @@ export declare class LiveFixture implements Fixture {
|
|
|
26
42
|
abortError: Error | null;
|
|
27
43
|
private actionSilence;
|
|
28
44
|
private actionCount;
|
|
45
|
+
traceTruncated: boolean;
|
|
46
|
+
private eventSequence;
|
|
29
47
|
/** Actions still in flight, so an abort can mark them instead of leaving
|
|
30
48
|
* them at their optimistic default. */
|
|
31
49
|
private readonly openActions;
|
|
50
|
+
/** Fixture calls that have started and not settled; see `track`. */
|
|
51
|
+
private readonly inFlight;
|
|
32
52
|
cleanupUntil: number;
|
|
33
53
|
cleanupActive: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* The spec reached an app page (a locator, view, nav or page-bound Logic
|
|
56
|
+
* call). A failure names the current page only then: a unit spec that
|
|
57
|
+
* never touched one is not "on" whatever page the app happens to show.
|
|
58
|
+
*/
|
|
59
|
+
usedPage: boolean;
|
|
34
60
|
lastStepPath: string | undefined;
|
|
35
61
|
failurePhase: FailurePhase | null;
|
|
62
|
+
/** The last recorded action that failed, and the error it failed with. */
|
|
63
|
+
failedAction: {
|
|
64
|
+
action: string;
|
|
65
|
+
error: unknown;
|
|
66
|
+
} | undefined;
|
|
67
|
+
/** Locator assertions that timed out, by error: the page instance they were bound to. */
|
|
68
|
+
readonly locatorFailures: WeakMap<object, string | null>;
|
|
69
|
+
/** Instance ids `t.app.page()` bound, so a trace detail's `#id` is not read from a CSS selector. */
|
|
70
|
+
readonly boundPages: Set<string>;
|
|
71
|
+
/** A driver timeout does not prove its remote app task has stopped. */
|
|
72
|
+
remoteTimeoutKind: "Logic eval" | "View eval" | "page action" | undefined;
|
|
73
|
+
/** Set by `t.skip()`; survives a body that catches the signal. */
|
|
74
|
+
skipReason: string | undefined;
|
|
36
75
|
private readonly stepStack;
|
|
37
|
-
|
|
38
|
-
|
|
76
|
+
/** An overlap cannot be attributed safely without async-local JS context. */
|
|
77
|
+
stepConflict: Error | undefined;
|
|
78
|
+
private readonly stepStarted;
|
|
79
|
+
/** The app `t.app` is pinned to. */
|
|
80
|
+
private readonly pinned;
|
|
81
|
+
/** Every app a fixture app reaches; a profile switch re-selects them. */
|
|
82
|
+
private readonly appRefs;
|
|
83
|
+
private readonly dialogWatches;
|
|
84
|
+
private readonly dialogInitializers;
|
|
85
|
+
private readonly resolveDialogFailure;
|
|
86
|
+
readonly dialogFailure: Promise<string>;
|
|
87
|
+
private readonly hostAutomation;
|
|
88
|
+
/** When this spec's budget started; the runtime arms its timer right after construction. */
|
|
89
|
+
private readonly startedAt;
|
|
90
|
+
private traceMeta;
|
|
91
|
+
private readonly networkScope;
|
|
92
|
+
/** The scenario this spec installed; removed when it ends. */
|
|
93
|
+
readonly scenarioScope: ScenarioScope;
|
|
94
|
+
/** Test clocks this spec installed; uninstalled when it ends. */
|
|
95
|
+
readonly clockScope: ClockScope;
|
|
96
|
+
/** When the spec's own timer fires; see `budgetRoom()`. */
|
|
97
|
+
private readonly specDeadline;
|
|
98
|
+
constructor(specId: string, rawApp: LxAppDriver, host: ResolvedHost, args: Record<string, string>, automation: Automation, specBudgetMs?: number, redactor?: Redactor | undefined, appId?: string, traceOriginMs?: number);
|
|
39
99
|
get app(): TestApp;
|
|
100
|
+
get scenario(): Fixture["scenario"];
|
|
40
101
|
get raw(): LxAppDriver;
|
|
41
|
-
|
|
42
|
-
|
|
102
|
+
watchPrimaryDialogs(): Promise<void>;
|
|
103
|
+
private ensureDialogWatch;
|
|
104
|
+
private startDialogWatch;
|
|
105
|
+
endDialogWatches(): Promise<{
|
|
106
|
+
unused: string[];
|
|
107
|
+
failures: string[];
|
|
108
|
+
}>;
|
|
109
|
+
/** One fixture app per reached app, so a saved handle stays the same object. */
|
|
110
|
+
private appOf;
|
|
111
|
+
private refFor;
|
|
112
|
+
private trackRef;
|
|
113
|
+
get openapi(): OpenApiRun | undefined;
|
|
114
|
+
/** `t.app.profile`: it re-selects the app after a switch. */
|
|
115
|
+
private profileFixture;
|
|
116
|
+
/**
|
|
117
|
+
* A profile switch closes the app and reopens it as a new instance, which
|
|
118
|
+
* the old driver no longer reaches: select the same lxapp again after it,
|
|
119
|
+
* for every fixture app that reaches it. Fixture apps read `ref.driver` on
|
|
120
|
+
* each call, so one saved before the switch follows the reopened app.
|
|
121
|
+
*/
|
|
122
|
+
private reopening;
|
|
123
|
+
step<T>(name: string, body: (scope: StepScope) => T | Promise<T>): Promise<T>;
|
|
124
|
+
private runStep;
|
|
43
125
|
reject(operation: () => unknown | Promise<unknown>, expected?: RejectExpected): Promise<unknown>;
|
|
44
126
|
defer(cleanup: () => void | Promise<void>): void;
|
|
127
|
+
arg(name: string, options: {
|
|
128
|
+
required: false;
|
|
129
|
+
default?: undefined;
|
|
130
|
+
}): string | undefined;
|
|
131
|
+
arg(name: string, options?: ArgOptions): string;
|
|
132
|
+
waitFor<T>(read: () => T | Promise<T>, options?: WaitForOptions<Awaited<T>>): Promise<Awaited<T>>;
|
|
133
|
+
skip(reason: string): never;
|
|
45
134
|
attach(name: string, data: unknown): Promise<void>;
|
|
46
|
-
attachRaw(name: string,
|
|
47
|
-
|
|
135
|
+
attachRaw(name: string, input: unknown, purpose?: AttachmentRef["purpose"]): Promise<AttachmentRef>;
|
|
136
|
+
/**
|
|
137
|
+
* Stop the body: its fixture calls reject with `reason` from now on. A
|
|
138
|
+
* timeout marks the actions still open as timed out; a failure (an
|
|
139
|
+
* unanswered dialog) as failed.
|
|
140
|
+
*/
|
|
141
|
+
abort(reason: Error, as?: "timeout" | "failed"): void;
|
|
48
142
|
allowCleanup(budgetMs?: number): void;
|
|
49
143
|
endCleanup(): void;
|
|
50
144
|
/**
|
|
@@ -53,35 +147,119 @@ export declare class LiveFixture implements Fixture {
|
|
|
53
147
|
* would otherwise bury the report in a hundred identical rows.
|
|
54
148
|
*/
|
|
55
149
|
act<T>(name: string, detail: string, op: () => T | Promise<T>): Promise<T>;
|
|
150
|
+
/**
|
|
151
|
+
* Run one fixture call while it counts as in flight, so a body that
|
|
152
|
+
* returns without awaiting it can be named (with where it was started),
|
|
153
|
+
* and a timed-out body can say what it still awaits.
|
|
154
|
+
*/
|
|
155
|
+
private track;
|
|
156
|
+
/** A read `t.waitFor` gave up on is still running in the app. */
|
|
157
|
+
detachedInFlight(): boolean;
|
|
158
|
+
/**
|
|
159
|
+
* The fixture calls still running, as a body that returned without
|
|
160
|
+
* awaiting them left them: what each is and where the spec started it.
|
|
161
|
+
*/
|
|
162
|
+
unsettledCalls(): Array<{
|
|
163
|
+
call: string;
|
|
164
|
+
at: string;
|
|
165
|
+
ageMs: number;
|
|
166
|
+
}>;
|
|
167
|
+
/**
|
|
168
|
+
* Stop the calls a returned body left running: each fails at its next
|
|
169
|
+
* fixture guard or retry, and its rejection is marked handled (nobody
|
|
170
|
+
* awaits it). Resolves `true` once they settled, `false` if one is still
|
|
171
|
+
* waiting on the app after `ms`. The fixture is usable again afterwards,
|
|
172
|
+
* for cleanup.
|
|
173
|
+
*/
|
|
174
|
+
stopUnsettled(reason: Error, ms: number): Promise<boolean>;
|
|
175
|
+
/**
|
|
176
|
+
* Fixture calls that have not returned, e.g. a hung `t.app.logic.eval` a
|
|
177
|
+
* timed-out body still awaits. Unlike the trace rows, this includes calls
|
|
178
|
+
* made from silenced retry loops.
|
|
179
|
+
*/
|
|
180
|
+
pendingCalls(): PendingWork[];
|
|
181
|
+
private recordAct;
|
|
182
|
+
/**
|
|
183
|
+
* A trace event is progress for lxdev, not part of the spec: one the
|
|
184
|
+
* transport drops is sent once more and then given up, and never fails the
|
|
185
|
+
* action it describes. The report is built from the fixture's own records.
|
|
186
|
+
*/
|
|
187
|
+
private emitTrace;
|
|
188
|
+
/**
|
|
189
|
+
* A note beside the trace. A warning unless `level` is `"info"`: expected
|
|
190
|
+
* housekeeping, such as the timers the spec's own clock dropped, which
|
|
191
|
+
* lxdev shows only with `--verbose`.
|
|
192
|
+
*/
|
|
193
|
+
diagnostic(phase: string, message: string, level?: "info"): Promise<void>;
|
|
194
|
+
/**
|
|
195
|
+
* An idempotent driver read, retried when the transport between the test
|
|
196
|
+
* runtime and the app dropped it. Never used for input or other calls with
|
|
197
|
+
* side effects: those may already have landed.
|
|
198
|
+
*/
|
|
199
|
+
readRetrying<T>(read: () => T | Promise<T>): Promise<T>;
|
|
200
|
+
private noteFailedAction;
|
|
56
201
|
private recordFailedAction;
|
|
57
202
|
silenceActions(): void;
|
|
58
203
|
resumeActions(): void;
|
|
59
204
|
guard<T>(op: () => T | Promise<T>): Promise<T>;
|
|
205
|
+
/**
|
|
206
|
+
* Milliseconds an action or assertion may still take. Short of the spec's
|
|
207
|
+
* own deadline by a margin, so the action fails first and names its step
|
|
208
|
+
* instead of losing the race to the anonymous spec timeout. During cleanup
|
|
209
|
+
* the cleanup budget bounds it instead.
|
|
210
|
+
*/
|
|
211
|
+
budgetRoom(): number;
|
|
60
212
|
currentStepPath(): string | undefined;
|
|
61
|
-
noteAssertion(entry:
|
|
62
|
-
matcher: string;
|
|
63
|
-
expected: string;
|
|
64
|
-
actual: string;
|
|
65
|
-
passed: boolean;
|
|
66
|
-
}): void;
|
|
213
|
+
noteAssertion(entry: Omit<AssertionRecord, "step">): void;
|
|
67
214
|
close(): void;
|
|
215
|
+
private finishOpenSteps;
|
|
216
|
+
/**
|
|
217
|
+
* Remove what the framework installed for this spec — its routes, mock
|
|
218
|
+
* scenario and test clocks — apart from the spec's own cleanup, and
|
|
219
|
+
* whether or not its body settled. Resolves one message per failure; a
|
|
220
|
+
* resource already gone is removed.
|
|
221
|
+
*/
|
|
222
|
+
reclaim(): Promise<string[]>;
|
|
68
223
|
private assertRunnable;
|
|
69
224
|
private stepPathLine;
|
|
70
225
|
private wrapApp;
|
|
226
|
+
/**
|
|
227
|
+
* Fixture navigation takes the fixture's option names and waits for the
|
|
228
|
+
* landed page's `onReady` unless the caller picks `waitUntil: 'commit'`;
|
|
229
|
+
* reads retry a dropped transport.
|
|
230
|
+
*/
|
|
231
|
+
private wrapNav;
|
|
232
|
+
private bindPage;
|
|
233
|
+
/** The driver's options for a fixture nav action. */
|
|
234
|
+
private navOptions;
|
|
235
|
+
private wrapLogic;
|
|
236
|
+
/**
|
|
237
|
+
* Logic eval that asks the runtime which `lx.*` the script reached and
|
|
238
|
+
* hands the caller only the value — the observation is the report's
|
|
239
|
+
* business, not the spec author's, and specs must not have to opt in for
|
|
240
|
+
* their coverage to be measured.
|
|
241
|
+
*/
|
|
242
|
+
private evalLogic;
|
|
71
243
|
/**
|
|
72
244
|
* The driver's own eval default is a flat few seconds, so a call that runs
|
|
73
245
|
* long under load fails a spec that still had most of its budget left. An
|
|
74
|
-
* eval gets
|
|
75
|
-
* all of it: a call allowed to run the full budget leaves the spec no room
|
|
76
|
-
* to retry, so one stalled call takes the whole spec down with it.
|
|
246
|
+
* eval gets `MAX_EVAL_BUDGET_MS` instead, clamped to what the spec has left.
|
|
77
247
|
*/
|
|
78
248
|
private withEvalBudget;
|
|
79
|
-
|
|
249
|
+
/**
|
|
250
|
+
* An eval's own `timeout`, clamped to the spec's remaining budget; without
|
|
251
|
+
* one, `withEvalBudget` picks the default.
|
|
252
|
+
*/
|
|
253
|
+
private evalTimeout;
|
|
254
|
+
private viewEval;
|
|
255
|
+
/** `bound` is the immutable instance id captured by app.page(). */
|
|
256
|
+
private wrapView;
|
|
80
257
|
private locator;
|
|
81
258
|
private locatorMatchers;
|
|
82
259
|
private pollMatchers;
|
|
83
260
|
private retryLocator;
|
|
84
261
|
private retryPoll;
|
|
262
|
+
private deadlineContext;
|
|
85
263
|
private retryFailure;
|
|
86
264
|
}
|
|
87
265
|
export declare function toReportError(error: unknown, step?: string): ReportError;
|
package/dist/fixture.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixture.d.ts","sourceRoot":"","sources":["../src/fixture.ts"],"names":[],"mappings":"AASA,OAAO,EAAmC,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"fixture.d.ts","sourceRoot":"","sources":["../src/fixture.ts"],"names":[],"mappings":"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"}
|