testplane 0.0.1 → 0.1.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/LICENSE +20 -0
- package/README.md +102 -0
- package/bin/hermione +4 -0
- package/bin/testplane +4 -0
- package/build/package.json +130 -0
- package/build/src/base-testplane.d.ts +18 -0
- package/build/src/base-testplane.js +53 -0
- package/build/src/base-testplane.js.map +1 -0
- package/build/src/browser/browser.d.ts +28 -0
- package/build/src/browser/browser.js +111 -0
- package/build/src/browser/browser.js.map +1 -0
- package/build/src/browser/calibrator.d.ts +16 -0
- package/build/src/browser/calibrator.js +105 -0
- package/build/src/browser/calibrator.js.map +1 -0
- package/build/src/browser/camera/index.d.ts +13 -0
- package/build/src/browser/camera/index.js +53 -0
- package/build/src/browser/camera/index.js.map +1 -0
- package/build/src/browser/camera/utils.d.ts +1 -0
- package/build/src/browser/camera/utils.js +25 -0
- package/build/src/browser/camera/utils.js.map +1 -0
- package/build/src/browser/client-bridge/client-bridge.d.ts +12 -0
- package/build/src/browser/client-bridge/client-bridge.js +41 -0
- package/build/src/browser/client-bridge/client-bridge.js.map +1 -0
- package/build/src/browser/client-bridge/error.d.ts +3 -0
- package/build/src/browser/client-bridge/error.js +11 -0
- package/build/src/browser/client-bridge/error.js.map +1 -0
- package/build/src/browser/client-bridge/index.d.ts +4 -0
- package/build/src/browser/client-bridge/index.js +33 -0
- package/build/src/browser/client-bridge/index.js.map +1 -0
- package/build/src/browser/client-scripts/calibrate.js +70 -0
- package/build/src/browser/client-scripts/ignore-areas.deprecated.js +7 -0
- package/build/src/browser/client-scripts/ignore-areas.js +7 -0
- package/build/src/browser/client-scripts/index.js +405 -0
- package/build/src/browser/client-scripts/lib.compat.js +28 -0
- package/build/src/browser/client-scripts/lib.native.js +28 -0
- package/build/src/browser/client-scripts/rect.js +239 -0
- package/build/src/browser/client-scripts/util.js +142 -0
- package/build/src/browser/client-scripts/xpath.js +31 -0
- package/build/src/browser/commands/assert-view/assert-view-results.d.ts +12 -0
- package/build/src/browser/commands/assert-view/assert-view-results.js +34 -0
- package/build/src/browser/commands/assert-view/assert-view-results.js.map +1 -0
- package/build/src/browser/commands/assert-view/capture-processors/assert-refs.d.ts +3 -0
- package/build/src/browser/commands/assert-view/capture-processors/assert-refs.js +31 -0
- package/build/src/browser/commands/assert-view/capture-processors/assert-refs.js.map +1 -0
- package/build/src/browser/commands/assert-view/capture-processors/index.d.ts +2 -0
- package/build/src/browser/commands/assert-view/capture-processors/index.js +6 -0
- package/build/src/browser/commands/assert-view/capture-processors/index.js.map +1 -0
- package/build/src/browser/commands/assert-view/capture-processors/update-refs.d.ts +6 -0
- package/build/src/browser/commands/assert-view/capture-processors/update-refs.js +8 -0
- package/build/src/browser/commands/assert-view/capture-processors/update-refs.js.map +1 -0
- package/build/src/browser/commands/assert-view/errors/assert-view-error.d.ts +4 -0
- package/build/src/browser/commands/assert-view/errors/assert-view-error.js +12 -0
- package/build/src/browser/commands/assert-view/errors/assert-view-error.js.map +1 -0
- package/build/src/browser/commands/assert-view/errors/base-state-error.d.ts +7 -0
- package/build/src/browser/commands/assert-view/errors/base-state-error.js +14 -0
- package/build/src/browser/commands/assert-view/errors/base-state-error.js.map +1 -0
- package/build/src/browser/commands/assert-view/errors/image-diff-error.d.ts +64 -0
- package/build/src/browser/commands/assert-view/errors/image-diff-error.js +32 -0
- package/build/src/browser/commands/assert-view/errors/image-diff-error.js.map +1 -0
- package/build/src/browser/commands/assert-view/errors/invalid-png-error.d.ts +5 -0
- package/build/src/browser/commands/assert-view/errors/invalid-png-error.js +9 -0
- package/build/src/browser/commands/assert-view/errors/invalid-png-error.js.map +1 -0
- package/build/src/browser/commands/assert-view/errors/no-ref-image-error.d.ts +14 -0
- package/build/src/browser/commands/assert-view/errors/no-ref-image-error.js +18 -0
- package/build/src/browser/commands/assert-view/errors/no-ref-image-error.js.map +1 -0
- package/build/src/browser/commands/assert-view/index.d.ts +2 -0
- package/build/src/browser/commands/assert-view/index.js +130 -0
- package/build/src/browser/commands/assert-view/index.js.map +1 -0
- package/build/src/browser/commands/clearSession.d.ts +3 -0
- package/build/src/browser/commands/clearSession.js +29 -0
- package/build/src/browser/commands/clearSession.js.map +1 -0
- package/build/src/browser/commands/getConfig.d.ts +2 -0
- package/build/src/browser/commands/getConfig.js +6 -0
- package/build/src/browser/commands/getConfig.js.map +1 -0
- package/build/src/browser/commands/getPuppeteer.d.ts +2 -0
- package/build/src/browser/commands/getPuppeteer.js +32 -0
- package/build/src/browser/commands/getPuppeteer.js.map +1 -0
- package/build/src/browser/commands/index.d.ts +2 -0
- package/build/src/browser/commands/index.js +13 -0
- package/build/src/browser/commands/index.js.map +1 -0
- package/build/src/browser/commands/moveCursorTo.d.ts +8 -0
- package/build/src/browser/commands/moveCursorTo.js +23 -0
- package/build/src/browser/commands/moveCursorTo.js.map +1 -0
- package/build/src/browser/commands/openAndWait.d.ts +17 -0
- package/build/src/browser/commands/openAndWait.js +87 -0
- package/build/src/browser/commands/openAndWait.js.map +1 -0
- package/build/src/browser/commands/runStep.d.ts +2 -0
- package/build/src/browser/commands/runStep.js +15 -0
- package/build/src/browser/commands/runStep.js.map +1 -0
- package/build/src/browser/commands/scrollIntoView.d.ts +3 -0
- package/build/src/browser/commands/scrollIntoView.js +12 -0
- package/build/src/browser/commands/scrollIntoView.js.map +1 -0
- package/build/src/browser/commands/setOrientation.d.ts +2 -0
- package/build/src/browser/commands/setOrientation.js +32 -0
- package/build/src/browser/commands/setOrientation.js.map +1 -0
- package/build/src/browser/commands/switchToRepl.d.ts +3 -0
- package/build/src/browser/commands/switchToRepl.js +65 -0
- package/build/src/browser/commands/switchToRepl.js.map +1 -0
- package/build/src/browser/commands/types.d.ts +83 -0
- package/build/src/browser/commands/types.js +3 -0
- package/build/src/browser/commands/types.js.map +1 -0
- package/build/src/browser/core-error.d.ts +4 -0
- package/build/src/browser/core-error.js +11 -0
- package/build/src/browser/core-error.js.map +1 -0
- package/build/src/browser/existing-browser.d.ts +55 -0
- package/build/src/browser/existing-browser.js +286 -0
- package/build/src/browser/existing-browser.js.map +1 -0
- package/build/src/browser/history/callstack.d.ts +9 -0
- package/build/src/browser/history/callstack.js +49 -0
- package/build/src/browser/history/callstack.js.map +1 -0
- package/build/src/browser/history/commands.d.ts +10 -0
- package/build/src/browser/history/commands.js +105 -0
- package/build/src/browser/history/commands.js.map +1 -0
- package/build/src/browser/history/index.d.ts +4 -0
- package/build/src/browser/history/index.js +101 -0
- package/build/src/browser/history/index.js.map +1 -0
- package/build/src/browser/history/utils.d.ts +21 -0
- package/build/src/browser/history/utils.js +61 -0
- package/build/src/browser/history/utils.js.map +1 -0
- package/build/src/browser/new-browser.d.ts +32 -0
- package/build/src/browser/new-browser.js +150 -0
- package/build/src/browser/new-browser.js.map +1 -0
- package/build/src/browser/screen-shooter/index.d.ts +9 -0
- package/build/src/browser/screen-shooter/index.js +36 -0
- package/build/src/browser/screen-shooter/index.js.map +1 -0
- package/build/src/browser/screen-shooter/viewport/coord-validator/errors/height-viewport-error.d.ts +6 -0
- package/build/src/browser/screen-shooter/viewport/coord-validator/errors/height-viewport-error.js +14 -0
- package/build/src/browser/screen-shooter/viewport/coord-validator/errors/height-viewport-error.js.map +1 -0
- package/build/src/browser/screen-shooter/viewport/coord-validator/errors/offset-viewport-error.d.ts +6 -0
- package/build/src/browser/screen-shooter/viewport/coord-validator/errors/offset-viewport-error.js +14 -0
- package/build/src/browser/screen-shooter/viewport/coord-validator/errors/offset-viewport-error.js.map +1 -0
- package/build/src/browser/screen-shooter/viewport/coord-validator/index.d.ts +43 -0
- package/build/src/browser/screen-shooter/viewport/coord-validator/index.js +76 -0
- package/build/src/browser/screen-shooter/viewport/coord-validator/index.js.map +1 -0
- package/build/src/browser/screen-shooter/viewport/index.d.ts +56 -0
- package/build/src/browser/screen-shooter/viewport/index.js +104 -0
- package/build/src/browser/screen-shooter/viewport/index.js.map +1 -0
- package/build/src/browser/types.d.ts +144 -0
- package/build/src/browser/types.js +3 -0
- package/build/src/browser/types.js.map +1 -0
- package/build/src/browser-pool/basic-pool.d.ts +14 -0
- package/build/src/browser-pool/basic-pool.js +62 -0
- package/build/src/browser-pool/basic-pool.js.map +1 -0
- package/build/src/browser-pool/caching-pool.d.ts +29 -0
- package/build/src/browser-pool/caching-pool.js +90 -0
- package/build/src/browser-pool/caching-pool.js.map +1 -0
- package/build/src/browser-pool/cancelled-error.d.ts +5 -0
- package/build/src/browser-pool/cancelled-error.js +13 -0
- package/build/src/browser-pool/cancelled-error.js.map +1 -0
- package/build/src/browser-pool/index.d.ts +6 -0
- package/build/src/browser-pool/index.js +25 -0
- package/build/src/browser-pool/index.js.map +1 -0
- package/build/src/browser-pool/limited-pool.d.ts +30 -0
- package/build/src/browser-pool/limited-pool.js +99 -0
- package/build/src/browser-pool/limited-pool.js.map +1 -0
- package/build/src/browser-pool/limited-use-set.d.ts +13 -0
- package/build/src/browser-pool/limited-use-set.js +54 -0
- package/build/src/browser-pool/limited-use-set.js.map +1 -0
- package/build/src/browser-pool/per-browser-limited-pool.d.ts +10 -0
- package/build/src/browser-pool/per-browser-limited-pool.js +28 -0
- package/build/src/browser-pool/per-browser-limited-pool.js.map +1 -0
- package/build/src/browser-pool/pool.d.ts +13 -0
- package/build/src/browser-pool/pool.js +18 -0
- package/build/src/browser-pool/pool.js.map +1 -0
- package/build/src/browser-pool/utils.d.ts +1 -0
- package/build/src/browser-pool/utils.js +3 -0
- package/build/src/browser-pool/utils.js.map +1 -0
- package/build/src/cli/index.d.ts +1 -0
- package/build/src/cli/index.js +109 -0
- package/build/src/cli/index.js.map +1 -0
- package/build/src/cli/info.d.ts +1 -0
- package/build/src/cli/info.js +23 -0
- package/build/src/cli/info.js.map +1 -0
- package/build/src/config/browser-config.d.ts +7 -0
- package/build/src/config/browser-config.js +45 -0
- package/build/src/config/browser-config.js.map +1 -0
- package/build/src/config/browser-options.d.ts +2 -0
- package/build/src/config/browser-options.js +298 -0
- package/build/src/config/browser-options.js.map +1 -0
- package/build/src/config/defaults.d.ts +92 -0
- package/build/src/config/defaults.js +96 -0
- package/build/src/config/defaults.js.map +1 -0
- package/build/src/config/index.d.ts +16 -0
- package/build/src/config/index.js +123 -0
- package/build/src/config/index.js.map +1 -0
- package/build/src/config/options-builder.d.ts +21 -0
- package/build/src/config/options-builder.js +142 -0
- package/build/src/config/options-builder.js.map +1 -0
- package/build/src/config/options.d.ts +3 -0
- package/build/src/config/options.js +75 -0
- package/build/src/config/options.js.map +1 -0
- package/build/src/config/runtime-config.d.ts +1 -0
- package/build/src/config/runtime-config.js +21 -0
- package/build/src/config/runtime-config.js.map +1 -0
- package/build/src/config/types.d.ts +154 -0
- package/build/src/config/types.js +3 -0
- package/build/src/config/types.js.map +1 -0
- package/build/src/config/utils.d.ts +11 -0
- package/build/src/config/utils.js +73 -0
- package/build/src/config/utils.js.map +1 -0
- package/build/src/constants/browser.d.ts +2 -0
- package/build/src/constants/browser.js +6 -0
- package/build/src/constants/browser.js.map +1 -0
- package/build/src/constants/config.d.ts +7 -0
- package/build/src/constants/config.js +11 -0
- package/build/src/constants/config.js.map +1 -0
- package/build/src/constants/process-messages.d.ts +5 -0
- package/build/src/constants/process-messages.js +9 -0
- package/build/src/constants/process-messages.js.map +1 -0
- package/build/src/constants/test-statuses.d.ts +4 -0
- package/build/src/constants/test-statuses.js +8 -0
- package/build/src/constants/test-statuses.js.map +1 -0
- package/build/src/errors.d.ts +19 -0
- package/build/src/errors.js +22 -0
- package/build/src/errors.js.map +1 -0
- package/build/src/events/async-emitter/index.d.ts +5 -0
- package/build/src/events/async-emitter/index.js +19 -0
- package/build/src/events/async-emitter/index.js.map +1 -0
- package/build/src/events/index.d.ts +134 -0
- package/build/src/events/index.js +73 -0
- package/build/src/events/index.js.map +1 -0
- package/build/src/events/types.d.ts +11 -0
- package/build/src/events/types.js +3 -0
- package/build/src/events/types.js.map +1 -0
- package/build/src/events/utils.d.ts +2 -0
- package/build/src/events/utils.js +14 -0
- package/build/src/events/utils.js.map +1 -0
- package/build/src/image.d.ts +55 -0
- package/build/src/image.js +144 -0
- package/build/src/image.js.map +1 -0
- package/build/src/index.d.ts +18 -0
- package/build/src/index.js +15 -0
- package/build/src/index.js.map +1 -0
- package/build/src/reporters/base.d.ts +17 -0
- package/build/src/reporters/base.js +65 -0
- package/build/src/reporters/base.js.map +1 -0
- package/build/src/reporters/flat.d.ts +6 -0
- package/build/src/reporters/flat.js +33 -0
- package/build/src/reporters/flat.js.map +1 -0
- package/build/src/reporters/index.d.ts +1 -0
- package/build/src/reporters/index.js +86 -0
- package/build/src/reporters/index.js.map +1 -0
- package/build/src/reporters/informers/base.d.ts +8 -0
- package/build/src/reporters/informers/base.js +19 -0
- package/build/src/reporters/informers/base.js.map +1 -0
- package/build/src/reporters/informers/console.d.ts +8 -0
- package/build/src/reporters/informers/console.js +20 -0
- package/build/src/reporters/informers/console.js.map +1 -0
- package/build/src/reporters/informers/file.d.ts +14 -0
- package/build/src/reporters/informers/file.js +34 -0
- package/build/src/reporters/informers/file.js.map +1 -0
- package/build/src/reporters/informers/index.d.ts +1 -0
- package/build/src/reporters/informers/index.js +11 -0
- package/build/src/reporters/informers/index.js.map +1 -0
- package/build/src/reporters/jsonl.d.ts +8 -0
- package/build/src/reporters/jsonl.js +32 -0
- package/build/src/reporters/jsonl.js.map +1 -0
- package/build/src/reporters/plain.d.ts +4 -0
- package/build/src/reporters/plain.js +16 -0
- package/build/src/reporters/plain.js.map +1 -0
- package/build/src/reporters/utils/helpers.d.ts +12 -0
- package/build/src/reporters/utils/helpers.js +56 -0
- package/build/src/reporters/utils/helpers.js.map +1 -0
- package/build/src/reporters/utils/icons.d.ts +4 -0
- package/build/src/reporters/utils/icons.js +9 -0
- package/build/src/reporters/utils/icons.js.map +1 -0
- package/build/src/runner/browser-agent.d.ts +15 -0
- package/build/src/runner/browser-agent.js +26 -0
- package/build/src/runner/browser-agent.js.map +1 -0
- package/build/src/runner/browser-runner.d.ts +26 -0
- package/build/src/runner/browser-runner.js +97 -0
- package/build/src/runner/browser-runner.js.map +1 -0
- package/build/src/runner/index.d.ts +47 -0
- package/build/src/runner/index.js +144 -0
- package/build/src/runner/index.js.map +1 -0
- package/build/src/runner/promise-group.d.ts +11 -0
- package/build/src/runner/promise-group.js +32 -0
- package/build/src/runner/promise-group.js.map +1 -0
- package/build/src/runner/runner.d.ts +7 -0
- package/build/src/runner/runner.js +11 -0
- package/build/src/runner/runner.js.map +1 -0
- package/build/src/runner/suite-monitor.d.ts +13 -0
- package/build/src/runner/suite-monitor.js +57 -0
- package/build/src/runner/suite-monitor.js.map +1 -0
- package/build/src/runner/test-runner/high-priority-browser-agent.d.ts +8 -0
- package/build/src/runner/test-runner/high-priority-browser-agent.js +16 -0
- package/build/src/runner/test-runner/high-priority-browser-agent.js.map +1 -0
- package/build/src/runner/test-runner/index.d.ts +7 -0
- package/build/src/runner/test-runner/index.js +15 -0
- package/build/src/runner/test-runner/index.js.map +1 -0
- package/build/src/runner/test-runner/insistant-test-runner.d.ts +14 -0
- package/build/src/runner/test-runner/insistant-test-runner.js +62 -0
- package/build/src/runner/test-runner/insistant-test-runner.js.map +1 -0
- package/build/src/runner/test-runner/regular-test-runner.d.ts +18 -0
- package/build/src/runner/test-runner/regular-test-runner.js +94 -0
- package/build/src/runner/test-runner/regular-test-runner.js.map +1 -0
- package/build/src/runner/test-runner/skipped-test-runner.d.ts +11 -0
- package/build/src/runner/test-runner/skipped-test-runner.js +21 -0
- package/build/src/runner/test-runner/skipped-test-runner.js.map +1 -0
- package/build/src/signal-handler.d.ts +3 -0
- package/build/src/signal-handler.js +23 -0
- package/build/src/signal-handler.js.map +1 -0
- package/build/src/stats.d.ts +15 -0
- package/build/src/stats.js +44 -0
- package/build/src/stats.js.map +1 -0
- package/build/src/temp.d.ts +4 -0
- package/build/src/temp.js +39 -0
- package/build/src/temp.js.map +1 -0
- package/build/src/test-collection.d.ts +23 -0
- package/build/src/test-collection.js +151 -0
- package/build/src/test-collection.js.map +1 -0
- package/build/src/test-reader/build-instructions.d.ts +28 -0
- package/build/src/test-reader/build-instructions.js +87 -0
- package/build/src/test-reader/build-instructions.js.map +1 -0
- package/build/src/test-reader/controllers/browser-version-controller.d.ts +9 -0
- package/build/src/test-reader/controllers/browser-version-controller.js +49 -0
- package/build/src/test-reader/controllers/browser-version-controller.js.map +1 -0
- package/build/src/test-reader/controllers/config-controller.d.ts +8 -0
- package/build/src/test-reader/controllers/config-controller.js +42 -0
- package/build/src/test-reader/controllers/config-controller.js.map +1 -0
- package/build/src/test-reader/controllers/only-controller.d.ts +9 -0
- package/build/src/test-reader/controllers/only-controller.js +49 -0
- package/build/src/test-reader/controllers/only-controller.js.map +1 -0
- package/build/src/test-reader/controllers/skip-controller.d.ts +14 -0
- package/build/src/test-reader/controllers/skip-controller.js +55 -0
- package/build/src/test-reader/controllers/skip-controller.js.map +1 -0
- package/build/src/test-reader/index.d.ts +10 -0
- package/build/src/test-reader/index.js +86 -0
- package/build/src/test-reader/index.js.map +1 -0
- package/build/src/test-reader/mocha-reader/index.d.ts +5 -0
- package/build/src/test-reader/mocha-reader/index.js +78 -0
- package/build/src/test-reader/mocha-reader/index.js.map +1 -0
- package/build/src/test-reader/mocha-reader/mocha-event-bus.d.ts +8 -0
- package/build/src/test-reader/mocha-reader/mocha-event-bus.js +43 -0
- package/build/src/test-reader/mocha-reader/mocha-event-bus.js.map +1 -0
- package/build/src/test-reader/mocha-reader/tree-builder-decorator.d.ts +13 -0
- package/build/src/test-reader/mocha-reader/tree-builder-decorator.js +98 -0
- package/build/src/test-reader/mocha-reader/tree-builder-decorator.js.map +1 -0
- package/build/src/test-reader/sets-builder/index.d.ts +12 -0
- package/build/src/test-reader/sets-builder/index.js +108 -0
- package/build/src/test-reader/sets-builder/index.js.map +1 -0
- package/build/src/test-reader/sets-builder/set-collection.d.ts +10 -0
- package/build/src/test-reader/sets-builder/set-collection.js +53 -0
- package/build/src/test-reader/sets-builder/set-collection.js.map +1 -0
- package/build/src/test-reader/sets-builder/test-set.d.ts +16 -0
- package/build/src/test-reader/sets-builder/test-set.js +74 -0
- package/build/src/test-reader/sets-builder/test-set.js.map +1 -0
- package/build/src/test-reader/test-object/configurable-test-object.d.ts +30 -0
- package/build/src/test-reader/test-object/configurable-test-object.js +93 -0
- package/build/src/test-reader/test-object/configurable-test-object.js.map +1 -0
- package/build/src/test-reader/test-object/hook.d.ts +12 -0
- package/build/src/test-reader/test-object/hook.js +27 -0
- package/build/src/test-reader/test-object/hook.js.map +1 -0
- package/build/src/test-reader/test-object/index.d.ts +4 -0
- package/build/src/test-reader/test-object/index.js +10 -0
- package/build/src/test-reader/test-object/index.js.map +1 -0
- package/build/src/test-reader/test-object/suite.d.ts +23 -0
- package/build/src/test-reader/test-object/suite.js +86 -0
- package/build/src/test-reader/test-object/suite.js.map +1 -0
- package/build/src/test-reader/test-object/test-object.d.ts +12 -0
- package/build/src/test-reader/test-object/test-object.js +44 -0
- package/build/src/test-reader/test-object/test-object.js.map +1 -0
- package/build/src/test-reader/test-object/test.d.ts +11 -0
- package/build/src/test-reader/test-object/test.js +20 -0
- package/build/src/test-reader/test-object/test.js.map +1 -0
- package/build/src/test-reader/test-parser-api.d.ts +12 -0
- package/build/src/test-reader/test-parser-api.js +41 -0
- package/build/src/test-reader/test-parser-api.js.map +1 -0
- package/build/src/test-reader/test-parser.d.ts +11 -0
- package/build/src/test-reader/test-parser.js +114 -0
- package/build/src/test-reader/test-parser.js.map +1 -0
- package/build/src/test-reader/tree-builder.d.ts +11 -0
- package/build/src/test-reader/tree-builder.js +74 -0
- package/build/src/test-reader/tree-builder.js.map +1 -0
- package/build/src/testplane.d.ts +48 -0
- package/build/src/testplane.js +98 -0
- package/build/src/testplane.js.map +1 -0
- package/build/src/types/index.d.ts +191 -0
- package/build/src/types/index.js +8 -0
- package/build/src/types/index.js.map +1 -0
- package/build/src/utils/browser.d.ts +1 -0
- package/build/src/utils/browser.js +10 -0
- package/build/src/utils/browser.js.map +1 -0
- package/build/src/utils/crypto.d.ts +1 -0
- package/build/src/utils/crypto.js +4 -0
- package/build/src/utils/crypto.js.map +1 -0
- package/build/src/utils/env.d.ts +4 -0
- package/build/src/utils/env.js +10 -0
- package/build/src/utils/env.js.map +1 -0
- package/build/src/utils/errors.d.ts +1 -0
- package/build/src/utils/errors.js +17 -0
- package/build/src/utils/errors.js.map +1 -0
- package/build/src/utils/fs.d.ts +1 -0
- package/build/src/utils/fs.js +18 -0
- package/build/src/utils/fs.js.map +1 -0
- package/build/src/utils/ipc.d.ts +2 -0
- package/build/src/utils/ipc.js +14 -0
- package/build/src/utils/ipc.js.map +1 -0
- package/build/src/utils/logger.d.ts +3 -0
- package/build/src/utils/logger.js +12 -0
- package/build/src/utils/logger.js.map +1 -0
- package/build/src/utils/module.d.ts +1 -0
- package/build/src/utils/module.js +14 -0
- package/build/src/utils/module.js.map +1 -0
- package/build/src/utils/page-loader.d.ts +29 -0
- package/build/src/utils/page-loader.js +120 -0
- package/build/src/utils/page-loader.js.map +1 -0
- package/build/src/utils/processor.d.ts +2 -0
- package/build/src/utils/processor.js +47 -0
- package/build/src/utils/processor.js.map +1 -0
- package/build/src/utils/typescript.d.ts +1 -0
- package/build/src/utils/typescript.js +44 -0
- package/build/src/utils/typescript.js.map +1 -0
- package/build/src/utils/worker-process.d.ts +10 -0
- package/build/src/utils/worker-process.js +20 -0
- package/build/src/utils/worker-process.js.map +1 -0
- package/build/src/utils/workers-registry.d.ts +24 -0
- package/build/src/utils/workers-registry.js +114 -0
- package/build/src/utils/workers-registry.js.map +1 -0
- package/build/src/validators.d.ts +1 -0
- package/build/src/validators.js +16 -0
- package/build/src/validators.js.map +1 -0
- package/build/src/worker/index.d.ts +1 -0
- package/build/src/worker/index.js +8 -0
- package/build/src/worker/index.js.map +1 -0
- package/build/src/worker/runner/browser-agent.d.ts +19 -0
- package/build/src/worker/runner/browser-agent.js +25 -0
- package/build/src/worker/runner/browser-agent.js.map +1 -0
- package/build/src/worker/runner/browser-pool.d.ts +19 -0
- package/build/src/worker/runner/browser-pool.js +41 -0
- package/build/src/worker/runner/browser-pool.js.map +1 -0
- package/build/src/worker/runner/caching-test-parser.d.ts +22 -0
- package/build/src/worker/runner/caching-test-parser.js +37 -0
- package/build/src/worker/runner/caching-test-parser.js.map +1 -0
- package/build/src/worker/runner/index.d.ts +24 -0
- package/build/src/worker/runner/index.js +32 -0
- package/build/src/worker/runner/index.js.map +1 -0
- package/build/src/worker/runner/sequence-test-parser.d.ts +14 -0
- package/build/src/worker/runner/sequence-test-parser.js +21 -0
- package/build/src/worker/runner/sequence-test-parser.js.map +1 -0
- package/build/src/worker/runner/simple-test-parser.d.ts +11 -0
- package/build/src/worker/runner/simple-test-parser.js +21 -0
- package/build/src/worker/runner/simple-test-parser.js.map +1 -0
- package/build/src/worker/runner/test-runner/execution-thread.d.ts +21 -0
- package/build/src/worker/runner/test-runner/execution-thread.js +65 -0
- package/build/src/worker/runner/test-runner/execution-thread.js.map +1 -0
- package/build/src/worker/runner/test-runner/hook-runner.d.ts +15 -0
- package/build/src/worker/runner/test-runner/hook-runner.js +65 -0
- package/build/src/worker/runner/test-runner/hook-runner.js.map +1 -0
- package/build/src/worker/runner/test-runner/index.d.ts +21 -0
- package/build/src/worker/runner/test-runner/index.js +124 -0
- package/build/src/worker/runner/test-runner/index.js.map +1 -0
- package/build/src/worker/runner/test-runner/one-time-screenshooter.d.ts +38 -0
- package/build/src/worker/runner/test-runner/one-time-screenshooter.js +88 -0
- package/build/src/worker/runner/test-runner/one-time-screenshooter.js.map +1 -0
- package/build/src/worker/testplane-facade.d.ts +12 -0
- package/build/src/worker/testplane-facade.js +71 -0
- package/build/src/worker/testplane-facade.js.map +1 -0
- package/build/src/worker/testplane.d.ts +38 -0
- package/build/src/worker/testplane.js +39 -0
- package/build/src/worker/testplane.js.map +1 -0
- package/package.json +125 -7
- package/typings/api.d.ts +4 -0
- package/typings/global.d.ts +35 -0
- package/readme.md +0 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2015 YANDEX LLC
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
6
|
+
this software and associated documentation files (the "Software"), to deal in
|
|
7
|
+
the Software without restriction, including without limitation the rights to
|
|
8
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
9
|
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
|
10
|
+
subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
17
|
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
18
|
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
19
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
20
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<picture>
|
|
3
|
+
<img alt="Testplane" src="docs/images/testplane.svg" width="220" style="max-width: 100%;">
|
|
4
|
+
</picture>
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
Fast, scalable and robust testing solution for the ever-evolving web landscape.
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
<a href="https://www.npmjs.com/package/testplane"><img src="https://img.shields.io/npm/dt/hermione.svg" alt="Total Downloads"></a>
|
|
13
|
+
<a href="https://github.com/gemini-testing/testplane/releases"><img src="https://img.shields.io/npm/v/testplane.svg" alt="Latest Release"></a>
|
|
14
|
+
<a href="https://github.com/gemini-testing/testplane/blob/master/LICENSE"><img src="https://img.shields.io/npm/l/hermione.svg" alt="License"></a>
|
|
15
|
+
</p>
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
Testplane (ex-Hermione) is a battle-hardened framework for testing web apps at any scale, any browser and any platform.
|
|
20
|
+
|
|
21
|
+
🧑💻 **Developer Friendly:** Enjoy a hassle-free start with our installation wizard, TypeScript support, instant feedback via live test editing, advanced HTML-reporter, and smart features like auto-wait and retries.
|
|
22
|
+
|
|
23
|
+
📸 **Visual Testing Redefined:** Capture anything from specific details to whole pages, manage diffs with a streamlined UI, explore a variety of diff modes and let Testplane tackle flakiness.
|
|
24
|
+
|
|
25
|
+
🌐 **Test Across Environments:** Forget being tied to a couple of latest Chrome builds. Testplane goes beyond that, offering testing on real devices and broad automation protocol support, mirroring your users' actual environments.
|
|
26
|
+
|
|
27
|
+
📈 **Scale Effortlessly:** Run thousands of tests on a remote browser grid or benefit from ultra-fast local execution. Testplane offers sharding, parallel test execution, and isolated browser contexts.
|
|
28
|
+
|
|
29
|
+
⚡ **Infinite Extensibility:** Testplane offers a versatile plugin system with dozens of open-source plugins on GitHub, along with custom reporters, commands, and execution logic.
|
|
30
|
+
|
|
31
|
+
## Getting started
|
|
32
|
+
|
|
33
|
+
> Note: if you prefer manual installation, you can run `npm i -D testplane`. Check out [the Docs](docs/quick-start.md) for details.
|
|
34
|
+
|
|
35
|
+
1. Use the CLI wizard to set up testplane and generate basic configuration:
|
|
36
|
+
|
|
37
|
+
```shell
|
|
38
|
+
npm init testplane@latest new-testplane-project
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
You may add `-- -y` option to quickly set up a project using defaults.
|
|
42
|
+
|
|
43
|
+
2. Open the newly generated file `testplane-tests/example.testplane.ts`. We’ll modify the test to ensure the description includes expected text:
|
|
44
|
+
|
|
45
|
+
```typescript
|
|
46
|
+
describe("test", () => {
|
|
47
|
+
it("example", async ({browser}) => {
|
|
48
|
+
await browser.url("https://example.com/");
|
|
49
|
+
|
|
50
|
+
const description = await browser.$("p");
|
|
51
|
+
|
|
52
|
+
expect(description).toHaveTextContaining("for use in illustrative examples in documents");
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
3. Launch GUI:
|
|
58
|
+
|
|
59
|
+
```shell
|
|
60
|
+
npx testplane gui
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
4. Try running the test and watch it pass. Now, let's replace description text check with a visual assertion. Use the `assertView` command to carry out visual checks:
|
|
64
|
+
|
|
65
|
+
```diff
|
|
66
|
+
- expect(description).toHaveTextContaining("for use in illustrative examples in documents");
|
|
67
|
+
+ await description.assertView("description"); // "description" is just a name of the assertion
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
5. Run the test again. It will fail, because a reference image for the heading is missing. You can accept the diff and re-run the test, it will then pass.
|
|
71
|
+
|
|
72
|
+
Congratulations on writing your first Testplane test, which navigates to a page and executes a visual assertion. Dive into the Docs to discover more awesome features Testplane has to offer!
|
|
73
|
+
|
|
74
|
+
## Docs
|
|
75
|
+
|
|
76
|
+
The documentation is divided into several sections:
|
|
77
|
+
|
|
78
|
+
- [Testplane Features Overview](docs/features.md)
|
|
79
|
+
- [Quick Start](docs/quick-start.md)
|
|
80
|
+
- [Dealing with Browsers](docs/dealing-with-browsers.md)
|
|
81
|
+
- [Writing Tests](docs/writing-tests.md)
|
|
82
|
+
- [Browser Commands Reference](docs/commands.md)
|
|
83
|
+
- [Testplane Config Reference](docs/config.md)
|
|
84
|
+
- [Testplane × Typescript](docs/typescript.md)
|
|
85
|
+
- [Testplane CLI](docs/cli.md)
|
|
86
|
+
- [Testplane Events](docs/events.md)
|
|
87
|
+
- [Testplane Programmatic API](docs/programmatic-api.md)
|
|
88
|
+
|
|
89
|
+
## Rename from "hermione"
|
|
90
|
+
|
|
91
|
+
This project was formerly known as "hermione", but eventually some copyright and trademark issues surfaced, leading to the decision to rebrand. After some discussion, we settled on "Testplane" as the official new title. We've tailored Testplane `v1` to be a drop-in replacement for Hermione `v8`.
|
|
92
|
+
|
|
93
|
+
## Contributing
|
|
94
|
+
|
|
95
|
+
Our mission with this repository is to make the Testplane development process open, while continuing to improve upon its features, performance and ease of use. We hope other organizations find value in our project and benefit from our work.
|
|
96
|
+
|
|
97
|
+
We welcome and appreciate community contributions. To ensure our efforts are in sync, we recommend to raise an issue or leave a comment beforehand.
|
|
98
|
+
|
|
99
|
+
Visit our [contributing guide](CONTRIBUTING.md) to understand more about our development process and how to get involved.
|
|
100
|
+
|
|
101
|
+
## License
|
|
102
|
+
Testplane is [MIT licensed](LICENSE).
|
package/bin/hermione
ADDED
package/bin/testplane
ADDED
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "testplane",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Tests framework based on mocha and wdio",
|
|
5
|
+
"main": "build/src/index.js",
|
|
6
|
+
"files": [
|
|
7
|
+
"build",
|
|
8
|
+
"typings"
|
|
9
|
+
],
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc && npm run copy-static",
|
|
12
|
+
"copy-static": "copyfiles 'src/browser/client-scripts/*' build",
|
|
13
|
+
"check-types": "tsc --project tsconfig.spec.json",
|
|
14
|
+
"clean": "rimraf build/ *.tsbuildinfo",
|
|
15
|
+
"lint": "eslint --cache . && prettier --check .",
|
|
16
|
+
"reformat": "eslint --fix . && prettier --write .",
|
|
17
|
+
"prettier-watch": "onchange '**' --exclude-path .prettierignore -- prettier --write {{changed}}",
|
|
18
|
+
"test-unit": "_mocha test/",
|
|
19
|
+
"test": "npm run test-unit && npm run check-types && npm run lint",
|
|
20
|
+
"toc": "doctoc docs --title '### Contents'",
|
|
21
|
+
"precommit": "npm run lint",
|
|
22
|
+
"prepack": "npm run clean && npm run build",
|
|
23
|
+
"preversion": "npm run lint && npm test",
|
|
24
|
+
"commitmsg": "commitlint -e",
|
|
25
|
+
"release": "standard-version",
|
|
26
|
+
"watch": "npm run copy-static && tsc --watch"
|
|
27
|
+
},
|
|
28
|
+
"repository": {
|
|
29
|
+
"type": "git",
|
|
30
|
+
"url": "git://github.com/gemini-testing/testplane.git"
|
|
31
|
+
},
|
|
32
|
+
"engines": {
|
|
33
|
+
"node": ">= 18.0.0"
|
|
34
|
+
},
|
|
35
|
+
"keywords": [
|
|
36
|
+
"testplane",
|
|
37
|
+
"hermione",
|
|
38
|
+
"webdriverio",
|
|
39
|
+
"mocha",
|
|
40
|
+
"test"
|
|
41
|
+
],
|
|
42
|
+
"bin": {
|
|
43
|
+
"testplane": "./bin/testplane",
|
|
44
|
+
"hermione": "./bin/hermione"
|
|
45
|
+
},
|
|
46
|
+
"license": "MIT",
|
|
47
|
+
"dependencies": {
|
|
48
|
+
"@gemini-testing/commander": "2.15.3",
|
|
49
|
+
"@types/mocha": "10.0.1",
|
|
50
|
+
"@wdio/globals": "8.21.0",
|
|
51
|
+
"@wdio/types": "8.21.0",
|
|
52
|
+
"@wdio/utils": "7.26.0",
|
|
53
|
+
"aliasify": "1.9.0",
|
|
54
|
+
"bluebird": "3.5.1",
|
|
55
|
+
"browserify": "13.3.0",
|
|
56
|
+
"chalk": "2.4.2",
|
|
57
|
+
"clear-require": "1.0.1",
|
|
58
|
+
"debug": "2.6.9",
|
|
59
|
+
"devtools": "8.21.0",
|
|
60
|
+
"expect-webdriverio": "3.5.3",
|
|
61
|
+
"fastq": "1.13.0",
|
|
62
|
+
"fs-extra": "5.0.0",
|
|
63
|
+
"gemini-configparser": "1.4.1",
|
|
64
|
+
"glob-extra": "5.0.2",
|
|
65
|
+
"lodash": "4.17.21",
|
|
66
|
+
"looks-same": "9.0.0",
|
|
67
|
+
"micromatch": "4.0.5",
|
|
68
|
+
"mocha": "10.2.0",
|
|
69
|
+
"plugins-loader": "1.3.0",
|
|
70
|
+
"png-validator": "1.1.0",
|
|
71
|
+
"sharp": "0.32.6",
|
|
72
|
+
"sizzle": "2.3.6",
|
|
73
|
+
"strftime": "0.10.2",
|
|
74
|
+
"strip-ansi": "6.0.1",
|
|
75
|
+
"temp": "0.8.3",
|
|
76
|
+
"uglifyify": "3.0.4",
|
|
77
|
+
"urijs": "1.19.11",
|
|
78
|
+
"url-join": "4.0.1",
|
|
79
|
+
"webdriverio": "8.21.0",
|
|
80
|
+
"worker-farm": "1.7.0",
|
|
81
|
+
"yallist": "3.1.1"
|
|
82
|
+
},
|
|
83
|
+
"devDependencies": {
|
|
84
|
+
"@commitlint/cli": "^19.0.3",
|
|
85
|
+
"@commitlint/config-conventional": "^19.0.3",
|
|
86
|
+
"@sinonjs/fake-timers": "10.3.0",
|
|
87
|
+
"@swc/core": "1.3.40",
|
|
88
|
+
"@types/bluebird": "3.5.38",
|
|
89
|
+
"@types/chai": "4.3.4",
|
|
90
|
+
"@types/chai-as-promised": "7.1.5",
|
|
91
|
+
"@types/lodash": "4.14.191",
|
|
92
|
+
"@types/node": "18.19.3",
|
|
93
|
+
"@types/proxyquire": "1.3.28",
|
|
94
|
+
"@types/sharp": "0.31.1",
|
|
95
|
+
"@types/sinon": "4.3.3",
|
|
96
|
+
"@types/sinonjs__fake-timers": "8.1.2",
|
|
97
|
+
"@typescript-eslint/eslint-plugin": "6.12.0",
|
|
98
|
+
"@typescript-eslint/parser": "6.12.0",
|
|
99
|
+
"app-module-path": "2.2.0",
|
|
100
|
+
"chai": "4.2.0",
|
|
101
|
+
"chai-as-promised": "7.1.1",
|
|
102
|
+
"copyfiles": "2.4.1",
|
|
103
|
+
"doctoc": "2.2.0",
|
|
104
|
+
"escape-string-regexp": "1.0.5",
|
|
105
|
+
"eslint": "8.25.0",
|
|
106
|
+
"eslint-config-gemini-testing": "2.8.0",
|
|
107
|
+
"eslint-config-prettier": "8.7.0",
|
|
108
|
+
"husky": "0.11.4",
|
|
109
|
+
"jsdom": "^24.0.0",
|
|
110
|
+
"jsdom-global": "3.0.2",
|
|
111
|
+
"onchange": "7.1.0",
|
|
112
|
+
"prettier": "2.8.4",
|
|
113
|
+
"proxyquire": "1.8.0",
|
|
114
|
+
"rimraf": "4.1.2",
|
|
115
|
+
"sinon": "17.0.1",
|
|
116
|
+
"sinon-chai": "3.7.0",
|
|
117
|
+
"standard-version": "9.5.0",
|
|
118
|
+
"ts-node": "10.9.1",
|
|
119
|
+
"type-fest": "3.11.1",
|
|
120
|
+
"typescript": "5.3.2"
|
|
121
|
+
},
|
|
122
|
+
"peerDependencies": {
|
|
123
|
+
"ts-node": ">=10.5.0"
|
|
124
|
+
},
|
|
125
|
+
"peerDependenciesMeta": {
|
|
126
|
+
"ts-node": {
|
|
127
|
+
"optional": true
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Config } from "./config";
|
|
2
|
+
import { AsyncEmitter, InterceptedEvent, Events, InterceptHandler, Interceptor } from "./events";
|
|
3
|
+
import Errors from "./errors";
|
|
4
|
+
import { ConfigInput } from "./config/types";
|
|
5
|
+
export declare abstract class BaseTestplane extends AsyncEmitter {
|
|
6
|
+
protected _interceptors: Interceptor[];
|
|
7
|
+
protected _config: Config;
|
|
8
|
+
static create<T extends BaseTestplane>(this: new (config?: string | ConfigInput) => T, config?: string | ConfigInput): T;
|
|
9
|
+
protected constructor(config?: string | ConfigInput);
|
|
10
|
+
protected _init(): Promise<void>;
|
|
11
|
+
get config(): Config;
|
|
12
|
+
get events(): Events;
|
|
13
|
+
get errors(): typeof Errors;
|
|
14
|
+
intercept(event: InterceptedEvent, handler: InterceptHandler): this;
|
|
15
|
+
abstract isWorker(): boolean;
|
|
16
|
+
protected _setLogLevel(): void;
|
|
17
|
+
protected _loadPlugins(): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.BaseTestplane = void 0;
|
|
7
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
+
const plugins_loader_1 = __importDefault(require("plugins-loader"));
|
|
9
|
+
const config_1 = require("./config");
|
|
10
|
+
const events_1 = require("./events");
|
|
11
|
+
const errors_1 = __importDefault(require("./errors"));
|
|
12
|
+
const typescript_1 = require("./utils/typescript");
|
|
13
|
+
class BaseTestplane extends events_1.AsyncEmitter {
|
|
14
|
+
static create(config) {
|
|
15
|
+
return new this(config);
|
|
16
|
+
}
|
|
17
|
+
constructor(config) {
|
|
18
|
+
super();
|
|
19
|
+
this._interceptors = [];
|
|
20
|
+
this._interceptors = [];
|
|
21
|
+
(0, typescript_1.tryToRegisterTsNode)();
|
|
22
|
+
this._config = config_1.Config.create(config);
|
|
23
|
+
this._setLogLevel();
|
|
24
|
+
this._loadPlugins();
|
|
25
|
+
}
|
|
26
|
+
async _init() {
|
|
27
|
+
this._init = () => Promise.resolve(); // init only once
|
|
28
|
+
await this.emitAndWait(events_1.MasterEvents.INIT);
|
|
29
|
+
}
|
|
30
|
+
get config() {
|
|
31
|
+
return this._config;
|
|
32
|
+
}
|
|
33
|
+
get events() {
|
|
34
|
+
return lodash_1.default.extend({}, events_1.MasterEvents, events_1.WorkerEvents);
|
|
35
|
+
}
|
|
36
|
+
get errors() {
|
|
37
|
+
return errors_1.default;
|
|
38
|
+
}
|
|
39
|
+
intercept(event, handler) {
|
|
40
|
+
this._interceptors.push({ event, handler });
|
|
41
|
+
return this;
|
|
42
|
+
}
|
|
43
|
+
_setLogLevel() {
|
|
44
|
+
if (!process.env.WDIO_LOG_LEVEL) {
|
|
45
|
+
process.env.WDIO_LOG_LEVEL = lodash_1.default.get(this.config, "system.debug", false) ? "trace" : "error";
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
_loadPlugins() {
|
|
49
|
+
plugins_loader_1.default.load(this, this.config.plugins, "hermione-");
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.BaseTestplane = BaseTestplane;
|
|
53
|
+
//# sourceMappingURL=base-testplane.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-testplane.js","sourceRoot":"","sources":["../../src/base-testplane.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AACvB,oEAA2C;AAC3C,qCAAkC;AAClC,qCAQkB;AAClB,sDAA8B;AAC9B,mDAAyD;AAGzD,MAAsB,aAAc,SAAQ,qBAAY;IAIpD,MAAM,CAAC,MAAM,CAET,MAA6B;QAE7B,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,YAAsB,MAA6B;QAC/C,KAAK,EAAE,CAAC;QAXF,kBAAa,GAAkB,EAAE,CAAC;QAaxC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAExB,IAAA,gCAAmB,GAAE,CAAC;QAEtB,IAAI,CAAC,OAAO,GAAG,eAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAES,KAAK,CAAC,KAAK;QACjB,IAAI,CAAC,KAAK,GAAG,GAAkB,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,iBAAiB;QACtE,MAAM,IAAI,CAAC,WAAW,CAAC,qBAAY,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,IAAI,MAAM;QACN,OAAO,gBAAC,CAAC,MAAM,CAAC,EAAE,EAAE,qBAAY,EAAE,qBAAY,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,MAAM;QACN,OAAO,gBAAM,CAAC;IAClB,CAAC;IAED,SAAS,CAAC,KAAuB,EAAE,OAAyB;QACxD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAE5C,OAAO,IAAI,CAAC;IAChB,CAAC;IAIS,YAAY;QAClB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,gBAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAC/F,CAAC;IACL,CAAC;IAES,YAAY;QAClB,wBAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC/D,CAAC;CACJ;AAzDD,sCAyDC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export = Browser;
|
|
2
|
+
declare class Browser {
|
|
3
|
+
static create(config: any, opts: any): import("./browser");
|
|
4
|
+
constructor(config: any, opts: any);
|
|
5
|
+
id: any;
|
|
6
|
+
version: any;
|
|
7
|
+
_config: any;
|
|
8
|
+
_debug: any;
|
|
9
|
+
_session: any;
|
|
10
|
+
_callstackHistory: import("./history/callstack") | null;
|
|
11
|
+
_state: any;
|
|
12
|
+
attach(sessionId: any, sessionCaps: any, sessionOpts: any): Promise<void>;
|
|
13
|
+
setHttpTimeout(timeout: any): void;
|
|
14
|
+
restoreHttpTimeout(): void;
|
|
15
|
+
applyState(state: any): void;
|
|
16
|
+
_addCommands(): void;
|
|
17
|
+
_addSteps(): void;
|
|
18
|
+
_addHistory(): void;
|
|
19
|
+
_addExtendOptionsMethod(session: any): void;
|
|
20
|
+
_getSessionOptsFromConfig(optNames?: string[]): {};
|
|
21
|
+
get fullId(): any;
|
|
22
|
+
get publicAPI(): any;
|
|
23
|
+
get sessionId(): any;
|
|
24
|
+
get config(): any;
|
|
25
|
+
get state(): any;
|
|
26
|
+
get capabilities(): any;
|
|
27
|
+
get callstackHistory(): import("./history/callstack") | null;
|
|
28
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const crypto = require("crypto");
|
|
3
|
+
const _ = require("lodash");
|
|
4
|
+
const { SAVE_HISTORY_MODE } = require("../constants/config");
|
|
5
|
+
const { X_REQUEST_ID_DELIMITER } = require("../constants/browser");
|
|
6
|
+
const history = require("./history");
|
|
7
|
+
const addRunStepCommand = require("./commands/runStep").default;
|
|
8
|
+
const CUSTOM_SESSION_OPTS = [
|
|
9
|
+
"outputDir",
|
|
10
|
+
"agent",
|
|
11
|
+
"headers",
|
|
12
|
+
"transformRequest",
|
|
13
|
+
"transformResponse",
|
|
14
|
+
"strictSSL",
|
|
15
|
+
// cloud service opts
|
|
16
|
+
"user",
|
|
17
|
+
"key",
|
|
18
|
+
"region",
|
|
19
|
+
];
|
|
20
|
+
module.exports = class Browser {
|
|
21
|
+
static create(config, opts) {
|
|
22
|
+
return new this(config, opts);
|
|
23
|
+
}
|
|
24
|
+
constructor(config, opts) {
|
|
25
|
+
this.id = opts.id;
|
|
26
|
+
this.version = opts.version;
|
|
27
|
+
this._config = config.forBrowser(this.id);
|
|
28
|
+
this._debug = config.system.debug;
|
|
29
|
+
this._session = null;
|
|
30
|
+
this._callstackHistory = null;
|
|
31
|
+
this._state = {
|
|
32
|
+
...opts.state,
|
|
33
|
+
isBroken: false,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
async attach(sessionId, sessionCaps, sessionOpts) {
|
|
37
|
+
this._session = await this._attachSession(sessionId, sessionCaps, sessionOpts);
|
|
38
|
+
this._addSteps();
|
|
39
|
+
this._addHistory();
|
|
40
|
+
this._addCommands();
|
|
41
|
+
}
|
|
42
|
+
setHttpTimeout(timeout) {
|
|
43
|
+
if (timeout === null) {
|
|
44
|
+
timeout = this._config.httpTimeout;
|
|
45
|
+
}
|
|
46
|
+
this._session.extendOptions({ connectionRetryTimeout: timeout });
|
|
47
|
+
}
|
|
48
|
+
restoreHttpTimeout() {
|
|
49
|
+
this.setHttpTimeout(this._config.httpTimeout);
|
|
50
|
+
}
|
|
51
|
+
applyState(state) {
|
|
52
|
+
_.extend(this._state, state);
|
|
53
|
+
}
|
|
54
|
+
_addCommands() {
|
|
55
|
+
this._addExtendOptionsMethod(this._session);
|
|
56
|
+
}
|
|
57
|
+
_addSteps() {
|
|
58
|
+
addRunStepCommand(this);
|
|
59
|
+
}
|
|
60
|
+
_addHistory() {
|
|
61
|
+
if (this._config.saveHistoryMode !== SAVE_HISTORY_MODE.NONE) {
|
|
62
|
+
this._callstackHistory = history.initCommandHistory(this._session);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
_addExtendOptionsMethod(session) {
|
|
66
|
+
session.addCommand("extendOptions", opts => {
|
|
67
|
+
_.extend(session.options, opts);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
_getSessionOptsFromConfig(optNames = CUSTOM_SESSION_OPTS) {
|
|
71
|
+
return optNames.reduce((options, optName) => {
|
|
72
|
+
if (optName === "transformRequest") {
|
|
73
|
+
options[optName] = req => {
|
|
74
|
+
if (!_.isNull(this._config[optName])) {
|
|
75
|
+
req = this._config[optName](req);
|
|
76
|
+
}
|
|
77
|
+
if (!req.headers["X-Request-ID"]) {
|
|
78
|
+
req.headers["X-Request-ID"] = `${this.state.testXReqId}${X_REQUEST_ID_DELIMITER}${crypto.randomUUID()}`;
|
|
79
|
+
}
|
|
80
|
+
return req;
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
else if (!_.isNull(this._config[optName])) {
|
|
84
|
+
options[optName] = this._config[optName];
|
|
85
|
+
}
|
|
86
|
+
return options;
|
|
87
|
+
}, {});
|
|
88
|
+
}
|
|
89
|
+
get fullId() {
|
|
90
|
+
return this.version ? `${this.id}.${this.version}` : this.id;
|
|
91
|
+
}
|
|
92
|
+
get publicAPI() {
|
|
93
|
+
return this._session; // exposing webdriver API as is
|
|
94
|
+
}
|
|
95
|
+
get sessionId() {
|
|
96
|
+
return this.publicAPI.sessionId;
|
|
97
|
+
}
|
|
98
|
+
get config() {
|
|
99
|
+
return this._config;
|
|
100
|
+
}
|
|
101
|
+
get state() {
|
|
102
|
+
return this._state;
|
|
103
|
+
}
|
|
104
|
+
get capabilities() {
|
|
105
|
+
return this.publicAPI.capabilities;
|
|
106
|
+
}
|
|
107
|
+
get callstackHistory() {
|
|
108
|
+
return this._callstackHistory;
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
//# sourceMappingURL=browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../src/browser/browser.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export = Calibrator;
|
|
2
|
+
declare class Calibrator {
|
|
3
|
+
_cache: {};
|
|
4
|
+
/**
|
|
5
|
+
* @param {Browser} browser
|
|
6
|
+
* @returns {Promise.<CalibrationResult>}
|
|
7
|
+
*/
|
|
8
|
+
calibrate(browser: Browser): Promise<CalibrationResult>;
|
|
9
|
+
_analyzeImage(image: any, params: any): globalThis.Promise<{
|
|
10
|
+
viewportStart: {
|
|
11
|
+
x: number;
|
|
12
|
+
y: any;
|
|
13
|
+
};
|
|
14
|
+
} | null>;
|
|
15
|
+
}
|
|
16
|
+
import Promise = require("bluebird");
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const fs = require("fs");
|
|
3
|
+
const path = require("path");
|
|
4
|
+
const Promise = require("bluebird");
|
|
5
|
+
const _ = require("lodash");
|
|
6
|
+
const looksSame = require("looks-same");
|
|
7
|
+
const { CoreError } = require("./core-error");
|
|
8
|
+
const clientScriptCalibrate = fs.readFileSync(path.join(__dirname, "client-scripts", "calibrate.js"), "utf8");
|
|
9
|
+
const DIRECTION = { FORWARD: "forward", REVERSE: "reverse" };
|
|
10
|
+
module.exports = class Calibrator {
|
|
11
|
+
constructor() {
|
|
12
|
+
this._cache = {};
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* @param {Browser} browser
|
|
16
|
+
* @returns {Promise.<CalibrationResult>}
|
|
17
|
+
*/
|
|
18
|
+
calibrate(browser) {
|
|
19
|
+
if (this._cache[browser.id]) {
|
|
20
|
+
return Promise.resolve(this._cache[browser.id]);
|
|
21
|
+
}
|
|
22
|
+
return Promise.resolve(browser.open("about:blank"))
|
|
23
|
+
.then(() => browser.evalScript(clientScriptCalibrate))
|
|
24
|
+
.then(features => [features, browser.captureViewportImage()])
|
|
25
|
+
.spread(async (features, image) => {
|
|
26
|
+
const { innerWidth, pixelRatio } = features;
|
|
27
|
+
const hasPixelRatio = Boolean(pixelRatio && pixelRatio > 1.0);
|
|
28
|
+
const imageFeatures = await this._analyzeImage(image, { calculateColorLength: hasPixelRatio });
|
|
29
|
+
if (!imageFeatures) {
|
|
30
|
+
return Promise.reject(new CoreError("Could not calibrate. This could be due to calibration page has failed to open properly"));
|
|
31
|
+
}
|
|
32
|
+
features = _.extend(features, {
|
|
33
|
+
top: imageFeatures.viewportStart.y,
|
|
34
|
+
left: imageFeatures.viewportStart.x,
|
|
35
|
+
usePixelRatio: hasPixelRatio && imageFeatures.colorLength > innerWidth,
|
|
36
|
+
});
|
|
37
|
+
this._cache[browser.id] = features;
|
|
38
|
+
return features;
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
async _analyzeImage(image, params) {
|
|
42
|
+
const imageHeight = (await image.getSize()).height;
|
|
43
|
+
for (var y = 0; y < imageHeight; y++) {
|
|
44
|
+
var result = await analyzeRow(y, image, params);
|
|
45
|
+
if (result) {
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
async function analyzeRow(row, image, params = {}) {
|
|
53
|
+
const markerStart = await findMarkerInRow(row, image, DIRECTION.FORWARD);
|
|
54
|
+
if (markerStart === -1) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
const result = { viewportStart: { x: markerStart, y: row } };
|
|
58
|
+
if (!params.calculateColorLength) {
|
|
59
|
+
return result;
|
|
60
|
+
}
|
|
61
|
+
const markerEnd = await findMarkerInRow(row, image, DIRECTION.REVERSE);
|
|
62
|
+
const colorLength = markerEnd - markerStart + 1;
|
|
63
|
+
return _.extend(result, { colorLength });
|
|
64
|
+
}
|
|
65
|
+
async function findMarkerInRow(row, image, searchDirection) {
|
|
66
|
+
const imageWidth = (await image.getSize()).width;
|
|
67
|
+
const searchColor = { R: 148, G: 250, B: 0 };
|
|
68
|
+
if (searchDirection === DIRECTION.REVERSE) {
|
|
69
|
+
return searchReverse_();
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
return searchForward_();
|
|
73
|
+
}
|
|
74
|
+
async function searchForward_() {
|
|
75
|
+
for (var x = 0; x < imageWidth; x++) {
|
|
76
|
+
var isSame = await compare_(x);
|
|
77
|
+
if (isSame) {
|
|
78
|
+
return x;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return -1;
|
|
82
|
+
}
|
|
83
|
+
async function searchReverse_() {
|
|
84
|
+
for (var x = imageWidth - 1; x >= 0; x--) {
|
|
85
|
+
var isSame = await compare_(x);
|
|
86
|
+
if (isSame) {
|
|
87
|
+
return x;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return -1;
|
|
91
|
+
}
|
|
92
|
+
async function compare_(x) {
|
|
93
|
+
var pixel = await image.getRGBA(x, row);
|
|
94
|
+
var color = pickRGB(pixel);
|
|
95
|
+
return looksSame.colors(color, searchColor);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
function pickRGB(rgba) {
|
|
99
|
+
return {
|
|
100
|
+
R: rgba.r,
|
|
101
|
+
G: rgba.g,
|
|
102
|
+
B: rgba.b,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=calibrator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calibrator.js","sourceRoot":"","sources":["../../../src/browser/calibrator.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export = Camera;
|
|
2
|
+
declare class Camera {
|
|
3
|
+
static create(screenshotMode: any, takeScreenshot: any): import(".");
|
|
4
|
+
constructor(screenshotMode: any, takeScreenshot: any);
|
|
5
|
+
_screenshotMode: any;
|
|
6
|
+
_takeScreenshot: any;
|
|
7
|
+
_calibration: any;
|
|
8
|
+
calibrate(calibration: any): void;
|
|
9
|
+
captureViewportImage(page: any): Promise<Image>;
|
|
10
|
+
_calibrateArea(imageArea: any): any;
|
|
11
|
+
_cropAreaToViewport(imageArea: any, page: any): any;
|
|
12
|
+
}
|
|
13
|
+
import Image = require("../../image");
|