@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 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.0" : "0.x";
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.0" : "0.x";
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.0",
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",