@reportforge/playwright-pdf 0.11.0 → 0.11.2
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 +3 -1
- package/dist/index.js +12 -2
- package/dist/index.mjs +12 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -211,7 +211,7 @@ Full reference: [reportforge.org/docs/configuration](https://reportforge.org/doc
|
|
|
211
211
|
|
|
212
212
|
### Live Runs
|
|
213
213
|
|
|
214
|
-
Watch a run as it happens. With `live` enabled, the reporter prints an unguessable watch link — boxed under a `Live Tracker` heading — to your CI logs at run start and streams per-test progress to a hosted dashboard while tests execute. All shards of one CI run converge on a single live view, each test shows its own steps and assertions as sub-lines beneath its row — each step once, as it settles (Playwright's hooks, fixtures, and teardown are filtered out) — and the PDF is still generated at the end, unchanged.
|
|
214
|
+
Watch a run as it happens. With `live` enabled, the reporter prints an unguessable watch link — boxed under a `Live Tracker` heading — to your CI logs at run start and streams per-test progress to a hosted dashboard while tests execute. All shards of one CI run converge on a single live view, each test shows its own steps and assertions as sub-lines beneath its row — each step once, as it settles, indented under its parent `test.step` and read in source order (Playwright's hooks, fixtures, and teardown are filtered out) — and the PDF is still generated at the end, unchanged.
|
|
215
215
|
|
|
216
216
|
> The watch link is entitlement-gated. If you enable `live` but see no `Live Tracker` line, the reporter logs why (missing `RF_LICENSE_KEY`, or a cached token without the `live` entitlement — delete `~/.reportforge/license.json` to force re-activation).
|
|
217
217
|
|
|
@@ -230,6 +230,8 @@ reporter: [
|
|
|
230
230
|
],
|
|
231
231
|
```
|
|
232
232
|
|
|
233
|
+
`steps: 'intent'` shows only your `test.step` names (plus any failing step) — the cleanest, most readable trail; `'all'` adds every action and assertion beneath its parent step, `'failed'` (default) keeps intent + assertions + failures.
|
|
234
|
+
|
|
233
235
|
Sharded runs need no extra config — the run id is derived from the run-shared CI identifier (e.g. `GITHUB_RUN_ID`), identical across every matrix shard. Set `RF_LIVE_RUN_ID` to override when your CI is not auto-detected.
|
|
234
236
|
|
|
235
237
|
Live streaming is best-effort and entitlement-gated: if the server is unreachable the run is unaffected, and an active subscription with the `live` feature is required. If you've configured Slack/Teams/Discord notifications, the watch link is also posted to those channels when the run starts.
|
package/dist/index.js
CHANGED
|
@@ -13887,6 +13887,13 @@ function mapCurrentStep(testId, step, shardKey) {
|
|
|
13887
13887
|
currentStep: clampWithEllipsis(step.title ?? "", MAX_STEP_TITLE_CHARS)
|
|
13888
13888
|
};
|
|
13889
13889
|
}
|
|
13890
|
+
function testStepDepth(step) {
|
|
13891
|
+
let depth = 0;
|
|
13892
|
+
for (let p = step.parent; p; p = p.parent) {
|
|
13893
|
+
if (p.category === "test.step") depth++;
|
|
13894
|
+
}
|
|
13895
|
+
return depth;
|
|
13896
|
+
}
|
|
13890
13897
|
function mapStep(testId, step, phase, shardKey) {
|
|
13891
13898
|
return {
|
|
13892
13899
|
kind: "step",
|
|
@@ -13897,7 +13904,10 @@ function mapStep(testId, step, phase, shardKey) {
|
|
|
13897
13904
|
at: Date.now(),
|
|
13898
13905
|
// The step's own start time (not receive time) so the watch page can order a
|
|
13899
13906
|
// parent `test.step` before the child actions nested inside it.
|
|
13900
|
-
startedAt: step.startTime?.getTime()
|
|
13907
|
+
startedAt: step.startTime?.getTime(),
|
|
13908
|
+
// Nesting depth (test.step ancestors) so the page indents children under their
|
|
13909
|
+
// parent step. 0 → flat, so a test without test.steps renders as a flat trail.
|
|
13910
|
+
depth: testStepDepth(step)
|
|
13901
13911
|
};
|
|
13902
13912
|
}
|
|
13903
13913
|
function mapConsole(kind, chunk, testId, shardKey) {
|
|
@@ -13924,7 +13934,7 @@ var PdfReporter = class {
|
|
|
13924
13934
|
this.liveConsole = false;
|
|
13925
13935
|
this.options = parseOptions(rawOptions);
|
|
13926
13936
|
this.dataCollector = new DataCollector(this.options.capture);
|
|
13927
|
-
const version = true ? "0.11.
|
|
13937
|
+
const version = true ? "0.11.2" : "0.x";
|
|
13928
13938
|
logger.info(`@reportforge/playwright-pdf v${version} initialised`);
|
|
13929
13939
|
this.licenseClient = new LicenseClient({
|
|
13930
13940
|
licenseKey: this.options.licenseKey,
|
package/dist/index.mjs
CHANGED
|
@@ -13888,6 +13888,13 @@ function mapCurrentStep(testId, step, shardKey) {
|
|
|
13888
13888
|
currentStep: clampWithEllipsis(step.title ?? "", MAX_STEP_TITLE_CHARS)
|
|
13889
13889
|
};
|
|
13890
13890
|
}
|
|
13891
|
+
function testStepDepth(step) {
|
|
13892
|
+
let depth = 0;
|
|
13893
|
+
for (let p = step.parent; p; p = p.parent) {
|
|
13894
|
+
if (p.category === "test.step") depth++;
|
|
13895
|
+
}
|
|
13896
|
+
return depth;
|
|
13897
|
+
}
|
|
13891
13898
|
function mapStep(testId, step, phase, shardKey) {
|
|
13892
13899
|
return {
|
|
13893
13900
|
kind: "step",
|
|
@@ -13898,7 +13905,10 @@ function mapStep(testId, step, phase, shardKey) {
|
|
|
13898
13905
|
at: Date.now(),
|
|
13899
13906
|
// The step's own start time (not receive time) so the watch page can order a
|
|
13900
13907
|
// parent `test.step` before the child actions nested inside it.
|
|
13901
|
-
startedAt: step.startTime?.getTime()
|
|
13908
|
+
startedAt: step.startTime?.getTime(),
|
|
13909
|
+
// Nesting depth (test.step ancestors) so the page indents children under their
|
|
13910
|
+
// parent step. 0 → flat, so a test without test.steps renders as a flat trail.
|
|
13911
|
+
depth: testStepDepth(step)
|
|
13902
13912
|
};
|
|
13903
13913
|
}
|
|
13904
13914
|
function mapConsole(kind, chunk, testId, shardKey) {
|
|
@@ -13925,7 +13935,7 @@ var PdfReporter = class {
|
|
|
13925
13935
|
this.liveConsole = false;
|
|
13926
13936
|
this.options = parseOptions(rawOptions);
|
|
13927
13937
|
this.dataCollector = new DataCollector(this.options.capture);
|
|
13928
|
-
const version = true ? "0.11.
|
|
13938
|
+
const version = true ? "0.11.2" : "0.x";
|
|
13929
13939
|
logger.info(`@reportforge/playwright-pdf v${version} initialised`);
|
|
13930
13940
|
this.licenseClient = new LicenseClient({
|
|
13931
13941
|
licenseKey: this.options.licenseKey,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reportforge/playwright-pdf",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.2",
|
|
4
4
|
"description": "Enterprise-ready PDF reports for Playwright Test — minimal, detailed, and executive templates with CI/CD integrations",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "ReportForge",
|