Skip to content

User Journeys

User Journeys #1211

Triggered via schedule September 9, 2026 08:15
Status Success
Total duration 13m 56s
Artifacts 1

user-journeys.yml

on: schedule
Drive the app the way a user does
13m 51s
Drive the app the way a user does
Reliability Ring 1 (full hermetic suite + differential + packaged)
8m 46s
Reliability Ring 1 (full hermetic suite + differential + packaged)
Fit to window
Zoom out
Zoom in

Annotations

10 errors and 1 notice
[desktop-chromium] › tests/journeys/mini-app.spec.ts:37:3 › Mini app › runs with a value the user typed: web/tests/journeys/pages.ts#L274
5) [desktop-chromium] › tests/journeys/mini-app.spec.ts:37:3 › Mini app › runs with a value the user typed Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: locator.waitFor: Error: strict mode violation: getByRole('button', { name: 'Run echo' }) resolved to 4 elements: 1) <div tabindex="0" role="button" aria-pressed="false" aria-grabbed="false" aria-disabled="false" data-puck-dnd="panel-main" data-puck-component="panel-main" aria-roledescription="draggable" aria-describedby="dnd-kit-description-1">…</div> aka getByRole('button', { name: 'Echo Text echoed back by the' }) 2) <div tabindex="0" role="button" aria-pressed="false" aria-grabbed="false" aria-disabled="false" data-puck-dnd="btn-run" data-puck-component="btn-run" aria-roledescription="draggable" aria-describedby="dnd-kit-description-1">…</div> aka getByTestId('dropzone:panel-main:content').getByRole('button', { name: 'Run echo', description: 'To pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item in a given direction. Press space again to drop the item in its new position, or press escape to cancel.', exact: true }) 3) <button tabindex="0" type="button" class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-colorPrimary MuiButton-fullWidth nodrag css-1utgm2-MuiButtonBase-root-MuiButton-root">Run echo</button> aka getByTestId('dropzone:panel-main:content').getByText('Run echo') 4) <button tabindex="0" type="button" class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-colorPrimary MuiButton-fullWidth nodrag css-1utgm2-MuiButtonBase-root-MuiButton-root">Run echo</button> aka getByRole('button', { name: 'Run echo' }).nth(3) Call log: - waiting for getByRole('button', { name: 'Run echo' }) to be visible at pages.ts:274 272 | .click({ timeout: 30_000 }); 273 | > 274 | await this.runButton().waitFor({ state: "visible", timeout: 30_000 }); | ^ 275 | } 276 | 277 | runButton(): Locator { at MiniAppPage.open (/home/runner/work/nodetool/nodetool/web/tests/journeys/pages.ts:274:28) at /home/runner/work/nodetool/nodetool/web/tests/journeys/mini-app.spec.ts:39:5
[desktop-chromium] › tests/journeys/mini-app.spec.ts:37:3 › Mini app › runs with a value the user typed: web/tests/journeys/pages.ts#L274
5) [desktop-chromium] › tests/journeys/mini-app.spec.ts:37:3 › Mini app › runs with a value the user typed Error: locator.waitFor: Error: strict mode violation: getByRole('button', { name: 'Run echo' }) resolved to 4 elements: 1) <div tabindex="0" role="button" aria-pressed="false" aria-grabbed="false" aria-disabled="false" data-puck-dnd="panel-main" data-puck-component="panel-main" aria-roledescription="draggable" aria-describedby="dnd-kit-description-1">…</div> aka getByRole('button', { name: 'Echo Text echoed back by the' }) 2) <div tabindex="0" role="button" aria-pressed="false" aria-grabbed="false" aria-disabled="false" data-puck-dnd="btn-run" data-puck-component="btn-run" aria-roledescription="draggable" aria-describedby="dnd-kit-description-1">…</div> aka getByTestId('dropzone:panel-main:content').getByRole('button', { name: 'Run echo', description: 'To pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item in a given direction. Press space again to drop the item in its new position, or press escape to cancel.', exact: true }) 3) <button tabindex="0" type="button" class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-colorPrimary MuiButton-fullWidth nodrag css-1utgm2-MuiButtonBase-root-MuiButton-root">Run echo</button> aka getByTestId('dropzone:panel-main:content').getByText('Run echo') 4) <button tabindex="0" type="button" class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-colorPrimary MuiButton-fullWidth nodrag css-1utgm2-MuiButtonBase-root-MuiButton-root">Run echo</button> aka getByRole('button', { name: 'Run echo' }).nth(3) Call log: - waiting for getByRole('button', { name: 'Run echo' }) to be visible at pages.ts:274 272 | .click({ timeout: 30_000 }); 273 | > 274 | await this.runButton().waitFor({ state: "visible", timeout: 30_000 }); | ^ 275 | } 276 | 277 | runButton(): Locator { at MiniAppPage.open (/home/runner/work/nodetool/nodetool/web/tests/journeys/pages.ts:274:28) at /home/runner/work/nodetool/nodetool/web/tests/journeys/mini-app.spec.ts:39:5
[desktop-chromium] › tests/journeys/mini-app.spec.ts:28:3 › Mini app › runs with the seeded input value: web/tests/journeys/pages.ts#L274
4) [desktop-chromium] › tests/journeys/mini-app.spec.ts:28:3 › Mini app › runs with the seeded input value Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: locator.waitFor: Error: strict mode violation: getByRole('button', { name: 'Run echo' }) resolved to 4 elements: 1) <div tabindex="0" role="button" aria-pressed="false" aria-grabbed="false" aria-disabled="false" data-puck-dnd="panel-main" data-puck-component="panel-main" aria-roledescription="draggable" aria-describedby="dnd-kit-description-1">…</div> aka getByRole('button', { name: 'Echo Text echoed back by the' }) 2) <div tabindex="0" role="button" aria-pressed="false" aria-grabbed="false" aria-disabled="false" data-puck-dnd="btn-run" data-puck-component="btn-run" aria-roledescription="draggable" aria-describedby="dnd-kit-description-1">…</div> aka getByTestId('dropzone:panel-main:content').getByRole('button', { name: 'Run echo', description: 'To pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item in a given direction. Press space again to drop the item in its new position, or press escape to cancel.', exact: true }) 3) <button tabindex="0" type="button" class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-colorPrimary MuiButton-fullWidth nodrag css-1utgm2-MuiButtonBase-root-MuiButton-root">Run echo</button> aka getByTestId('dropzone:panel-main:content').getByText('Run echo') 4) <button tabindex="0" type="button" class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-colorPrimary MuiButton-fullWidth nodrag css-1utgm2-MuiButtonBase-root-MuiButton-root">Run echo</button> aka getByRole('button', { name: 'Run echo' }).nth(3) Call log: - waiting for getByRole('button', { name: 'Run echo' }) to be visible at pages.ts:274 272 | .click({ timeout: 30_000 }); 273 | > 274 | await this.runButton().waitFor({ state: "visible", timeout: 30_000 }); | ^ 275 | } 276 | 277 | runButton(): Locator { at MiniAppPage.open (/home/runner/work/nodetool/nodetool/web/tests/journeys/pages.ts:274:28) at /home/runner/work/nodetool/nodetool/web/tests/journeys/mini-app.spec.ts:30:5
[desktop-chromium] › tests/journeys/mini-app.spec.ts:28:3 › Mini app › runs with the seeded input value: web/tests/journeys/pages.ts#L274
4) [desktop-chromium] › tests/journeys/mini-app.spec.ts:28:3 › Mini app › runs with the seeded input value Error: locator.waitFor: Error: strict mode violation: getByRole('button', { name: 'Run echo' }) resolved to 4 elements: 1) <div tabindex="0" role="button" aria-pressed="false" aria-grabbed="false" aria-disabled="false" data-puck-dnd="panel-main" data-puck-component="panel-main" aria-roledescription="draggable" aria-describedby="dnd-kit-description-1">…</div> aka getByRole('button', { name: 'Echo Text echoed back by the' }) 2) <div tabindex="0" role="button" aria-pressed="false" aria-grabbed="false" aria-disabled="false" data-puck-dnd="btn-run" data-puck-component="btn-run" aria-roledescription="draggable" aria-describedby="dnd-kit-description-1">…</div> aka getByTestId('dropzone:panel-main:content').getByRole('button', { name: 'Run echo', description: 'To pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item in a given direction. Press space again to drop the item in its new position, or press escape to cancel.', exact: true }) 3) <button tabindex="0" type="button" class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-colorPrimary MuiButton-fullWidth nodrag css-1utgm2-MuiButtonBase-root-MuiButton-root">Run echo</button> aka getByTestId('dropzone:panel-main:content').getByText('Run echo') 4) <button tabindex="0" type="button" class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-colorPrimary MuiButton-fullWidth nodrag css-1utgm2-MuiButtonBase-root-MuiButton-root">Run echo</button> aka getByRole('button', { name: 'Run echo' }).nth(3) Call log: - waiting for getByRole('button', { name: 'Run echo' }) to be visible at pages.ts:274 272 | .click({ timeout: 30_000 }); 273 | > 274 | await this.runButton().waitFor({ state: "visible", timeout: 30_000 }); | ^ 275 | } 276 | 277 | runButton(): Locator { at MiniAppPage.open (/home/runner/work/nodetool/nodetool/web/tests/journeys/pages.ts:274:28) at /home/runner/work/nodetool/nodetool/web/tests/journeys/mini-app.spec.ts:30:5
[desktop-chromium] › tests/journeys/mini-app.spec.ts:18:3 › Mini app › renders the app document's widgets: web/tests/journeys/pages.ts#L274
3) [desktop-chromium] › tests/journeys/mini-app.spec.ts:18:3 › Mini app › renders the app document's widgets Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: locator.waitFor: Error: strict mode violation: getByRole('button', { name: 'Run echo' }) resolved to 4 elements: 1) <div tabindex="0" role="button" aria-pressed="false" aria-grabbed="false" aria-disabled="false" data-puck-dnd="panel-main" data-puck-component="panel-main" aria-roledescription="draggable" aria-describedby="dnd-kit-description-1">…</div> aka getByRole('button', { name: 'Echo Text echoed back by the' }) 2) <div tabindex="0" role="button" aria-pressed="false" aria-grabbed="false" aria-disabled="false" data-puck-dnd="btn-run" data-puck-component="btn-run" aria-roledescription="draggable" aria-describedby="dnd-kit-description-1">…</div> aka getByTestId('dropzone:panel-main:content').getByRole('button', { name: 'Run echo', description: 'To pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item in a given direction. Press space again to drop the item in its new position, or press escape to cancel.', exact: true }) 3) <button tabindex="0" type="button" class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-colorPrimary MuiButton-fullWidth nodrag css-1utgm2-MuiButtonBase-root-MuiButton-root">Run echo</button> aka getByTestId('dropzone:panel-main:content').getByText('Run echo') 4) <button tabindex="0" type="button" class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-colorPrimary MuiButton-fullWidth nodrag css-1utgm2-MuiButtonBase-root-MuiButton-root">Run echo</button> aka getByRole('button', { name: 'Run echo' }).nth(3) Call log: - waiting for getByRole('button', { name: 'Run echo' }) to be visible at pages.ts:274 272 | .click({ timeout: 30_000 }); 273 | > 274 | await this.runButton().waitFor({ state: "visible", timeout: 30_000 }); | ^ 275 | } 276 | 277 | runButton(): Locator { at MiniAppPage.open (/home/runner/work/nodetool/nodetool/web/tests/journeys/pages.ts:274:28) at /home/runner/work/nodetool/nodetool/web/tests/journeys/mini-app.spec.ts:20:5
[desktop-chromium] › tests/journeys/mini-app.spec.ts:18:3 › Mini app › renders the app document's widgets: web/tests/journeys/pages.ts#L274
3) [desktop-chromium] › tests/journeys/mini-app.spec.ts:18:3 › Mini app › renders the app document's widgets Error: locator.waitFor: Error: strict mode violation: getByRole('button', { name: 'Run echo' }) resolved to 4 elements: 1) <div tabindex="0" role="button" aria-pressed="false" aria-grabbed="false" aria-disabled="false" data-puck-dnd="panel-main" data-puck-component="panel-main" aria-roledescription="draggable" aria-describedby="dnd-kit-description-1">…</div> aka getByRole('button', { name: 'Echo Text echoed back by the' }) 2) <div tabindex="0" role="button" aria-pressed="false" aria-grabbed="false" aria-disabled="false" data-puck-dnd="btn-run" data-puck-component="btn-run" aria-roledescription="draggable" aria-describedby="dnd-kit-description-1">…</div> aka getByTestId('dropzone:panel-main:content').getByRole('button', { name: 'Run echo', description: 'To pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item in a given direction. Press space again to drop the item in its new position, or press escape to cancel.', exact: true }) 3) <button tabindex="0" type="button" class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-colorPrimary MuiButton-fullWidth nodrag css-1utgm2-MuiButtonBase-root-MuiButton-root">Run echo</button> aka getByTestId('dropzone:panel-main:content').getByText('Run echo') 4) <button tabindex="0" type="button" class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-colorPrimary MuiButton-fullWidth nodrag css-1utgm2-MuiButtonBase-root-MuiButton-root">Run echo</button> aka getByRole('button', { name: 'Run echo' }).nth(3) Call log: - waiting for getByRole('button', { name: 'Run echo' }) to be visible at pages.ts:274 272 | .click({ timeout: 30_000 }); 273 | > 274 | await this.runButton().waitFor({ state: "visible", timeout: 30_000 }); | ^ 275 | } 276 | 277 | runButton(): Locator { at MiniAppPage.open (/home/runner/work/nodetool/nodetool/web/tests/journeys/pages.ts:274:28) at /home/runner/work/nodetool/nodetool/web/tests/journeys/mini-app.spec.ts:20:5
[desktop-chromium] › tests/journeys/chat.spec.ts:37:3 › Chat › clears the composer after sending: web/tests/journeys/pages.ts#L237
2) [desktop-chromium] › tests/journeys/chat.spec.ts:37:3 › Chat › clears the composer after sending Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: locator.click: Error: strict mode violation: getByRole('button', { name: 'Send' }) resolved to 2 elements: 1) <button tabindex="0" type="button" aria-label="Edit and resend" data-mui-internal-clone-element="true" class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall toolbar-icon-button nodrag css-1pu1995-MuiButtonBase-root-MuiIconButton-root">…</button> aka getByRole('button', { name: 'Edit and resend' }).first() 2) <button tabindex="0" type="button" aria-label="Edit and resend" data-mui-internal-clone-element="true" class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall toolbar-icon-button nodrag css-1pu1995-MuiButtonBase-root-MuiIconButton-root">…</button> aka getByRole('button', { name: 'Edit and resend' }).nth(1) Call log: - waiting for getByRole('button', { name: 'Send' }) at pages.ts:237 235 | await this.composer().click(); 236 | await this.composer().fill(message); > 237 | await this.page.getByRole("button", { name: "Send" }).click(); | ^ 238 | } 239 | 240 | /** Resolves once `text` appears anywhere in the transcript. */ at ChatPage.send (/home/runner/work/nodetool/nodetool/web/tests/journeys/pages.ts:237:59) at /home/runner/work/nodetool/nodetool/web/tests/journeys/chat.spec.ts:41:5
[desktop-chromium] › tests/journeys/chat.spec.ts:37:3 › Chat › clears the composer after sending: web/tests/journeys/pages.ts#L237
2) [desktop-chromium] › tests/journeys/chat.spec.ts:37:3 › Chat › clears the composer after sending Error: locator.click: Error: strict mode violation: getByRole('button', { name: 'Send' }) resolved to 2 elements: 1) <button tabindex="0" type="button" aria-label="Edit and resend" data-mui-internal-clone-element="true" class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall toolbar-icon-button nodrag css-1pu1995-MuiButtonBase-root-MuiIconButton-root">…</button> aka getByRole('button', { name: 'Edit and resend' }).first() 2) <button tabindex="0" type="button" aria-label="Edit and resend" data-mui-internal-clone-element="true" class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall toolbar-icon-button nodrag css-1pu1995-MuiButtonBase-root-MuiIconButton-root">…</button> aka getByRole('button', { name: 'Edit and resend' }).nth(1) Call log: - waiting for getByRole('button', { name: 'Send' }) at pages.ts:237 235 | await this.composer().click(); 236 | await this.composer().fill(message); > 237 | await this.page.getByRole("button", { name: "Send" }).click(); | ^ 238 | } 239 | 240 | /** Resolves once `text` appears anywhere in the transcript. */ at ChatPage.send (/home/runner/work/nodetool/nodetool/web/tests/journeys/pages.ts:237:59) at /home/runner/work/nodetool/nodetool/web/tests/journeys/chat.spec.ts:41:5
[desktop-chromium] › tests/journeys/chat.spec.ts:24:3 › Chat › sends a message and streams back a reply: web/tests/journeys/pages.ts#L237
1) [desktop-chromium] › tests/journeys/chat.spec.ts:24:3 › Chat › sends a message and streams back a reply Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: locator.click: Error: strict mode violation: getByRole('button', { name: 'Send' }) resolved to 2 elements: 1) <button tabindex="0" type="button" aria-label="Edit and resend" data-mui-internal-clone-element="true" class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall toolbar-icon-button nodrag css-1pu1995-MuiButtonBase-root-MuiIconButton-root">…</button> aka getByRole('button', { name: 'Edit and resend' }).first() 2) <button tabindex="0" type="button" aria-label="Edit and resend" data-mui-internal-clone-element="true" class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall toolbar-icon-button nodrag css-1pu1995-MuiButtonBase-root-MuiIconButton-root">…</button> aka getByRole('button', { name: 'Edit and resend' }).nth(1) Call log: - waiting for getByRole('button', { name: 'Send' }) at pages.ts:237 235 | await this.composer().click(); 236 | await this.composer().fill(message); > 237 | await this.page.getByRole("button", { name: "Send" }).click(); | ^ 238 | } 239 | 240 | /** Resolves once `text` appears anywhere in the transcript. */ at ChatPage.send (/home/runner/work/nodetool/nodetool/web/tests/journeys/pages.ts:237:59) at /home/runner/work/nodetool/nodetool/web/tests/journeys/chat.spec.ts:29:5
[desktop-chromium] › tests/journeys/chat.spec.ts:24:3 › Chat › sends a message and streams back a reply: web/tests/journeys/pages.ts#L237
1) [desktop-chromium] › tests/journeys/chat.spec.ts:24:3 › Chat › sends a message and streams back a reply Error: locator.click: Error: strict mode violation: getByRole('button', { name: 'Send' }) resolved to 2 elements: 1) <button tabindex="0" type="button" aria-label="Edit and resend" data-mui-internal-clone-element="true" class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall toolbar-icon-button nodrag css-1pu1995-MuiButtonBase-root-MuiIconButton-root">…</button> aka getByRole('button', { name: 'Edit and resend' }).first() 2) <button tabindex="0" type="button" aria-label="Edit and resend" data-mui-internal-clone-element="true" class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeSmall toolbar-icon-button nodrag css-1pu1995-MuiButtonBase-root-MuiIconButton-root">…</button> aka getByRole('button', { name: 'Edit and resend' }).nth(1) Call log: - waiting for getByRole('button', { name: 'Send' }) at pages.ts:237 235 | await this.composer().click(); 236 | await this.composer().fill(message); > 237 | await this.page.getByRole("button", { name: "Send" }).click(); | ^ 238 | } 239 | 240 | /** Resolves once `text` appears anywhere in the transcript. */ at ChatPage.send (/home/runner/work/nodetool/nodetool/web/tests/journeys/pages.ts:237:59) at /home/runner/work/nodetool/nodetool/web/tests/journeys/chat.spec.ts:29:5
🎭 Playwright Run Summary
5 failed [desktop-chromium] › tests/journeys/chat.spec.ts:24:3 › Chat › sends a message and streams back a reply [desktop-chromium] › tests/journeys/chat.spec.ts:37:3 › Chat › clears the composer after sending [desktop-chromium] › tests/journeys/mini-app.spec.ts:18:3 › Mini app › renders the app document's widgets [desktop-chromium] › tests/journeys/mini-app.spec.ts:28:3 › Mini app › runs with the seeded input value [desktop-chromium] › tests/journeys/mini-app.spec.ts:37:3 › Mini app › runs with a value the user typed 19 passed (6.4m)

Artifacts

Produced during runtime
Name Size Digest
user-journeys-report
61.8 MB
sha256:d7a1f3599d27e06ae56d775fb82d439657c2428bc9b39ad37b24732e82ecdd23