@rehearsal-labs/retest 0.1.0 → 0.3.0
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 +12 -5
- package/dist/agent/session.d.ts +21 -2
- package/dist/agent/session.d.ts.map +1 -1
- package/dist/agent/session.js +73 -11
- package/dist/api/app-page.d.ts +39 -3
- package/dist/api/app-page.d.ts.map +1 -1
- package/dist/api/app-page.js +108 -0
- package/dist/api/dialog.d.ts +38 -0
- package/dist/api/dialog.d.ts.map +1 -0
- package/dist/api/dialog.js +78 -0
- package/dist/api/drag.d.ts +32 -0
- package/dist/api/drag.d.ts.map +1 -0
- package/dist/api/drag.js +26 -0
- package/dist/api/files.d.ts +49 -0
- package/dist/api/files.d.ts.map +1 -0
- package/dist/api/files.js +168 -0
- package/dist/api/inbox.d.ts +97 -0
- package/dist/api/inbox.d.ts.map +1 -0
- package/dist/api/inbox.js +191 -0
- package/dist/api/locator-recipes.d.ts +1 -1
- package/dist/api/locator-recipes.d.ts.map +1 -1
- package/dist/api/locator-recipes.js +4 -3
- package/dist/api/page.d.ts +214 -4
- package/dist/api/page.d.ts.map +1 -1
- package/dist/api/route.d.ts +21 -0
- package/dist/api/route.d.ts.map +1 -0
- package/dist/api/route.js +99 -0
- package/dist/api/source-location.d.ts.map +1 -1
- package/dist/api/source-location.js +3 -1
- package/dist/api/test-run.d.ts +127 -1
- package/dist/api/test-run.d.ts.map +1 -1
- package/dist/api/test-run.js +293 -0
- package/dist/assertions/expect.d.ts +91 -2
- package/dist/assertions/expect.d.ts.map +1 -1
- package/dist/assertions/expect.js +98 -0
- package/dist/assertions/look-until.d.ts +5 -0
- package/dist/assertions/look-until.d.ts.map +1 -1
- package/dist/assertions/look-until.js +1 -1
- package/dist/assertions/poll-layout.d.ts +24 -0
- package/dist/assertions/poll-layout.d.ts.map +1 -0
- package/dist/assertions/poll-layout.js +63 -0
- package/dist/assertions/screenshot.d.ts +36 -0
- package/dist/assertions/screenshot.d.ts.map +1 -0
- package/dist/assertions/screenshot.js +125 -0
- package/dist/browser/accessibility.d.ts.map +1 -1
- package/dist/browser/accessibility.js +22 -1
- package/dist/browser/actionability.d.ts +9 -6
- package/dist/browser/actionability.d.ts.map +1 -1
- package/dist/browser/actionability.js +17 -8
- package/dist/browser/browser.d.ts.map +1 -1
- package/dist/browser/browser.js +15 -4
- package/dist/browser/builds.d.ts +35 -6
- package/dist/browser/builds.d.ts.map +1 -1
- package/dist/browser/builds.js +115 -16
- package/dist/browser/cdp/connection.d.ts +6 -0
- package/dist/browser/cdp/connection.d.ts.map +1 -1
- package/dist/browser/cdp/connection.js +8 -0
- package/dist/browser/cdp/transport.d.ts.map +1 -1
- package/dist/browser/cdp/transport.js +4 -4
- package/dist/browser/checked-state.d.ts +2 -2
- package/dist/browser/checked-state.d.ts.map +1 -1
- package/dist/browser/chromium-process.d.ts +32 -2
- package/dist/browser/chromium-process.d.ts.map +1 -1
- package/dist/browser/chromium-process.js +95 -17
- package/dist/browser/contract.d.ts +119 -5
- package/dist/browser/contract.d.ts.map +1 -1
- package/dist/browser/dialogs.d.ts +157 -0
- package/dist/browser/dialogs.d.ts.map +1 -0
- package/dist/browser/dialogs.js +271 -0
- package/dist/browser/downloads.d.ts +71 -0
- package/dist/browser/downloads.d.ts.map +1 -0
- package/dist/browser/downloads.js +253 -0
- package/dist/browser/drag.d.ts +50 -0
- package/dist/browser/drag.d.ts.map +1 -0
- package/dist/browser/drag.js +584 -0
- package/dist/browser/electron-window-watch.d.ts +32 -0
- package/dist/browser/electron-window-watch.d.ts.map +1 -0
- package/dist/browser/electron-window-watch.js +93 -0
- package/dist/browser/electron.d.ts +14 -3
- package/dist/browser/electron.d.ts.map +1 -1
- package/dist/browser/electron.js +57 -9
- package/dist/browser/element-queries.d.ts +51 -15
- package/dist/browser/element-queries.d.ts.map +1 -1
- package/dist/browser/element-queries.js +92 -13
- package/dist/browser/emulation.d.ts.map +1 -1
- package/dist/browser/emulation.js +7 -5
- package/dist/browser/executables.d.ts +16 -1
- package/dist/browser/executables.d.ts.map +1 -1
- package/dist/browser/executables.js +50 -18
- package/dist/browser/file-chooser.d.ts +75 -0
- package/dist/browser/file-chooser.d.ts.map +1 -0
- package/dist/browser/file-chooser.js +449 -0
- package/dist/browser/firefox/accessible-names.d.ts +5 -4
- package/dist/browser/firefox/accessible-names.d.ts.map +1 -1
- package/dist/browser/firefox/accessible-names.js +11 -6
- package/dist/browser/firefox/bridge.js +3 -2
- package/dist/browser/firefox/executable.d.ts +14 -14
- package/dist/browser/firefox/executable.d.ts.map +1 -1
- package/dist/browser/firefox/executable.js +29 -21
- package/dist/browser/firefox/input.d.ts +5 -0
- package/dist/browser/firefox/input.d.ts.map +1 -1
- package/dist/browser/firefox/input.js +6 -3
- package/dist/browser/firefox/launch.js +1 -1
- package/dist/browser/firefox/navigation.d.ts +5 -2
- package/dist/browser/firefox/navigation.d.ts.map +1 -1
- package/dist/browser/firefox/navigation.js +48 -14
- package/dist/browser/firefox/orphans.d.ts.map +1 -1
- package/dist/browser/firefox/orphans.js +34 -2
- package/dist/browser/firefox/page.d.ts +11 -1
- package/dist/browser/firefox/page.d.ts.map +1 -1
- package/dist/browser/firefox/page.js +179 -26
- package/dist/browser/firefox/process.d.ts +20 -1
- package/dist/browser/firefox/process.d.ts.map +1 -1
- package/dist/browser/firefox/process.js +124 -22
- package/dist/browser/firefox/profile.d.ts +5 -0
- package/dist/browser/firefox/profile.d.ts.map +1 -1
- package/dist/browser/firefox/profile.js +17 -1
- package/dist/browser/firefox/storage.d.ts.map +1 -1
- package/dist/browser/firefox/storage.js +4 -2
- package/dist/browser/firefox/subscriptions.d.ts +26 -0
- package/dist/browser/firefox/subscriptions.d.ts.map +1 -0
- package/dist/browser/firefox/subscriptions.js +10 -0
- package/dist/browser/frames.d.ts +205 -0
- package/dist/browser/frames.d.ts.map +1 -0
- package/dist/browser/frames.js +657 -0
- package/dist/browser/input-guard.d.ts +18 -5
- package/dist/browser/input-guard.d.ts.map +1 -1
- package/dist/browser/input-guard.js +65 -6
- package/dist/browser/isolated-world.d.ts +8 -1
- package/dist/browser/isolated-world.d.ts.map +1 -1
- package/dist/browser/launch.d.ts +6 -0
- package/dist/browser/launch.d.ts.map +1 -1
- package/dist/browser/launch.js +14 -1
- package/dist/browser/layout.d.ts +120 -0
- package/dist/browser/layout.d.ts.map +1 -0
- package/dist/browser/layout.js +213 -0
- package/dist/browser/locate.d.ts +10 -0
- package/dist/browser/locate.d.ts.map +1 -1
- package/dist/browser/locate.js +24 -6
- package/dist/browser/origin-document.d.ts +4 -0
- package/dist/browser/origin-document.d.ts.map +1 -1
- package/dist/browser/origin-document.js +9 -1
- package/dist/browser/page-scripts.d.ts +48 -0
- package/dist/browser/page-scripts.d.ts.map +1 -1
- package/dist/browser/page-scripts.js +515 -39
- package/dist/browser/page.d.ts +60 -1
- package/dist/browser/page.d.ts.map +1 -1
- package/dist/browser/page.js +275 -32
- package/dist/browser/popups.d.ts +166 -0
- package/dist/browser/popups.d.ts.map +1 -0
- package/dist/browser/popups.js +317 -0
- package/dist/browser/routes.d.ts +97 -0
- package/dist/browser/routes.d.ts.map +1 -0
- package/dist/browser/routes.js +226 -0
- package/dist/browser/screenshot.d.ts +44 -0
- package/dist/browser/screenshot.d.ts.map +1 -0
- package/dist/browser/screenshot.js +51 -0
- package/dist/browser/shadow-candidates.d.ts +20 -0
- package/dist/browser/shadow-candidates.d.ts.map +1 -0
- package/dist/browser/shadow-candidates.js +77 -0
- package/dist/browser/webkit/page.d.ts +11 -1
- package/dist/browser/webkit/page.d.ts.map +1 -1
- package/dist/browser/webkit/page.js +53 -2
- package/dist/browser/webkit/relay.d.ts.map +1 -1
- package/dist/browser/webkit/relay.js +5 -1
- package/dist/cli/commands/doctor.js +3 -3
- package/dist/cli/commands/inspect.js +3 -2
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +26 -13
- package/dist/cli/commands/licences.d.ts +22 -0
- package/dist/cli/commands/licences.d.ts.map +1 -1
- package/dist/cli/commands/licences.js +62 -20
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +4 -2
- package/dist/cli/doctor/checks.js +4 -1
- package/dist/cli/inspect/diagnostics.js +3 -3
- package/dist/cli/inspect/test-timeline.d.ts.map +1 -1
- package/dist/cli/inspect/test-timeline.js +45 -11
- package/dist/cli/install/doctor-rows.d.ts.map +1 -1
- package/dist/cli/install/doctor-rows.js +5 -4
- package/dist/cli/install/file-changes.d.ts +44 -0
- package/dist/cli/install/file-changes.d.ts.map +1 -0
- package/dist/cli/install/file-changes.js +81 -0
- package/dist/cli/install/install-archive.d.ts +3 -1
- package/dist/cli/install/install-archive.d.ts.map +1 -1
- package/dist/cli/install/install-archive.js +80 -33
- package/dist/cli/install/lock.d.ts.map +1 -1
- package/dist/cli/install/lock.js +108 -21
- package/dist/cli/install/media-doctor.d.ts.map +1 -1
- package/dist/cli/install/media-doctor.js +2 -1
- package/dist/cli/install/media-install.d.ts.map +1 -1
- package/dist/cli/install/media-install.js +38 -19
- package/dist/cli/install/media-pins.d.ts +7 -1
- package/dist/cli/install/media-pins.d.ts.map +1 -1
- package/dist/cli/install/media-pins.js +23 -12
- package/dist/cli/install/media-record.d.ts.map +1 -1
- package/dist/cli/install/media-record.js +10 -9
- package/dist/cli/install/media-report.d.ts +3 -1
- package/dist/cli/install/media-report.d.ts.map +1 -1
- package/dist/cli/install/media-report.js +7 -5
- package/dist/cli/install/media-tools.d.ts.map +1 -1
- package/dist/cli/install/media-tools.js +6 -4
- package/dist/cli/install/process-start.d.ts +3 -2
- package/dist/cli/install/process-start.d.ts.map +1 -1
- package/dist/cli/install/process-start.js +4 -0
- package/dist/cli/install/report.d.ts.map +1 -1
- package/dist/cli/install/report.js +11 -7
- package/dist/cli/install/supervisor-install.d.ts +33 -0
- package/dist/cli/install/supervisor-install.d.ts.map +1 -0
- package/dist/cli/install/supervisor-install.js +158 -0
- package/dist/cli/install/supervisor-locate.d.ts +47 -0
- package/dist/cli/install/supervisor-locate.d.ts.map +1 -0
- package/dist/cli/install/supervisor-locate.js +113 -0
- package/dist/cli/install/supervisor-pins.d.ts +21 -0
- package/dist/cli/install/supervisor-pins.d.ts.map +1 -0
- package/dist/cli/install/supervisor-pins.js +28 -0
- package/dist/cli/install/supervisor-record.d.ts +31 -0
- package/dist/cli/install/supervisor-record.d.ts.map +1 -0
- package/dist/cli/install/supervisor-record.js +104 -0
- package/dist/cli/install/supervisor-report.d.ts +11 -0
- package/dist/cli/install/supervisor-report.d.ts.map +1 -0
- package/dist/cli/install/supervisor-report.js +33 -0
- package/dist/cli/install/supervisor-tools.d.ts +43 -0
- package/dist/cli/install/supervisor-tools.d.ts.map +1 -0
- package/dist/cli/install/supervisor-tools.js +114 -0
- package/dist/cli/install/unpack.d.ts +23 -3
- package/dist/cli/install/unpack.d.ts.map +1 -1
- package/dist/cli/install/unpack.js +124 -10
- package/dist/cli/install/zip-member.d.ts +15 -0
- package/dist/cli/install/zip-member.d.ts.map +1 -0
- package/dist/cli/install/zip-member.js +77 -0
- package/dist/cli/interrupt.d.ts +1 -1
- package/dist/cli/interrupt.d.ts.map +1 -1
- package/dist/cli/interrupt.js +15 -10
- package/dist/cli/terminal.d.ts +9 -1
- package/dist/cli/terminal.d.ts.map +1 -1
- package/dist/cli/terminal.js +14 -0
- package/dist/config/define.d.ts +2 -2
- package/dist/config/define.js +2 -2
- package/dist/config/loaded.d.ts +12 -2
- package/dist/config/loaded.d.ts.map +1 -1
- package/dist/config/read-inboxes.d.ts +10 -0
- package/dist/config/read-inboxes.d.ts.map +1 -0
- package/dist/config/read-inboxes.js +78 -0
- package/dist/config/register.d.ts +5 -1
- package/dist/config/register.d.ts.map +1 -1
- package/dist/config/types.d.ts +36 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/validate.d.ts.map +1 -1
- package/dist/config/validate.js +4 -1
- package/dist/diagnostics/artifact.d.ts.map +1 -1
- package/dist/diagnostics/artifact.js +10 -2
- package/dist/diagnostics/attempt.d.ts +5 -0
- package/dist/diagnostics/attempt.d.ts.map +1 -1
- package/dist/diagnostics/attempt.js +10 -0
- package/dist/diagnostics/chromium-collector.d.ts +9 -1
- package/dist/diagnostics/chromium-collector.d.ts.map +1 -1
- package/dist/diagnostics/chromium-collector.js +19 -4
- package/dist/diagnostics/firefox-collector.d.ts +11 -10
- package/dist/diagnostics/firefox-collector.d.ts.map +1 -1
- package/dist/diagnostics/firefox-collector.js +16 -11
- package/dist/diagnostics/observations.d.ts +8 -0
- package/dist/diagnostics/observations.d.ts.map +1 -1
- package/dist/diagnostics/session-capture.d.ts.map +1 -1
- package/dist/diagnostics/session-capture.js +8 -0
- package/dist/index.d.ts +9 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/media/client.d.ts +2 -1
- package/dist/media/client.d.ts.map +1 -1
- package/dist/media/client.js +16 -5
- package/dist/media/host.d.ts +32 -0
- package/dist/media/host.d.ts.map +1 -0
- package/dist/media/host.js +50 -0
- package/dist/media/locate.d.ts.map +1 -1
- package/dist/media/locate.js +4 -3
- package/dist/media/policy.d.ts +2 -2
- package/dist/media/policy.d.ts.map +1 -1
- package/dist/media/policy.js +1 -1
- package/dist/native/processes.d.ts.map +1 -1
- package/dist/native/processes.js +7 -3
- package/dist/playwright/not-yet.d.ts.map +1 -1
- package/dist/playwright/not-yet.js +5 -2
- package/dist/protocol/commands.d.ts +122 -13
- package/dist/protocol/commands.d.ts.map +1 -1
- package/dist/protocol/commands.js +85 -6
- package/dist/protocol/diagnostics.d.ts +10 -0
- package/dist/protocol/diagnostics.d.ts.map +1 -1
- package/dist/protocol/diagnostics.js +5 -0
- package/dist/protocol/dialogs.d.ts +104 -0
- package/dist/protocol/dialogs.d.ts.map +1 -0
- package/dist/protocol/dialogs.js +101 -0
- package/dist/protocol/drag.d.ts +45 -0
- package/dist/protocol/drag.d.ts.map +1 -0
- package/dist/protocol/drag.js +31 -0
- package/dist/protocol/events.d.ts +153 -1
- package/dist/protocol/events.d.ts.map +1 -1
- package/dist/protocol/events.js +97 -0
- package/dist/protocol/files.d.ts +83 -0
- package/dist/protocol/files.d.ts.map +1 -0
- package/dist/protocol/files.js +73 -0
- package/dist/protocol/inbox.d.ts +87 -0
- package/dist/protocol/inbox.d.ts.map +1 -0
- package/dist/protocol/inbox.js +51 -0
- package/dist/protocol/index.d.ts +4 -1
- package/dist/protocol/index.d.ts.map +1 -1
- package/dist/protocol/layout-checks.d.ts +83 -0
- package/dist/protocol/layout-checks.d.ts.map +1 -0
- package/dist/protocol/layout-checks.js +214 -0
- package/dist/protocol/layout.d.ts +135 -0
- package/dist/protocol/layout.d.ts.map +1 -0
- package/dist/protocol/layout.js +124 -0
- package/dist/protocol/locator-checks.d.ts +19 -2
- package/dist/protocol/locator-checks.d.ts.map +1 -1
- package/dist/protocol/locator-checks.js +23 -1
- package/dist/protocol/locator.d.ts +55 -7
- package/dist/protocol/locator.d.ts.map +1 -1
- package/dist/protocol/locator.js +99 -18
- package/dist/protocol/messages.d.ts +95 -0
- package/dist/protocol/messages.d.ts.map +1 -1
- package/dist/protocol/messages.js +63 -0
- package/dist/protocol/popups.d.ts +43 -0
- package/dist/protocol/popups.d.ts.map +1 -0
- package/dist/protocol/popups.js +27 -0
- package/dist/protocol/result.d.ts +5 -0
- package/dist/protocol/result.d.ts.map +1 -1
- package/dist/protocol/result.js +1 -0
- package/dist/protocol/routes.d.ts +136 -0
- package/dist/protocol/routes.d.ts.map +1 -0
- package/dist/protocol/routes.js +191 -0
- package/dist/protocol/screenshot.d.ts +219 -0
- package/dist/protocol/screenshot.d.ts.map +1 -0
- package/dist/protocol/screenshot.js +335 -0
- package/dist/reporters/actions.d.ts +6 -4
- package/dist/reporters/actions.d.ts.map +1 -1
- package/dist/reporters/actions.js +24 -6
- package/dist/reporters/agent.d.ts.map +1 -1
- package/dist/reporters/agent.js +4 -2
- package/dist/reporters/commands.d.ts +12 -3
- package/dist/reporters/commands.d.ts.map +1 -1
- package/dist/reporters/commands.js +29 -11
- package/dist/reporters/dialogs-popups.d.ts +22 -0
- package/dist/reporters/dialogs-popups.d.ts.map +1 -0
- package/dist/reporters/dialogs-popups.js +30 -0
- package/dist/reporters/failure-card.d.ts +10 -1
- package/dist/reporters/failure-card.d.ts.map +1 -1
- package/dist/reporters/failure-card.js +5 -1
- package/dist/reporters/format.d.ts +33 -0
- package/dist/reporters/format.d.ts.map +1 -1
- package/dist/reporters/format.js +42 -0
- package/dist/reporters/html/comparison-view.d.ts +12 -0
- package/dist/reporters/html/comparison-view.d.ts.map +1 -0
- package/dist/reporters/html/comparison-view.js +21 -0
- package/dist/reporters/html/diagnostics-view.js +8 -0
- package/dist/reporters/html/downloads-view.d.ts +10 -0
- package/dist/reporters/html/downloads-view.d.ts.map +1 -0
- package/dist/reporters/html/downloads-view.js +29 -0
- package/dist/reporters/html/style.d.ts.map +1 -1
- package/dist/reporters/html/style.js +3 -0
- package/dist/reporters/html/summary-view.d.ts.map +1 -1
- package/dist/reporters/html/summary-view.js +3 -2
- package/dist/reporters/html/test-view.d.ts.map +1 -1
- package/dist/reporters/html/test-view.js +6 -3
- package/dist/reporters/html/timeline-view.d.ts.map +1 -1
- package/dist/reporters/html/timeline-view.js +26 -2
- package/dist/reporters/human-card.js +11 -1
- package/dist/reporters/human.d.ts +3 -1
- package/dist/reporters/human.d.ts.map +1 -1
- package/dist/reporters/human.js +11 -9
- package/dist/reporters/routes.d.ts +9 -0
- package/dist/reporters/routes.d.ts.map +1 -0
- package/dist/reporters/routes.js +17 -0
- package/dist/reporters/style.d.ts +21 -2
- package/dist/reporters/style.d.ts.map +1 -1
- package/dist/reporters/style.js +11 -2
- package/dist/runner/app-server.d.ts +27 -7
- package/dist/runner/app-server.d.ts.map +1 -1
- package/dist/runner/app-server.js +74 -24
- package/dist/runner/child-program.js +10 -0
- package/dist/runner/child.js +6 -2
- package/dist/runner/contract.d.ts +5 -0
- package/dist/runner/contract.d.ts.map +1 -1
- package/dist/runner/dialogs.d.ts +71 -0
- package/dist/runner/dialogs.d.ts.map +1 -0
- package/dist/runner/dialogs.js +189 -0
- package/dist/runner/files.d.ts +79 -0
- package/dist/runner/files.d.ts.map +1 -0
- package/dist/runner/files.js +312 -0
- package/dist/runner/inbox-links.d.ts +19 -0
- package/dist/runner/inbox-links.d.ts.map +1 -0
- package/dist/runner/inbox-links.js +63 -0
- package/dist/runner/inbox.d.ts +87 -0
- package/dist/runner/inbox.d.ts.map +1 -0
- package/dist/runner/inbox.js +340 -0
- package/dist/runner/index.d.ts +2 -1
- package/dist/runner/index.d.ts.map +1 -1
- package/dist/runner/media-leftovers.d.ts +7 -3
- package/dist/runner/media-leftovers.d.ts.map +1 -1
- package/dist/runner/media-leftovers.js +27 -6
- package/dist/runner/native-pool.d.ts.map +1 -1
- package/dist/runner/native-pool.js +2 -0
- package/dist/runner/observations.d.ts +15 -2
- package/dist/runner/observations.d.ts.map +1 -1
- package/dist/runner/observations.js +109 -6
- package/dist/runner/popups.d.ts +82 -0
- package/dist/runner/popups.d.ts.map +1 -0
- package/dist/runner/popups.js +236 -0
- package/dist/runner/redactor.d.ts.map +1 -1
- package/dist/runner/redactor.js +10 -6
- package/dist/runner/resources.d.ts +8 -0
- package/dist/runner/resources.d.ts.map +1 -1
- package/dist/runner/resources.js +12 -1
- package/dist/runner/routes.d.ts +23 -0
- package/dist/runner/routes.d.ts.map +1 -0
- package/dist/runner/routes.js +128 -0
- package/dist/runner/run-media.d.ts +6 -0
- package/dist/runner/run-media.d.ts.map +1 -1
- package/dist/runner/run-media.js +21 -0
- package/dist/runner/run-session.d.ts.map +1 -1
- package/dist/runner/run-session.js +102 -12
- package/dist/runner/run.d.ts.map +1 -1
- package/dist/runner/run.js +2 -1
- package/dist/runner/running-test.d.ts +35 -0
- package/dist/runner/running-test.d.ts.map +1 -1
- package/dist/runner/running-test.js +333 -22
- package/dist/runner/screenshot-baselines.d.ts +159 -0
- package/dist/runner/screenshot-baselines.d.ts.map +1 -0
- package/dist/runner/screenshot-baselines.js +357 -0
- package/dist/runner/secrets.d.ts +13 -0
- package/dist/runner/secrets.d.ts.map +1 -1
- package/dist/runner/secrets.js +6 -4
- package/dist/runner/target-drivers.d.ts +5 -2
- package/dist/runner/target-drivers.d.ts.map +1 -1
- package/dist/runner/target-drivers.js +10 -1
- package/dist/runner/test-file-process.d.ts +8 -0
- package/dist/runner/test-file-process.d.ts.map +1 -1
- package/dist/runner/test-file-process.js +26 -3
- package/dist/runner/test-pages.d.ts +3 -1
- package/dist/runner/test-pages.d.ts.map +1 -1
- package/dist/runner/test-pages.js +9 -5
- package/dist/schemas/event-v1.schema.json +118873 -6311
- package/dist/schemas/result-v1.schema.json +4 -0
- package/dist/shared/environment.d.ts +17 -0
- package/dist/shared/environment.d.ts.map +1 -0
- package/dist/shared/environment.js +27 -0
- package/dist/shared/image-diff.d.ts +36 -0
- package/dist/shared/image-diff.d.ts.map +1 -0
- package/dist/shared/image-diff.js +242 -0
- package/dist/shared/metadata-process-worker.js +15 -7
- package/dist/shared/metadata-process.d.ts +9 -1
- package/dist/shared/metadata-process.d.ts.map +1 -1
- package/dist/shared/metadata-process.js +84 -12
- package/dist/shared/png.d.ts +35 -0
- package/dist/shared/png.d.ts.map +1 -0
- package/dist/shared/png.js +251 -0
- package/dist/shared/posix-path.d.ts +12 -0
- package/dist/shared/posix-path.d.ts.map +1 -1
- package/dist/shared/posix-path.js +16 -0
- package/dist/shared/private-file.d.ts +38 -0
- package/dist/shared/private-file.d.ts.map +1 -0
- package/dist/shared/private-file.js +132 -0
- package/dist/shared/process-ownership.d.ts +67 -6
- package/dist/shared/process-ownership.d.ts.map +1 -1
- package/dist/shared/process-ownership.js +227 -45
- package/dist/shared/process-supervisor.d.ts +309 -0
- package/dist/shared/process-supervisor.d.ts.map +1 -0
- package/dist/shared/process-supervisor.js +737 -0
- package/dist/shared/process-system.d.ts +113 -0
- package/dist/shared/process-system.d.ts.map +1 -0
- package/dist/shared/process-system.js +254 -0
- package/dist/shared/regular-file.d.ts +2 -2
- package/dist/shared/regular-file.d.ts.map +1 -1
- package/dist/shared/regular-file.js +19 -2
- package/dist/store/artifacts.d.ts +28 -6
- package/dist/store/artifacts.d.ts.map +1 -1
- package/dist/store/artifacts.js +58 -6
- package/dist/store/rebuild-result.d.ts.map +1 -1
- package/dist/store/rebuild-result.js +6 -0
- package/dist/store/run-store.d.ts +5 -2
- package/dist/store/run-store.d.ts.map +1 -1
- package/dist/store/run-store.js +48 -4
- package/media/Cargo.lock +16 -0
- package/media/Cargo.toml +16 -1
- package/media/src/encoder.rs +56 -12
- package/media/src/frame.rs +7 -1
- package/media/src/main.rs +20 -2
- package/media/src/place.rs +230 -11
- package/media/src/process_ownership_windows.rs +1058 -0
- package/media/src/recording.rs +15 -7
- package/media/src/replies.rs +55 -0
- package/media/src/server.rs +72 -2
- package/media/src/store.rs +71 -2
- package/package.json +9 -4
- package/src/cli/install/media-notices.txt +465 -1
- package/supervisor/Cargo.lock +25 -0
- package/supervisor/Cargo.toml +22 -0
- package/supervisor/NOTICES +464 -0
- package/supervisor/build.rs +44 -0
- package/supervisor/src/command.rs +612 -0
- package/supervisor/src/jobs.rs +1650 -0
- package/supervisor/src/main.rs +71 -0
- package/supervisor/src/reply.rs +367 -0
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { inspect } from 'node:util';
|
|
2
|
+
import { describeInboxReference } from "../protocol/inbox.js";
|
|
3
|
+
import { patternProblem, textPatternOf } from "../protocol/locator.js";
|
|
4
|
+
import { isPlainObject } from "../protocol/schema.js";
|
|
5
|
+
import { maxTimeout } from "../protocol/timeouts.js";
|
|
6
|
+
import { requireScope } from "./context.js";
|
|
7
|
+
import { formatValue } from "./format-value.js";
|
|
8
|
+
import { misuse } from "./misuse.js";
|
|
9
|
+
import { Secret } from "./secret.js";
|
|
10
|
+
let codeReference;
|
|
11
|
+
let linkReference;
|
|
12
|
+
/**
|
|
13
|
+
* A one-time code from a message, named but never held: the process that runs Retest types it, bound to origins as a
|
|
14
|
+
* secret is. It is a secret, so it goes only to `fill()`, and however it is printed it reads `{{code}}`.
|
|
15
|
+
*/
|
|
16
|
+
export class InboxCode extends Secret {
|
|
17
|
+
#reference;
|
|
18
|
+
static {
|
|
19
|
+
codeReference = (code) => code.#reference;
|
|
20
|
+
}
|
|
21
|
+
constructor(reference) {
|
|
22
|
+
super('code');
|
|
23
|
+
this.#reference = reference;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* A link from a message, named but never held: the process that runs Retest opens it, when its origin is one the test
|
|
28
|
+
* may open. It goes only to `goto()`, and however it is printed it reads `{{link}}`, or `{{link:2}}` when it was chosen
|
|
29
|
+
* by number or path.
|
|
30
|
+
*/
|
|
31
|
+
export class InboxLink {
|
|
32
|
+
#reference;
|
|
33
|
+
static {
|
|
34
|
+
linkReference = (link) => link.#reference;
|
|
35
|
+
// Node's inspect hook sits on the prototype, off the declared type, so the public type needs no Node types.
|
|
36
|
+
Object.defineProperty(InboxLink.prototype, inspect.custom, {
|
|
37
|
+
value() {
|
|
38
|
+
return this.toString();
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
constructor(reference) {
|
|
43
|
+
this.#reference = reference;
|
|
44
|
+
}
|
|
45
|
+
toString() {
|
|
46
|
+
return describeInboxReference(this.#reference);
|
|
47
|
+
}
|
|
48
|
+
toJSON() {
|
|
49
|
+
return this.toString();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* A message an inbox gave the test. `subject`, `from` and `text` have each code written `{{code}}` and each link that
|
|
54
|
+
* carries a token written `{{link:1}}`, `{{link:2}}` and so on, by its number. `code` is its first code, for `fill()`,
|
|
55
|
+
* and `link()` one of its links, for `goto()`; the test's process never holds either value.
|
|
56
|
+
*/
|
|
57
|
+
export class ReceivedMessage {
|
|
58
|
+
subject;
|
|
59
|
+
from;
|
|
60
|
+
text;
|
|
61
|
+
/** When the mailbox received it. */
|
|
62
|
+
receivedAt;
|
|
63
|
+
links;
|
|
64
|
+
/** The message's first code. A fill of it fails when the message holds none. */
|
|
65
|
+
code;
|
|
66
|
+
#record;
|
|
67
|
+
constructor(record) {
|
|
68
|
+
this.#record = record;
|
|
69
|
+
this.subject = record.subject;
|
|
70
|
+
this.from = record.from;
|
|
71
|
+
this.text = record.text;
|
|
72
|
+
this.receivedAt = new Date(record.receivedAt);
|
|
73
|
+
this.links = Object.freeze(record.links.map((link) => Object.freeze({ ...link })));
|
|
74
|
+
this.code = new InboxCode({ inbox: record.inbox, message: record.id, code: 1 });
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* One of the message's links, for `goto()`. With no argument, the first link that carries a token, or else the first
|
|
78
|
+
* link. A number takes that link, from 1; `{ path }` the first link whose path is `path` or lies under it.
|
|
79
|
+
*
|
|
80
|
+
* @example await page.goto(message.link({ path: '/verify' }))
|
|
81
|
+
*/
|
|
82
|
+
link(choice) {
|
|
83
|
+
const { inbox, id } = this.#record;
|
|
84
|
+
const chosen = this.#choose(choice);
|
|
85
|
+
if (typeof chosen === 'string')
|
|
86
|
+
throw misuse(chosen);
|
|
87
|
+
return new InboxLink({ inbox, message: id, link: chosen, ...(choice === undefined ? { default: true } : {}) });
|
|
88
|
+
}
|
|
89
|
+
// A link's number from 1, or why there is none to take.
|
|
90
|
+
#choose(choice) {
|
|
91
|
+
const { links } = this;
|
|
92
|
+
const subject = JSON.stringify(this.subject);
|
|
93
|
+
if (choice === undefined) {
|
|
94
|
+
if (links.length === 0)
|
|
95
|
+
return `link() found no link in the message ${subject}.`;
|
|
96
|
+
const carrying = links.findIndex((link) => link.token);
|
|
97
|
+
return (carrying === -1 ? 0 : carrying) + 1;
|
|
98
|
+
}
|
|
99
|
+
if (typeof choice === 'number') {
|
|
100
|
+
if (Number.isInteger(choice) && choice >= 1 && choice <= links.length)
|
|
101
|
+
return choice;
|
|
102
|
+
return `link(${formatValue(choice)}) takes a link's number from 1 to ${links.length}, the links of the message ${subject}.`;
|
|
103
|
+
}
|
|
104
|
+
if (isPlainObject(choice) && Object.keys(choice).length === 1 && typeof choice['path'] === 'string') {
|
|
105
|
+
const path = choice['path'];
|
|
106
|
+
const under = path.endsWith('/') ? path : `${path}/`;
|
|
107
|
+
const found = links.findIndex((link) => link.path === path || link.path.startsWith(under));
|
|
108
|
+
if (found !== -1)
|
|
109
|
+
return found + 1;
|
|
110
|
+
const paths = links.map((link) => link.path).filter((each) => each !== '');
|
|
111
|
+
const listed = paths.length === 0 ? 'Its links have no web address.' : `Its links go to ${paths.join(', ')}.`;
|
|
112
|
+
return `link({ path: ${JSON.stringify(path)} }) matches no link in the message ${subject}. ${listed}`;
|
|
113
|
+
}
|
|
114
|
+
return `link() takes a link's number from 1, such as link(2), or its path, such as link({ path: '/verify' }), received ${formatValue(choice)}.`;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/** A test mailbox from the config, named for the reads a test makes of it. */
|
|
118
|
+
export class Inbox {
|
|
119
|
+
#name;
|
|
120
|
+
constructor(name) {
|
|
121
|
+
this.#name = name;
|
|
122
|
+
}
|
|
123
|
+
/** The inbox's name in the config. */
|
|
124
|
+
get name() {
|
|
125
|
+
return this.#name;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Waits for the newest message the mailbox received since the test started, or since the last message this test was
|
|
129
|
+
* given from it, and gives it to the test. It looks again, as a matcher does, until one arrives or its time runs out.
|
|
130
|
+
*
|
|
131
|
+
* @example const message = await inbox('owner').latest({ subject: 'Your sign-in code' })
|
|
132
|
+
*/
|
|
133
|
+
latest(options) {
|
|
134
|
+
const call = `inbox(${JSON.stringify(this.#name)}).latest()`;
|
|
135
|
+
const { run } = requireScope(call);
|
|
136
|
+
const location = run.location();
|
|
137
|
+
const read = readOptions(options);
|
|
138
|
+
if (typeof read === 'string')
|
|
139
|
+
throw misuse(`${call} ${read}`, run);
|
|
140
|
+
const request = { inbox: this.#name, ...(read.subject === undefined ? {} : { subject: read.subject }) };
|
|
141
|
+
return run.readInbox({ label: call, request, location, ...(read.timeoutMs === undefined ? {} : { timeoutMs: read.timeoutMs }) }, (record) => new ReceivedMessage(record));
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Names an inbox from the config, whose messages a test reads with `latest()`. The test's process never holds a code or
|
|
146
|
+
* a link that carries a token.
|
|
147
|
+
*
|
|
148
|
+
* @example
|
|
149
|
+
* const message = await inbox('owner').latest({ subject: 'Your sign-in code' })
|
|
150
|
+
* await page.getByLabel('Code').fill(message.code)
|
|
151
|
+
*/
|
|
152
|
+
export function inbox(name) {
|
|
153
|
+
// Read as JavaScript passed it: a registered config narrows the type, not what arrives.
|
|
154
|
+
const given = name;
|
|
155
|
+
if (typeof given !== 'string' || given === '')
|
|
156
|
+
throw misuse(`inbox() takes the name of an inbox from the config, received ${formatValue(given)}.`);
|
|
157
|
+
return new Inbox(given);
|
|
158
|
+
}
|
|
159
|
+
/** The code a value names, when it is a code from an inbox. */
|
|
160
|
+
export function inboxCodeReference(value) {
|
|
161
|
+
return value instanceof InboxCode ? codeReference?.(value) : undefined;
|
|
162
|
+
}
|
|
163
|
+
/** The link a value names, when it is a link from an inbox. */
|
|
164
|
+
export function inboxLinkReference(value) {
|
|
165
|
+
return value instanceof InboxLink ? linkReference?.(value) : undefined;
|
|
166
|
+
}
|
|
167
|
+
// Every option is checked, because JavaScript callers have no types. A key set to undefined counts as absent.
|
|
168
|
+
function readOptions(options) {
|
|
169
|
+
if (options === undefined)
|
|
170
|
+
return {};
|
|
171
|
+
if (!isPlainObject(options))
|
|
172
|
+
return `takes options such as { subject: 'Your code', timeout: 10_000 }, received ${formatValue(options)}.`;
|
|
173
|
+
const given = Object.entries(options).filter(([, value]) => value !== undefined);
|
|
174
|
+
const unknown = given.find(([key]) => key !== 'subject' && key !== 'timeout');
|
|
175
|
+
if (unknown !== undefined)
|
|
176
|
+
return `has no option ${JSON.stringify(unknown[0])}. It takes subject and timeout.`;
|
|
177
|
+
const { subject, timeout } = Object.fromEntries(given);
|
|
178
|
+
if (timeout !== undefined && !(typeof timeout === 'number' && Number.isInteger(timeout) && timeout >= 1 && timeout <= maxTimeout)) {
|
|
179
|
+
return `takes timeout as a whole number of milliseconds from 1 to ${maxTimeout}, received ${formatValue(timeout)}.`;
|
|
180
|
+
}
|
|
181
|
+
const timed = timeout === undefined ? {} : { timeoutMs: timeout };
|
|
182
|
+
if (subject === undefined)
|
|
183
|
+
return timed;
|
|
184
|
+
if (typeof subject === 'string')
|
|
185
|
+
return subject === '' ? 'takes subject as text to find in the subject, received an empty string.' : { subject, ...timed };
|
|
186
|
+
if (!(subject instanceof RegExp))
|
|
187
|
+
return `takes subject as text or a RegExp, received ${formatValue(subject)}.`;
|
|
188
|
+
const pattern = textPatternOf(subject);
|
|
189
|
+
const problem = patternProblem(pattern);
|
|
190
|
+
return problem === undefined ? { subject: pattern, ...timed } : `received a subject RegExp Retest cannot read: ${problem}.`;
|
|
191
|
+
}
|
|
@@ -33,7 +33,7 @@ export declare function textRecipe(by: 'label' | 'text' | 'placeholder', text: u
|
|
|
33
33
|
export declare function cssRecipe(selector: unknown): BuiltRecipe;
|
|
34
34
|
/**
|
|
35
35
|
* A recipe scoped inside another: the outer recipe's steps, then the inner one's, which finds elements inside those
|
|
36
|
-
* the outer one keeps.
|
|
36
|
+
* the outer one keeps, in the frame the outer one is in.
|
|
37
37
|
*
|
|
38
38
|
* @example scopedRecipe({ by: 'testId', value: 'tasks' }, { by: 'role', role: 'listitem' }) // { by: 'role', role: 'listitem', within: [{ by: 'testId', value: 'tasks' }] }
|
|
39
39
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locator-recipes.d.ts","sourceRoot":"","sources":["../../src/api/locator-recipes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,aAAa,EAAa,MAAM,wBAAwB,CAAA;AAOnF,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAM3F;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,OAAO,GAAG,WAAW,CAGrD;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,WAAW,CASvE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,GAAG,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,WAAW,CAS7G;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,OAAO,GAAG,WAAW,CAIxD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"locator-recipes.d.ts","sourceRoot":"","sources":["../../src/api/locator-recipes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,aAAa,EAAa,MAAM,wBAAwB,CAAA;AAOnF,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAM3F;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,OAAO,GAAG,WAAW,CAGrD;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,WAAW,CASvE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,GAAG,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,WAAW,CAS7G;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,OAAO,GAAG,WAAW,CAIxD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,aAAa,CAItF;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,YAAY,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,WAAW,CAK3H"}
|
|
@@ -65,13 +65,14 @@ export function cssRecipe(selector) {
|
|
|
65
65
|
}
|
|
66
66
|
/**
|
|
67
67
|
* A recipe scoped inside another: the outer recipe's steps, then the inner one's, which finds elements inside those
|
|
68
|
-
* the outer one keeps.
|
|
68
|
+
* the outer one keeps, in the frame the outer one is in.
|
|
69
69
|
*
|
|
70
70
|
* @example scopedRecipe({ by: 'testId', value: 'tasks' }, { by: 'role', role: 'listitem' }) // { by: 'role', role: 'listitem', within: [{ by: 'testId', value: 'tasks' }] }
|
|
71
71
|
*/
|
|
72
72
|
export function scopedRecipe(outer, inner) {
|
|
73
|
-
const { within: _innerScope, dialect: _innerDialect, ...step } = inner;
|
|
74
|
-
|
|
73
|
+
const { within: _innerScope, dialect: _innerDialect, frame: _innerFrame, ...step } = inner;
|
|
74
|
+
const dialect = outer.dialect === undefined ? {} : { dialect: outer.dialect };
|
|
75
|
+
return { ...step, within: locatorSteps(outer), ...dialect, ...(outer.frame === undefined ? {} : { frame: outer.frame }) };
|
|
75
76
|
}
|
|
76
77
|
/**
|
|
77
78
|
* The recipe `first()`, `last()` or `nth(index)` makes: the same steps, keeping one match of the last. A locator
|
package/dist/api/page.d.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import type { RetestTypeError, TestIdValue } from '../config/register.ts';
|
|
2
2
|
import type { NativePlatform } from '../config/types.ts';
|
|
3
3
|
import type { AriaRole } from '../protocol/aria-role.ts';
|
|
4
|
+
import type { DialogType } from '../protocol/dialogs.ts';
|
|
5
|
+
import type { AbortReason } from '../protocol/routes.ts';
|
|
4
6
|
import type { CallOptions } from './call-options.ts';
|
|
7
|
+
import type { DragOptions } from './drag.ts';
|
|
8
|
+
import type { InboxLink } from './inbox.ts';
|
|
5
9
|
import type { KeyArgument } from './key-argument.ts';
|
|
6
10
|
import type { Secret } from './secret.ts';
|
|
7
11
|
/**
|
|
@@ -67,11 +71,12 @@ export interface Finders<Touch extends boolean = boolean> {
|
|
|
67
71
|
*/
|
|
68
72
|
export interface Page<Touch extends boolean = boolean> extends Finders<Touch> {
|
|
69
73
|
/**
|
|
70
|
-
* Opens a URL and waits for the page to load. A relative URL resolves against the app's base URL.
|
|
74
|
+
* Opens a URL and waits for the page to load. A relative URL resolves against the app's base URL. A link from an
|
|
75
|
+
* inbox's message is opened by the process that runs Retest, which never hands its address to the test.
|
|
71
76
|
*
|
|
72
77
|
* @example await page.goto('/')
|
|
73
78
|
*/
|
|
74
|
-
goto(url: string, options?: CallOptions): Promise<void>;
|
|
79
|
+
goto(url: string | InboxLink, options?: CallOptions): Promise<void>;
|
|
75
80
|
/**
|
|
76
81
|
* Reloads the page and waits for it to load.
|
|
77
82
|
*
|
|
@@ -105,6 +110,14 @@ export interface Page<Touch extends boolean = boolean> extends Finders<Touch> {
|
|
|
105
110
|
* @example const title = await page.title()
|
|
106
111
|
*/
|
|
107
112
|
title(): Promise<string>;
|
|
113
|
+
/**
|
|
114
|
+
* The frame shown by the `<iframe>` or `<frame>` element `locator` finds on this page, a frame of another site
|
|
115
|
+
* included. The element is found again for every use, so a frame that is removed and added again is found again. Its
|
|
116
|
+
* finders find elements inside the frame's document.
|
|
117
|
+
*
|
|
118
|
+
* @example const payment = page.frame(page.locator('iframe[title="Secure payment"]'))
|
|
119
|
+
*/
|
|
120
|
+
frame(locator: Locator<Touch>): Frame<Touch>;
|
|
108
121
|
/** The keyboard of this app's page. It presses keys on whatever holds the keyboard focus. */
|
|
109
122
|
readonly keyboard: Keyboard;
|
|
110
123
|
/**
|
|
@@ -114,13 +127,192 @@ export interface Page<Touch extends boolean = boolean> extends Finders<Touch> {
|
|
|
114
127
|
* @example await page.scroll({ y: 600 })
|
|
115
128
|
*/
|
|
116
129
|
scroll(delta: ScrollDelta, options?: CallOptions): Promise<void>;
|
|
130
|
+
/**
|
|
131
|
+
* Runs `action` and gives the JavaScript dialog it opens, as soon as it opens: an alert, a confirm, a prompt or a
|
|
132
|
+
* `beforeunload` confirmation. The page is armed before the action runs. A dialog holds the page, so the action is
|
|
133
|
+
* still waiting when this resolves, and finishes once the test answers the dialog: await this, then await
|
|
134
|
+
* `dialog.accept()` or `dialog.dismiss()`, which resolves once the action is over too. The wait lasts the action budget,
|
|
135
|
+
* or a shorter `{ timeout }`. A dialog nothing waited for fails the action that opened it, and Retest dismisses it.
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* const dialog = await page.dialog(() => page.getByRole('button', { name: 'Delete' }).click())
|
|
139
|
+
* await dialog.accept()
|
|
140
|
+
*/
|
|
141
|
+
dialog(action: () => Promise<unknown>, options?: CallOptions): Promise<Dialog>;
|
|
142
|
+
/**
|
|
143
|
+
* Runs `action` and gives the page it opens, by `window.open`, a link with a target or a form, as a page of its own:
|
|
144
|
+
* its commands, checks and failure screenshot are its own, and it closes when the test ends. The page is armed before
|
|
145
|
+
* the action runs, and this resolves once the new page has opened its first document and the action is over. The wait
|
|
146
|
+
* lasts the action budget, or a shorter `{ timeout }`. A page opened while nothing waited runs on unwatched.
|
|
147
|
+
*
|
|
148
|
+
* @example const terms = await page.popup(() => page.getByRole('link', { name: 'Terms' }).click())
|
|
149
|
+
*/
|
|
150
|
+
popup(action: () => Promise<unknown>, options?: CallOptions): Promise<Page<Touch>>;
|
|
151
|
+
/**
|
|
152
|
+
* Closes a page the app opened, which `page.popup()` gave, and waits for it to go. Its `beforeunload` handlers run
|
|
153
|
+
* first; answer their dialog with `page.dialog()`. The test's own pages close when the test ends.
|
|
154
|
+
*
|
|
155
|
+
* @example await terms.close()
|
|
156
|
+
*/
|
|
157
|
+
close(options?: CallOptions): Promise<void>;
|
|
158
|
+
/**
|
|
159
|
+
* Runs `action` and gives the file picker it opens, which is never shown, so its input can be given files. The wait
|
|
160
|
+
* for the picker starts before the action, and lasts the action budget or a shorter `{ timeout }`. A picker the test
|
|
161
|
+
* did not wait for fails the action that opened it.
|
|
162
|
+
*
|
|
163
|
+
* @example const chooser = await page.fileChooser(() => page.getByRole('button', { name: 'Upload' }).click())
|
|
164
|
+
*/
|
|
165
|
+
fileChooser(action: () => Promise<unknown>, options?: CallOptions): Promise<FileChooser>;
|
|
166
|
+
/**
|
|
167
|
+
* Runs `action` and gives the download it starts. The wait for it starts before the action, and lasts the action
|
|
168
|
+
* budget or a shorter `{ timeout }`. The run folder keeps every download a page makes, under the name the page
|
|
169
|
+
* suggested, whether or not a test waits for it.
|
|
170
|
+
*
|
|
171
|
+
* @example const download = await page.download(() => page.getByRole('link', { name: 'Export CSV' }).click())
|
|
172
|
+
*/
|
|
173
|
+
download(action: () => Promise<unknown>, options?: CallOptions): Promise<Download>;
|
|
174
|
+
/**
|
|
175
|
+
* Answers every request of the page whose whole address `pattern` matches with `answer`, in the network's place, from
|
|
176
|
+
* now on: a response, or a refusal. A later route answers before an earlier one. It resolves once the page holds the
|
|
177
|
+
* route, so the next `goto` meets it. A popup shares the routes of the page that opened it.
|
|
178
|
+
*
|
|
179
|
+
* @example await page.route('http://127.0.0.1:4173/api/tasks', { contentType: 'application/json', body: JSON.stringify([{ title: 'Stubbed' }]) })
|
|
180
|
+
*/
|
|
181
|
+
route(pattern: RoutePattern, answer: RouteAnswer): Promise<void>;
|
|
182
|
+
/**
|
|
183
|
+
* Removes every route added with `pattern`, written as it was added. A pattern that matches no route fails.
|
|
184
|
+
*
|
|
185
|
+
* @example await page.unroute(/\/api\/tasks$/)
|
|
186
|
+
*/
|
|
187
|
+
unroute(pattern: RoutePattern): Promise<void>;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* A frame of an app's page: the document an `<iframe>` or `<frame>` element shows, found again by that element's
|
|
191
|
+
* locator for every use. Its finders find elements inside that document, through its open shadow roots, and `frame()`
|
|
192
|
+
* a frame inside it. It has no address of its own to go to: `goto`, `toHaveURL` and `toHaveTitle` are the page's.
|
|
193
|
+
*/
|
|
194
|
+
export interface Frame<Touch extends boolean = boolean> extends Finders<Touch> {
|
|
195
|
+
/**
|
|
196
|
+
* The frame shown by the `<iframe>` or `<frame>` element `locator` finds in this frame's document.
|
|
197
|
+
*
|
|
198
|
+
* @example const notes = order.frame(order.locator('iframe'))
|
|
199
|
+
*/
|
|
200
|
+
frame(locator: Locator<Touch>): Frame<Touch>;
|
|
117
201
|
}
|
|
202
|
+
/**
|
|
203
|
+
* A JavaScript dialog an action opened: an alert, a confirm, a prompt or a `beforeunload` confirmation. It holds the page
|
|
204
|
+
* until the test answers it, and the action that opened it finishes only then, so `accept()` and `dismiss()` each
|
|
205
|
+
* resolve once the dialog is answered and that action is over. Answer each dialog once.
|
|
206
|
+
*/
|
|
207
|
+
export interface Dialog {
|
|
208
|
+
/** The kind of dialog the page opened. */
|
|
209
|
+
readonly type: DialogType;
|
|
210
|
+
/** The text the page showed, with every value the run hides replaced. A `beforeunload` dialog's is empty. */
|
|
211
|
+
readonly message: string;
|
|
212
|
+
/** A prompt's default answer, and empty for any other dialog. */
|
|
213
|
+
readonly defaultValue: string;
|
|
214
|
+
/**
|
|
215
|
+
* Accepts the dialog, as its OK button does. A prompt takes the text to answer with, and without it answers with its
|
|
216
|
+
* default. A `beforeunload` dialog accepted lets the page leave.
|
|
217
|
+
*
|
|
218
|
+
* @example await dialog.accept('Ada')
|
|
219
|
+
*/
|
|
220
|
+
accept(promptText?: string): Promise<void>;
|
|
221
|
+
/**
|
|
222
|
+
* Dismisses the dialog, as its Cancel button does. A prompt dismissed answers `null`; a `beforeunload` dialog
|
|
223
|
+
* dismissed keeps the page where it is, so the navigation that asked fails.
|
|
224
|
+
*
|
|
225
|
+
* @example await dialog.dismiss()
|
|
226
|
+
*/
|
|
227
|
+
dismiss(): Promise<void>;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* A file picker a `page.fileChooser()` caught: the operating system's picker was never shown, and the page waits for
|
|
231
|
+
* the files its input is given here.
|
|
232
|
+
*/
|
|
233
|
+
export interface FileChooser {
|
|
234
|
+
/** Whether the picker's input takes several files, as its `multiple` attribute says. */
|
|
235
|
+
readonly multiple: boolean;
|
|
236
|
+
/**
|
|
237
|
+
* Gives the picker's input the files, as a person choosing them would, so the page hears its `input` and `change`
|
|
238
|
+
* events. A path is read against the folder of the file that makes the call.
|
|
239
|
+
*
|
|
240
|
+
* @example await chooser.setFiles('./fixtures/report.pdf')
|
|
241
|
+
*/
|
|
242
|
+
setFiles(files: InputFiles, options?: CallOptions): Promise<void>;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* A download a `page.download()` caught. The process that runs Retest saves it in the run folder, under the name the
|
|
246
|
+
* page suggested, whether or not the test asks for it.
|
|
247
|
+
*/
|
|
248
|
+
export interface Download {
|
|
249
|
+
/** The name the browser suggested for the file, from the page's `download` attribute or the server's answer. */
|
|
250
|
+
readonly suggestedFilename: string;
|
|
251
|
+
/**
|
|
252
|
+
* Waits for the download to be saved, within the navigation budget or a shorter `{ timeout }`, and gives the absolute
|
|
253
|
+
* path of its file in the run folder. A download the browser stopped fails, saying how much of it arrived.
|
|
254
|
+
*
|
|
255
|
+
* @example const csv = await readFile(await download.path(), 'utf8')
|
|
256
|
+
*/
|
|
257
|
+
path(options?: CallOptions): Promise<string>;
|
|
258
|
+
/**
|
|
259
|
+
* Waits for the download to be saved, as `path()` does, then copies its file to `path`, read against the folder of the
|
|
260
|
+
* file that makes the call, making the folders it needs. The run folder keeps its own copy.
|
|
261
|
+
*
|
|
262
|
+
* @example await download.saveAs('./out/tasks.csv')
|
|
263
|
+
*/
|
|
264
|
+
saveAs(path: string, options?: CallOptions): Promise<void>;
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* A file given by its content rather than a path: the name the page reads, its bytes or its text, which is written as
|
|
268
|
+
* UTF-8, and, when given, the type the page must read for it. The browser types a file by the end of its name, so a
|
|
269
|
+
* `mimeType` it does not give the file fails the call.
|
|
270
|
+
*/
|
|
271
|
+
export type FilePayload = {
|
|
272
|
+
readonly name: string;
|
|
273
|
+
readonly mimeType?: string | undefined;
|
|
274
|
+
readonly content: string | Uint8Array;
|
|
275
|
+
};
|
|
276
|
+
/**
|
|
277
|
+
* The files an input takes: a path, read against the folder of the file that makes the call, as an import is; a file by
|
|
278
|
+
* its content; or a list of them. An empty list clears the input.
|
|
279
|
+
*/
|
|
280
|
+
export type InputFiles = string | FilePayload | readonly (string | FilePayload)[];
|
|
281
|
+
/**
|
|
282
|
+
* Which requests a route answers: a glob of the whole address, query included, where `**` matches any run of characters
|
|
283
|
+
* and `*` any run without a `/`; or a `RegExp` searched for in the address.
|
|
284
|
+
*/
|
|
285
|
+
export type RoutePattern = string | RegExp;
|
|
286
|
+
/**
|
|
287
|
+
* A response a route gives in the network's place: `status`, 200 unless given, `headers`, `contentType`, which sets the
|
|
288
|
+
* `Content-Type` header, and `body`, text written as UTF-8, or bytes.
|
|
289
|
+
*/
|
|
290
|
+
export type RouteFulfil = {
|
|
291
|
+
readonly status?: number | undefined;
|
|
292
|
+
readonly headers?: Readonly<Record<string, string>> | undefined;
|
|
293
|
+
readonly contentType?: string | undefined;
|
|
294
|
+
readonly body?: string | Uint8Array | undefined;
|
|
295
|
+
readonly abort?: never;
|
|
296
|
+
};
|
|
297
|
+
/** A refusal: the request fails as Chrome's network error `abort` names, such as `'connectionrefused'`. */
|
|
298
|
+
export type RouteAbort = {
|
|
299
|
+
readonly abort: AbortReason;
|
|
300
|
+
readonly status?: never;
|
|
301
|
+
readonly headers?: never;
|
|
302
|
+
readonly contentType?: never;
|
|
303
|
+
readonly body?: never;
|
|
304
|
+
};
|
|
305
|
+
/** What a route answers each request it matches with: a response, or a refusal. Never both. */
|
|
306
|
+
export type RouteAnswer = RouteFulfil | RouteAbort;
|
|
118
307
|
/**
|
|
119
308
|
* An Electron app's page in a test: the first window the app opens. It finds, acts and checks as a web page does, and
|
|
120
309
|
* reloads and moves through its history, but it has no address to go to.
|
|
121
310
|
*/
|
|
122
|
-
export type ElectronPage = Omit<Page<false>, 'goto'> & {
|
|
311
|
+
export type ElectronPage = Omit<Page<false>, 'goto' | 'popup' | 'route' | 'unroute'> & {
|
|
123
312
|
readonly goto: RetestTypeError<'An Electron app has no address. Its page is the first window the app opens.'>;
|
|
313
|
+
readonly popup: RetestTypeError<"A test reaches only an Electron app's first window. popup() is for a browser's page.">;
|
|
314
|
+
readonly route: RetestTypeError<"Retest does not answer an Electron app's requests yet. route() is for a browser's page.">;
|
|
315
|
+
readonly unroute: RetestTypeError<"Retest does not answer an Electron app's requests yet. unroute() is for a browser's page.">;
|
|
124
316
|
};
|
|
125
317
|
/** An app's keyboard. Await each press, because an app takes one command at a time. */
|
|
126
318
|
export interface Keyboard {
|
|
@@ -158,7 +350,8 @@ export interface Locator<Touch extends boolean = boolean> extends Finders<Touch>
|
|
|
158
350
|
*/
|
|
159
351
|
nth(index: number): Locator<Touch>;
|
|
160
352
|
/**
|
|
161
|
-
* Replaces the field's value by typing, as a person would. A secret
|
|
353
|
+
* Replaces the field's value by typing, as a person would. A secret, or a code from an inbox's message, is typed by
|
|
354
|
+
* the process that runs Retest.
|
|
162
355
|
*
|
|
163
356
|
* @example await page.getByLabel('Password').fill(secret('password'))
|
|
164
357
|
*/
|
|
@@ -215,6 +408,23 @@ export interface Locator<Touch extends boolean = boolean> extends Finders<Touch>
|
|
|
215
408
|
* @example await page.getByTestId('terms').scroll({ y: 600 })
|
|
216
409
|
*/
|
|
217
410
|
scroll(delta: ScrollDelta, options?: CallOptions): Promise<void>;
|
|
411
|
+
/**
|
|
412
|
+
* Gives an `<input type="file">` the files, in place of those it held, as a person choosing them in the picker
|
|
413
|
+
* would: the page hears its `input` and `change` events. The input must be there and enabled, and need not be
|
|
414
|
+
* visible. A path is read against the folder of the file that makes the call; an empty list clears the input.
|
|
415
|
+
*
|
|
416
|
+
* @example await page.getByLabel('Attachment').setInputFiles('./fixtures/report.pdf')
|
|
417
|
+
*/
|
|
418
|
+
setInputFiles(files: InputFiles, options?: CallOptions): Promise<void>;
|
|
419
|
+
/**
|
|
420
|
+
* Drags the element onto the element `target` finds, once both are visible, stable and not covered, in view
|
|
421
|
+
* together: it presses the mouse at the element's centre, moves it through `steps` positions, 5 unless given, to the
|
|
422
|
+
* target's centre, and releases it there. When the page begins an HTML drag, the browser's drag events carry it to
|
|
423
|
+
* the target, so the page's `drop` handler reads its `dataTransfer`.
|
|
424
|
+
*
|
|
425
|
+
* @example await page.getByText('Write release notes').dragTo(page.getByTestId('done-column'))
|
|
426
|
+
*/
|
|
427
|
+
dragTo(target: Locator, options?: DragOptions): Promise<void>;
|
|
218
428
|
/**
|
|
219
429
|
* Taps the element's centre, on an app whose every target has a touch screen.
|
|
220
430
|
*
|
package/dist/api/page.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../src/api/page.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../src/api/page.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { TestRun } from './test-run.ts';
|
|
2
|
+
/** The test and app behind a page. */
|
|
3
|
+
type PageTarget = {
|
|
4
|
+
readonly run: TestRun;
|
|
5
|
+
readonly app: string;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Adds a route to the app's page: from now on every request of the page whose address `pattern` matches is answered
|
|
9
|
+
* with `answer`, before any route added earlier. Resolves once the page holds it.
|
|
10
|
+
*
|
|
11
|
+
* @example await route(page, 'http://127.0.0.1:4173/api/tasks', { status: 200, contentType: 'application/json', body: '[]' })
|
|
12
|
+
*/
|
|
13
|
+
export declare function route({ run, app }: PageTarget, pattern: unknown, answer: unknown): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Removes every route of the app's page added with `pattern`, written as it was. Resolves once the page holds the change.
|
|
16
|
+
*
|
|
17
|
+
* @example await unroute(page, 'http://127.0.0.1:4173/api/tasks')
|
|
18
|
+
*/
|
|
19
|
+
export declare function unroute({ run, app }: PageTarget, pattern: unknown): Promise<void>;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=route.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../src/api/route.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAQ5C,sCAAsC;AACtC,KAAK,UAAU,GAAG;IAAE,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AAIjE;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhG;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAIjF"}
|