Some checks failed
Deploy analytics worker / Deploy analytics worker to ${{ (github.ref == 'refs/heads/production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Failing after 1s
i18n upload strings / Upload latest strings (push) Failing after 1s
Deploy bemo / Deploy bemo to ${{ (github.ref == 'refs/heads/bemo-production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Failing after 1s
Deploy grafana resources / ${{ github.event_name == 'push' && 'Deploy grafana resources' || 'Validate grafana resources (dry run)' }} (push) Failing after 0s
End to end tests (dotcom) / Check for relevant changes (push) Failing after 0s
End to end tests (examples) / Check for relevant changes (push) Failing after 0s
End to end tests (mermaid readability) / Check for relevant changes (push) Failing after 1s
End to end tests (perf) / Check for relevant changes (push) Failing after 0s
Publish editor extensions / Publish editor extensions (push) Failing after 1s
Publish SDK packages / Remove the publish-packages label (push) Has been skipped
Checks / Tests & checks (push) Has been cancelled
Checks / Build all projects (push) Has been cancelled
Deploy templates / Deploy templates (push) Has been cancelled
End to end tests (dotcom) / End to end tests (dotcom) (push) Has been cancelled
End to end tests (mermaid readability) / End to end tests (mermaid readability) (push) Has been cancelled
End to end tests (perf) / End to end tests (perf) (push) Has been cancelled
Deploy .com / Deploy dotcom to ${{ (github.ref == 'refs/heads/production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Has been cancelled
End to end tests (examples) / End to end tests (examples) (push) Has been cancelled
Publish SDK packages / Publish SDK packages (push) Has been cancelled
Publish SDK packages / Tell user released version (push) Has been cancelled
Publish SDK packages / Publishes code templates to separate repositories (push) Has been cancelled
Publish SDK packages / Deploys the template demos with the new SDK version (push) Has been cancelled
43 lines
1.3 KiB
JavaScript
43 lines
1.3 KiB
JavaScript
// Example scenario for record-interaction.mjs: drag a shape, rotate it with the
|
|
// keyboard shortcut mid-drag, then keep dragging. Copy this file and change the
|
|
// body to match the interaction your PR affects.
|
|
//
|
|
// `page` is the Playwright page. `helpers` gives you:
|
|
// editor(fn, arg) run `fn(editor, arg)` inside the page against the live editor
|
|
// drag(from, to) move the mouse in small steps so the motion is visible
|
|
// pause(ms) wait
|
|
|
|
export default async function scenario(page, { editor, drag, pause }) {
|
|
await editor((editor) => {
|
|
editor.user.updateUserPreferences({ animationSpeed: 0, colorScheme: 'light' })
|
|
editor.createShape({
|
|
type: 'geo',
|
|
x: 300,
|
|
y: 240,
|
|
props: { w: 320, h: 160, geo: 'rectangle', color: 'blue', fill: 'solid' },
|
|
})
|
|
editor.selectNone()
|
|
})
|
|
await pause(500)
|
|
|
|
const start = { x: 460, y: 320 }
|
|
await page.mouse.move(start.x, start.y)
|
|
await pause(300)
|
|
await page.mouse.down()
|
|
await drag(start, { x: 620, y: 320 })
|
|
await pause(400)
|
|
|
|
// The external change: six rotate-clockwise presses for a full quarter turn
|
|
for (let i = 0; i < 6; i++) {
|
|
await page.keyboard.press('Shift+Period')
|
|
await pause(120)
|
|
}
|
|
await pause(800)
|
|
|
|
await drag({ x: 620, y: 320 }, { x: 640, y: 460 })
|
|
await pause(400)
|
|
await drag({ x: 640, y: 460 }, { x: 820, y: 420 })
|
|
await pause(500)
|
|
await page.mouse.up()
|
|
}
|