@tracelane/wdio 0.1.0-alpha.2 → 0.1.0-alpha.4
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/hooks.d.ts +8 -1
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +9 -4
- package/dist/hooks.js.map +1 -1
- package/dist/service.d.ts +33 -8
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +36 -7
- package/dist/service.js.map +1 -1
- package/dist/tracelane-session.d.ts +9 -1
- package/dist/tracelane-session.d.ts.map +1 -1
- package/dist/tracelane-session.js +9 -1
- package/dist/tracelane-session.js.map +1 -1
- package/package.json +3 -3
package/dist/hooks.d.ts
CHANGED
|
@@ -15,7 +15,14 @@ export interface TraceLaneHooks {
|
|
|
15
15
|
before(capabilities: unknown, specs: string[], browser: WebdriverIO.Browser): Promise<void>;
|
|
16
16
|
beforeSuite(suite: Frameworks.Suite): void;
|
|
17
17
|
beforeTest(test: Frameworks.Test, context?: unknown): Promise<void>;
|
|
18
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Post-command hook. Re-injects the recorder AFTER a `url(...)` returns
|
|
20
|
+
* (T-9 fix, 2026-05-28 QA walk) — re-injecting before the navigation lands
|
|
21
|
+
* on a doomed page that's about to be torn down, leaving no recorder on
|
|
22
|
+
* the new page. The full Service / hooks pair was previously wired to
|
|
23
|
+
* `beforeCommand`; that was the bug.
|
|
24
|
+
*/
|
|
25
|
+
afterCommand(commandName: string, args: unknown[], result: unknown, error?: Error): Promise<void>;
|
|
19
26
|
afterTest(test: Frameworks.Test, context: unknown, result: Frameworks.TestResult): Promise<void>;
|
|
20
27
|
afterSuite(suite: Frameworks.Suite): void;
|
|
21
28
|
after(result: number, capabilities: unknown, specs: string[]): Promise<void>;
|
package/dist/hooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAKrD,6EAA6E;AAC7E,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,mEAAmE;AACnE,MAAM,WAAW,cAAc;IAC7B,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3F,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5F,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;IAC3C,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAKrD,6EAA6E;AAC7E,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,mEAAmE;AACnE,MAAM,WAAW,cAAc;IAC7B,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3F,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5F,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;IAC3C,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE;;;;;;OAMG;IACH,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClG,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjG,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;IAC1C,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7F,yDAAyD;IACzD,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,uDAAuD;IACvD,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,oBAAyB,GAAG,cAAc,CAuCjF"}
|
package/dist/hooks.js
CHANGED
|
@@ -31,10 +31,15 @@ export function traceLaneHooks(options = {}) {
|
|
|
31
31
|
const { title, spec } = testIdentity(test);
|
|
32
32
|
await session.onBeforeTest(title, spec);
|
|
33
33
|
},
|
|
34
|
-
async
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
async afterCommand(commandName, args, _result, error) {
|
|
35
|
+
// T-9 fix (2026-05-28): re-inject only after a successful url() returns.
|
|
36
|
+
// `beforeCommand` fires before the navigation, so injecting there
|
|
37
|
+
// lands rrweb on a page that's about to be torn down.
|
|
38
|
+
if (commandName !== 'url' || typeof args[0] !== 'string')
|
|
39
|
+
return;
|
|
40
|
+
if (error !== undefined)
|
|
41
|
+
return;
|
|
42
|
+
await session.onUrl(args[0]);
|
|
38
43
|
},
|
|
39
44
|
async afterTest(_test, _context, result) {
|
|
40
45
|
await session.onAfterTest(result);
|
package/dist/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,2BAA2B;AAC3B,EAAE;AACF,8EAA8E;AAC9E,gFAAgF;AAChF,oBAAoB;AACpB,EAAE;AACF,wFAAwF;AACxF,4FAA4F;AAC5F,EAAE;AACF,kFAAkF;AAClF,iCAAiC;AAIjC,OAAO,EAAiB,gBAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,2BAA2B;AAC3B,EAAE;AACF,8EAA8E;AAC9E,gFAAgF;AAChF,oBAAoB;AACpB,EAAE;AACF,wFAAwF;AACxF,4FAA4F;AAC5F,EAAE;AACF,kFAAkF;AAClF,iCAAiC;AAIjC,OAAO,EAAiB,gBAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAqC1D;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,UAAgC,EAAE;IAC/D,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC;IAE5E,OAAO;QACL,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG;YAC/C,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO;YACzC,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAiC,CAAC,CAAC;QAC5D,CAAC;QACD,WAAW,CAAC,MAAM,IAAG,CAAC;QACtB,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;YAC7B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC,IAAgB,CAAC,CAAC;YACvD,MAAM,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;QACD,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK;YAClD,yEAAyE;YACzE,kEAAkE;YAClE,sDAAsD;YACtD,IAAI,WAAW,KAAK,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;gBAAE,OAAO;YACjE,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO;YAChC,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM;YACrC,MAAM,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;QACD,UAAU,CAAC,MAAM,IAAG,CAAC;QACrB,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM;YACxC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;QACD,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,IAAG,CAAC;QAC1D,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ;YAClC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAChD,MAAM,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;QACD,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM;YAC/B,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3C,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/service.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Frameworks, Services } from '@wdio/types';
|
|
1
|
+
import type { Capabilities, Frameworks, Options, Services } from '@wdio/types';
|
|
2
2
|
import type { TraceLaneOptions } from './options.js';
|
|
3
3
|
/**
|
|
4
4
|
* The tracelane WebdriverIO Service. Implements the worker + launcher hooks from
|
|
@@ -6,18 +6,27 @@ import type { TraceLaneOptions } from './options.js';
|
|
|
6
6
|
* `afterScenario`) are declared as plain methods since `@wdio/types` doesn't put
|
|
7
7
|
* them on `ServiceInstance` (they only exist at runtime under the Cucumber
|
|
8
8
|
* framework).
|
|
9
|
+
*
|
|
10
|
+
* The constructor signature deliberately matches `Services.ServiceClass`:
|
|
11
|
+
* `new (options: WebdriverIO.ServiceOption,
|
|
12
|
+
* capabilities: ResolvedTestrunnerCapabilities,
|
|
13
|
+
* config: Options.Testrunner): ServiceInstance`
|
|
14
|
+
* (T-4 fix, 2026-05-28 QA walk). Earlier intersection-typing on `options` was
|
|
15
|
+
* not enough — the `capabilities` and `config` parameters had to ALSO be
|
|
16
|
+
* compatible with the interface, otherwise registering the class as
|
|
17
|
+
* `services: [[TraceLaneService, { ... }]]` raised the "not assignable to
|
|
18
|
+
* ServiceClass" error in the user's wdio.conf.ts. With the full triple in
|
|
19
|
+
* place the tuple form typechecks without `@ts-expect-error`.
|
|
9
20
|
*/
|
|
10
21
|
export default class TraceLaneService implements Services.ServiceInstance {
|
|
11
22
|
private readonly session;
|
|
12
23
|
/**
|
|
13
24
|
* WDIO instantiates the Service with `(options, capabilities, config)`. We
|
|
14
25
|
* read `config.framework` so the result-shape switch (P1 PRD §A.2) picks the
|
|
15
|
-
* right normalization
|
|
16
|
-
* `
|
|
26
|
+
* right normalization. `capabilities` is accepted for ServiceClass
|
|
27
|
+
* compatibility but unused (the live browser arrives in the `before` hook).
|
|
17
28
|
*/
|
|
18
|
-
constructor(options?: TraceLaneOptions & WebdriverIO.ServiceOption, _capabilities?:
|
|
19
|
-
framework?: string;
|
|
20
|
-
});
|
|
29
|
+
constructor(options?: TraceLaneOptions & WebdriverIO.ServiceOption, _capabilities?: Capabilities.ResolvedTestrunnerCapabilities, config?: Options.Testrunner);
|
|
21
30
|
/** Refine the framework + worker id once the session is initializing. */
|
|
22
31
|
beforeSession(_config: unknown, _capabilities: unknown, _specs: string[], cid?: string): void;
|
|
23
32
|
/** Worker hook: stash the live browser + build the recorder. */
|
|
@@ -32,8 +41,24 @@ export default class TraceLaneService implements Services.ServiceInstance {
|
|
|
32
41
|
beforeScenario(world: unknown, _context?: unknown): Promise<void>;
|
|
33
42
|
/** Cucumber: scenario end (runtime-only hook; mirrors `afterTest`). */
|
|
34
43
|
afterScenario(world: unknown, result?: unknown): Promise<void>;
|
|
35
|
-
/**
|
|
36
|
-
|
|
44
|
+
/**
|
|
45
|
+
* Re-inject the recorder AFTER a `url(...)` navigation (ADR-0006, T-9 fix).
|
|
46
|
+
*
|
|
47
|
+
* WDIO's `beforeCommand` fires before the command executes; if we re-inject
|
|
48
|
+
* there, the page is about to be torn down and Chrome's load of the new URL
|
|
49
|
+
* destroys the just-injected rrweb instance + the `__tracelane__events`
|
|
50
|
+
* buffer. By the time the test starts interacting nothing is recording.
|
|
51
|
+
*
|
|
52
|
+
* `afterCommand` fires after WDIO returns from `url(...)`, which only
|
|
53
|
+
* happens once Chrome has navigated and the document has loaded. Injecting
|
|
54
|
+
* here lands rrweb on the NEW page, where it can observe DOM mutations,
|
|
55
|
+
* console output, and fetches.
|
|
56
|
+
*
|
|
57
|
+
* Errors from the command itself (e.g. a malformed URL) skip re-injection —
|
|
58
|
+
* if the navigation failed, the page never changed and the existing
|
|
59
|
+
* recorder (if any) is still attached to the old page; this is a no-op.
|
|
60
|
+
*/
|
|
61
|
+
afterCommand(commandName: string, args: unknown[], _result: unknown, error?: Error): Promise<void>;
|
|
37
62
|
/** No-op in v1; present for the documented hook surface (ADR-0004). */
|
|
38
63
|
afterSuite(_suite: Frameworks.Suite): void;
|
|
39
64
|
/** Worker teardown: stop the drain poll so no timer leaks. */
|
package/dist/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAKrD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAiB,YAAW,QAAQ,CAAC,eAAe;IACvE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAE3C;;;;;OAKG;gBAED,OAAO,GAAE,gBAAgB,GAAG,WAAW,CAAC,aAAkB,EAC1D,aAAa,CAAC,EAAE,YAAY,CAAC,8BAA8B,EAC3D,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU;IAK7B,yEAAyE;IACzE,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAI7F,gEAAgE;IAC1D,MAAM,CACV,aAAa,EAAE,OAAO,EACtB,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,EAAE,WAAW,CAAC,OAAO,GAC3B,OAAO,CAAC,IAAI,CAAC;IAIhB,uEAAuE;IACvE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,GAAG,IAAI;IAE3C,mEAAmE;IAC7D,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzE,yEAAyE;IACnE,SAAS,CACb,KAAK,EAAE,UAAU,CAAC,IAAI,EACtB,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,UAAU,CAAC,UAAU,GAC5B,OAAO,CAAC,IAAI,CAAC;IAIhB,0EAA0E;IACpE,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvE,uEAAuE;IACjE,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpE;;;;;;;;;;;;;;;;OAgBG;IACG,YAAY,CAChB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,OAAO,EAAE,EACf,OAAO,EAAE,OAAO,EAChB,KAAK,CAAC,EAAE,KAAK,GACZ,OAAO,CAAC,IAAI,CAAC;IAMhB,uEAAuE;IACvE,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,GAAG,IAAI;IAE1C,8DAA8D;IACxD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrF,8EAA8E;IAC9E,UAAU,CACR,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,OAAO,EACtB,QAAQ,EAAE,OAAO,GAChB,IAAI;CACR"}
|
package/dist/service.js
CHANGED
|
@@ -15,14 +15,25 @@ import { TraceLaneSession } from './tracelane-session.js';
|
|
|
15
15
|
* `afterScenario`) are declared as plain methods since `@wdio/types` doesn't put
|
|
16
16
|
* them on `ServiceInstance` (they only exist at runtime under the Cucumber
|
|
17
17
|
* framework).
|
|
18
|
+
*
|
|
19
|
+
* The constructor signature deliberately matches `Services.ServiceClass`:
|
|
20
|
+
* `new (options: WebdriverIO.ServiceOption,
|
|
21
|
+
* capabilities: ResolvedTestrunnerCapabilities,
|
|
22
|
+
* config: Options.Testrunner): ServiceInstance`
|
|
23
|
+
* (T-4 fix, 2026-05-28 QA walk). Earlier intersection-typing on `options` was
|
|
24
|
+
* not enough — the `capabilities` and `config` parameters had to ALSO be
|
|
25
|
+
* compatible with the interface, otherwise registering the class as
|
|
26
|
+
* `services: [[TraceLaneService, { ... }]]` raised the "not assignable to
|
|
27
|
+
* ServiceClass" error in the user's wdio.conf.ts. With the full triple in
|
|
28
|
+
* place the tuple form typechecks without `@ts-expect-error`.
|
|
18
29
|
*/
|
|
19
30
|
export default class TraceLaneService {
|
|
20
31
|
session;
|
|
21
32
|
/**
|
|
22
33
|
* WDIO instantiates the Service with `(options, capabilities, config)`. We
|
|
23
34
|
* read `config.framework` so the result-shape switch (P1 PRD §A.2) picks the
|
|
24
|
-
* right normalization
|
|
25
|
-
* `
|
|
35
|
+
* right normalization. `capabilities` is accepted for ServiceClass
|
|
36
|
+
* compatibility but unused (the live browser arrives in the `before` hook).
|
|
26
37
|
*/
|
|
27
38
|
constructor(options = {}, _capabilities, config) {
|
|
28
39
|
this.session = new TraceLaneSession(options, config?.framework);
|
|
@@ -55,11 +66,29 @@ export default class TraceLaneService {
|
|
|
55
66
|
async afterScenario(world, result) {
|
|
56
67
|
await this.session.onAfterTest(world, result);
|
|
57
68
|
}
|
|
58
|
-
/**
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
69
|
+
/**
|
|
70
|
+
* Re-inject the recorder AFTER a `url(...)` navigation (ADR-0006, T-9 fix).
|
|
71
|
+
*
|
|
72
|
+
* WDIO's `beforeCommand` fires before the command executes; if we re-inject
|
|
73
|
+
* there, the page is about to be torn down and Chrome's load of the new URL
|
|
74
|
+
* destroys the just-injected rrweb instance + the `__tracelane__events`
|
|
75
|
+
* buffer. By the time the test starts interacting nothing is recording.
|
|
76
|
+
*
|
|
77
|
+
* `afterCommand` fires after WDIO returns from `url(...)`, which only
|
|
78
|
+
* happens once Chrome has navigated and the document has loaded. Injecting
|
|
79
|
+
* here lands rrweb on the NEW page, where it can observe DOM mutations,
|
|
80
|
+
* console output, and fetches.
|
|
81
|
+
*
|
|
82
|
+
* Errors from the command itself (e.g. a malformed URL) skip re-injection —
|
|
83
|
+
* if the navigation failed, the page never changed and the existing
|
|
84
|
+
* recorder (if any) is still attached to the old page; this is a no-op.
|
|
85
|
+
*/
|
|
86
|
+
async afterCommand(commandName, args, _result, error) {
|
|
87
|
+
if (commandName !== 'url' || typeof args[0] !== 'string')
|
|
88
|
+
return;
|
|
89
|
+
if (error !== undefined)
|
|
90
|
+
return;
|
|
91
|
+
await this.session.onUrl(args[0]);
|
|
63
92
|
}
|
|
64
93
|
/** No-op in v1; present for the documented hook surface (ADR-0004). */
|
|
65
94
|
afterSuite(_suite) { }
|
package/dist/service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,2EAA2E;AAC3E,qEAAqE;AACrE,EAAE;AACF,iFAAiF;AACjF,gEAAgE;AAIhE,OAAO,EAAiB,gBAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,2EAA2E;AAC3E,qEAAqE;AACrE,EAAE;AACF,iFAAiF;AACjF,gEAAgE;AAIhE,OAAO,EAAiB,gBAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAClB,OAAO,CAAmB;IAE3C;;;;;OAKG;IACH,YACE,UAAwD,EAAE,EAC1D,aAA2D,EAC3D,MAA2B;QAE3B,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAClE,CAAC;IAED,yEAAyE;IACzE,aAAa,CAAC,OAAgB,EAAE,aAAsB,EAAE,MAAgB,EAAE,GAAY;QACpF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,gEAAgE;IAChE,KAAK,CAAC,MAAM,CACV,aAAsB,EACtB,MAAgB,EAChB,OAA4B;QAE5B,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAiC,CAAC,CAAC;IACjE,CAAC;IAED,uEAAuE;IACvE,WAAW,CAAC,MAAwB,IAAS,CAAC;IAE9C,mEAAmE;IACnE,KAAK,CAAC,UAAU,CAAC,IAAqB,EAAE,QAAiB;QACvD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC,IAAgB,CAAC,CAAC;QACvD,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,yEAAyE;IACzE,KAAK,CAAC,SAAS,CACb,KAAsB,EACtB,QAAiB,EACjB,MAA6B;QAE7B,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,0EAA0E;IAC1E,KAAK,CAAC,cAAc,CAAC,KAAc,EAAE,QAAkB;QACrD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,aAAa,CAAC,KAAc,EAAE,MAAgB;QAClD,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,YAAY,CAChB,WAAmB,EACnB,IAAe,EACf,OAAgB,EAChB,KAAa;QAEb,IAAI,WAAW,KAAK,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;YAAE,OAAO;QACjE,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAChC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,uEAAuE;IACvE,UAAU,CAAC,MAAwB,IAAS,CAAC;IAE7C,8DAA8D;IAC9D,KAAK,CAAC,KAAK,CAAC,OAAe,EAAE,aAAsB,EAAE,MAAgB;QACnE,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED,8EAA8E;IAC9E,UAAU,CACR,SAAiB,EACjB,OAAgB,EAChB,aAAsB,EACtB,QAAiB,IACV,CAAC;CACX"}
|
|
@@ -55,7 +55,15 @@ export declare class TraceLaneSession {
|
|
|
55
55
|
* exactly once (#2).
|
|
56
56
|
*/
|
|
57
57
|
private maybeAttachNetworkCapture;
|
|
58
|
-
/**
|
|
58
|
+
/**
|
|
59
|
+
* WDIO `afterCommand('url', ...)`: re-inject the recorder AFTER the
|
|
60
|
+
* navigation has landed (T-9 fix). The Service / hooks factory used to
|
|
61
|
+
* call this from `beforeCommand`, but that fired before the navigation —
|
|
62
|
+
* the page was about to be torn down, and the freshly-re-injected rrweb
|
|
63
|
+
* + the `__tracelane__events` buffer were both wiped by the load. Now we
|
|
64
|
+
* inject on the NEW page so events flow from the first FullSnapshot
|
|
65
|
+
* forward.
|
|
66
|
+
*/
|
|
59
67
|
onUrl(url: string): Promise<void>;
|
|
60
68
|
/**
|
|
61
69
|
* `afterTest`/`afterScenario`: normalize the framework result, ask the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracelane-session.d.ts","sourceRoot":"","sources":["../src/tracelane-session.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEtE,OAAO,EAAE,KAAK,WAAW,EAAsB,MAAM,oBAAoB,CAAC;AAQ1E,qFAAqF;AACrF,UAAU,mBAAmB;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,+EAA+E;AAC/E,KAAK,cAAc,GAAG,WAAW,GAAG;IAClC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,GAAG,CAAqB;IAEhC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,eAAe,CAAS;IAChC,6EAA6E;IAC7E,OAAO,CAAC,kBAAkB,CAAS;gBAEvB,OAAO,GAAE,gBAAqB,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM;IAW5E,iFAAiF;IACjF,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAIjD,+EAA+E;IAC/E,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAIrC;;;;OAIG;IACG,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD;;;;;;OAMG;IACH,OAAO,CAAC,2BAA2B;IAKnC,sEAAsE;IACtE,OAAO,CAAC,4BAA4B;IAqBpC,iFAAiF;IAC3E,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/D;;;;;OAKG;YACW,yBAAyB;IAevC
|
|
1
|
+
{"version":3,"file":"tracelane-session.d.ts","sourceRoot":"","sources":["../src/tracelane-session.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEtE,OAAO,EAAE,KAAK,WAAW,EAAsB,MAAM,oBAAoB,CAAC;AAQ1E,qFAAqF;AACrF,UAAU,mBAAmB;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,+EAA+E;AAC/E,KAAK,cAAc,GAAG,WAAW,GAAG;IAClC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,GAAG,CAAqB;IAEhC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,eAAe,CAAS;IAChC,6EAA6E;IAC7E,OAAO,CAAC,kBAAkB,CAAS;gBAEvB,OAAO,GAAE,gBAAqB,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM;IAW5E,iFAAiF;IACjF,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAIjD,+EAA+E;IAC/E,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAIrC;;;;OAIG;IACG,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD;;;;;;OAMG;IACH,OAAO,CAAC,2BAA2B;IAKnC,sEAAsE;IACtE,OAAO,CAAC,4BAA4B;IAqBpC,iFAAiF;IAC3E,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/D;;;;;OAKG;YACW,yBAAyB;IAevC;;;;;;;;OAQG;IACG,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvC;;;;;;OAMG;IACG,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAuBnF;;;;;OAKG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAO9B,gFAAgF;IAChF,OAAO,CAAC,SAAS;CAclB"}
|
|
@@ -120,7 +120,15 @@ export class TraceLaneSession {
|
|
|
120
120
|
console.warn('[tracelane/wdio] network capture unavailable (CDP not attached); degrading to rrweb+console only.');
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
|
-
/**
|
|
123
|
+
/**
|
|
124
|
+
* WDIO `afterCommand('url', ...)`: re-inject the recorder AFTER the
|
|
125
|
+
* navigation has landed (T-9 fix). The Service / hooks factory used to
|
|
126
|
+
* call this from `beforeCommand`, but that fired before the navigation —
|
|
127
|
+
* the page was about to be torn down, and the freshly-re-injected rrweb
|
|
128
|
+
* + the `__tracelane__events` buffer were both wiped by the load. Now we
|
|
129
|
+
* inject on the NEW page so events flow from the first FullSnapshot
|
|
130
|
+
* forward.
|
|
131
|
+
*/
|
|
124
132
|
async onUrl(url) {
|
|
125
133
|
if (!this.recorder)
|
|
126
134
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracelane-session.js","sourceRoot":"","sources":["../src/tracelane-session.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tracelane-session.js","sourceRoot":"","sources":["../src/tracelane-session.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tracelane/wdio",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.4",
|
|
4
4
|
"description": "WebdriverIO Service that records rrweb sessions and writes a self-contained HTML report on failed tests. The user-facing tracelane integration for WDIO.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
"README.md"
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@tracelane/core": "0.1.0-alpha.
|
|
26
|
-
"@tracelane/report": "0.1.0-alpha.
|
|
25
|
+
"@tracelane/core": "0.1.0-alpha.3",
|
|
26
|
+
"@tracelane/report": "0.1.0-alpha.4"
|
|
27
27
|
},
|
|
28
28
|
"peerDependencies": {
|
|
29
29
|
"@wdio/types": "^9.0.0",
|