waygraph 0.12.25 → 0.12.27
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/cli.js
CHANGED
|
@@ -2565,9 +2565,10 @@ async function runStepMode(engine, start, end, context, page, mem, resolved, slo
|
|
|
2565
2565
|
const stubBeforeTodos = stubBeforePhase.todos || [];
|
|
2566
2566
|
const isNavBlock = r.block.__waygraphKind === "nav";
|
|
2567
2567
|
const autoNow = await currentAutoplay();
|
|
2568
|
-
//
|
|
2569
|
-
//
|
|
2570
|
-
|
|
2568
|
+
// Video recording: keep chrome compact. Live auto-next used to force-collapse
|
|
2569
|
+
// every NavBlock and hid the stepper (todos / modules) - only collapse while
|
|
2570
|
+
// act() runs (markStepRunning) so Playwright clicks hit the page, not the panel.
|
|
2571
|
+
const forceCollapsed = !!process.env.WAYGRAPH_VIDEO;
|
|
2571
2572
|
const requires = r.block.requires ?? [];
|
|
2572
2573
|
const keys = requires.map((k) => {
|
|
2573
2574
|
let value = "<not yet set>";
|
|
@@ -2622,8 +2623,7 @@ async function runStepMode(engine, start, end, context, page, mem, resolved, slo
|
|
|
2622
2623
|
}
|
|
2623
2624
|
}
|
|
2624
2625
|
const recordingVideo = !!process.env.WAYGRAPH_VIDEO;
|
|
2625
|
-
|
|
2626
|
-
await markStepRunning(page, { autoCollapsePanel });
|
|
2626
|
+
await markStepRunning(page, {});
|
|
2627
2627
|
// NavBlock click-nav: label the upcoming Locator.click demo cursor as
|
|
2628
2628
|
// "nav: <block>" so pia/demo watchers see cursor+pulse on click nav
|
|
2629
2629
|
// (not only on regular Block clicks).
|
|
@@ -2799,8 +2799,7 @@ async function runStepMode(engine, start, end, context, page, mem, resolved, slo
|
|
|
2799
2799
|
episodeTitle: r.episodeTitle,
|
|
2800
2800
|
stepperMode,
|
|
2801
2801
|
todos: stubAfterTodos,
|
|
2802
|
-
|
|
2803
|
-
forceCollapsed: !!process.env.WAYGRAPH_VIDEO || ((await currentAutoplay()) && isNavBlock),
|
|
2802
|
+
forceCollapsed: !!process.env.WAYGRAPH_VIDEO,
|
|
2804
2803
|
});
|
|
2805
2804
|
await gate();
|
|
2806
2805
|
}
|
|
@@ -4197,7 +4196,7 @@ Aliases (compat): \`chain <spec>\` -> run --blocks; \`chain auto A B\` -> auto -
|
|
|
4197
4196
|
|
|
4198
4197
|
Project path optional (defaults to cwd). Flags beat WAYGRAPH_* env.
|
|
4199
4198
|
\`run\`/\`demo\`/\`auto\`: Flow export, .flow.ts path, or "a then b" chain (auto also explores).
|
|
4200
|
-
Hide stepper = compact "N / M · block" pill.
|
|
4199
|
+
Hide stepper = compact "N / M · block" pill. Collapses while a step runs (clicks hit the page). Video mode stays compact.
|
|
4201
4200
|
`);
|
|
4202
4201
|
process.exit(0);
|
|
4203
4202
|
}
|
|
@@ -45,23 +45,30 @@ export const SubmitLoginActionBlock = defineMethodBlock<LoginPage, LoginSubmitOu
|
|
|
45
45
|
out.__state === "LoggedIn"
|
|
46
46
|
? [Trait.url({ pathname: "/inventory.html" })]
|
|
47
47
|
: [Trait.visible('[data-test="error"]')],
|
|
48
|
-
// Open lifecycle:
|
|
48
|
+
// Open lifecycle: todos + zoom; stubAfter rings a lower inventory item
|
|
49
|
+
// so smooth auto-scroll is visible after login.
|
|
49
50
|
stubBefore: (ctx) => {
|
|
50
51
|
ctx.todos(["Enter username", "Enter password", "Click Login"]);
|
|
51
52
|
ctx.todoIndex(0);
|
|
53
|
+
ctx.zoom(1.25);
|
|
52
54
|
ctx.highlights({
|
|
53
|
-
username: { selector: "#user-name", label: "Username" },
|
|
54
|
-
password: { selector: "#password", label: "Password" },
|
|
55
|
-
submit: { selector: "#login-button", label: "Login" },
|
|
55
|
+
username: { selector: "#user-name", label: "Username", zoom: 1.3 },
|
|
56
|
+
password: { selector: "#password", label: "Password", zoom: 1.3 },
|
|
57
|
+
submit: { selector: "#login-button", label: "Login", zoom: 1.45 },
|
|
56
58
|
});
|
|
57
59
|
},
|
|
58
60
|
stubAfter: (ctx) => {
|
|
59
|
-
// Sequential plan: bump index after a successful submit beat.
|
|
60
61
|
ctx.todos(["Enter username", "Enter password", "Click Login"]);
|
|
61
62
|
ctx.todoIndex(2);
|
|
63
|
+
// Inventory is tall - fleece sits lower; demo smooth-scrolls + zooms it.
|
|
64
|
+
ctx.ring("fleece", {
|
|
65
|
+
selector: '[data-test="add-to-cart-sauce-labs-fleece-jacket"]',
|
|
66
|
+
label: "Fleece jacket",
|
|
67
|
+
detail: "Smooth scroll + zoom",
|
|
68
|
+
zoom: 1.4,
|
|
69
|
+
duration: true,
|
|
70
|
+
});
|
|
62
71
|
},
|
|
63
|
-
// Fail-path rings (demo step throw only) - locked-out / wrong-password
|
|
64
|
-
// bug-repro narration; success never shows these.
|
|
65
72
|
stubOnError: (ctx) => {
|
|
66
73
|
ctx.ring("error", {
|
|
67
74
|
selector: '[data-test="error"]',
|
package/package.json
CHANGED
|
@@ -48,15 +48,23 @@ export const SubmitLoginActionBlock = defineMethodBlock<LoginPage, LoginSubmitOu
|
|
|
48
48
|
stubBefore: (ctx) => {
|
|
49
49
|
ctx.todos(["Enter username", "Enter password", "Click Login"]);
|
|
50
50
|
ctx.todoIndex(0);
|
|
51
|
+
ctx.zoom(1.25);
|
|
51
52
|
ctx.highlights({
|
|
52
|
-
username: { selector: "#user-name", label: "Username" },
|
|
53
|
-
password: { selector: "#password", label: "Password" },
|
|
54
|
-
submit: { selector: "#login-button", label: "Login" },
|
|
53
|
+
username: { selector: "#user-name", label: "Username", zoom: 1.3 },
|
|
54
|
+
password: { selector: "#password", label: "Password", zoom: 1.3 },
|
|
55
|
+
submit: { selector: "#login-button", label: "Login", zoom: 1.45 },
|
|
55
56
|
});
|
|
56
57
|
},
|
|
57
58
|
stubAfter: (ctx) => {
|
|
58
59
|
ctx.todos(["Enter username", "Enter password", "Click Login"]);
|
|
59
60
|
ctx.todoIndex(2);
|
|
61
|
+
ctx.ring("fleece", {
|
|
62
|
+
selector: '[data-test="add-to-cart-sauce-labs-fleece-jacket"]',
|
|
63
|
+
label: "Fleece jacket",
|
|
64
|
+
detail: "Smooth scroll + zoom",
|
|
65
|
+
zoom: 1.4,
|
|
66
|
+
duration: true,
|
|
67
|
+
});
|
|
60
68
|
},
|
|
61
69
|
stubOnError: (ctx) => {
|
|
62
70
|
ctx.ring("error", {
|