* add retries e2e test
* restore runner/test/eslintrc
* use mocha pass event, move runner.spec to runner package
* fix .eslintignore
* remove npmInstall logic in helper/e2e script, force custom reporters to use our mocha
* temp 04/09/20 [skip ci]
* add retries output to server/reporter, fix mocha pass event order, cleanup
* e2e tests - dont run electron tests in other browsers
* Update readme to reflect how to start server for cypress tests
* fix after merge
* fix .coffee -> .js after merge
* fix attempt.tsx
* fix runnable titles emitted to terminal reporters
* fix more tests: update snapshots, fix 7_record_spec, 8_reporters_spec
* remove styling for 'attempt-error-region' so it's not indented
- This was the older styling before error improvements and is no longer
necessary.
* try 2: fix rerun before/after hooks
* fix runner with only, runner snapshots, lint fixes
* temp 04/29/20 [skip ci]
* backport changes from test-retries
* change logic to rerun before hooks after top navigation
* fix windowSize for browser e2e test
* fix windowSize for xvfb chrome in e2e test
* ok fine, just disable screenshots
* fix after merge: decaffed navigation.js
* update server/unit test snapshots
* fix after merge: decaffed aliases.js
* fix usage of cypress --parallel flag in circle.yml
* fix circle.yml integration-tests jobs
* fix decaf related typo
* fix circle.yml separate command for runner-integration-tests
* update runner/integration tests + snapshot after error improvements
* fix runner/integration snapshots for chrome/ff stacktrace differences
* rerun ci
* fix passing --parallel to runner-integration tests
* perf: faster lookup for hooks without runnables
* fix afterAll hook switch logic
* simplify mocha prototype patches
* fix decaf utils.coffee after merge
* backport to before/after fix
* backport to before/after fix 2
* cleanup from decaf, fix ui/package.json
* update helpers, simplify runner.spec
* fix lint-types errors, flaky spec
* fix noExit passed to e2e test inline options
* cleanup snapshot utility - refactor to use util file
* remove before/after changes
* make cy obj a class instance
* cleanup/unmerge before/after fixes PR...
* more cleanup
* add comment
* fix runner.spec
* cleanup snapshot utility more, cleanup reporter.spec
* fix after merge
* minor rename variable
* fix after merge: decaffed files
* fix specName in reporterHeader, spec_helper require
* replace reporter specPath usages with spec object from config
* cleanup, fix specs, fix types tests
* fix config spec paths in isolated runner, fix snapshot plugin button
* combine runner.spec.js and runner_spec.js
* fix incorrect merge
* minor minor cleanup
* rename driver/test/cypress to driver/test
* use yarn workspace over lerna for individual package commands
* add error message to driver start
* remove usage of wait-on
* update <reference types/>, import string
* fix driver/readme
* fix readmes after regex replace
* revert wait-on changes
* Revert "revert wait-on changes"
This reverts commit 6de684cf34.
* update yarn.lock
* fix broken path in spec
* fix broken paths in specs with @packages/driver
* move runner/test/cypress into runner/cypress
* start server in pluginsFile in runner/cypress tests
* fix more broken spec paths
* fix broken paths after runner/cypress folder move
* move type definition loading for driver/cypress into dedicated file
* move internal-types to "types" folder, fix driver/index.d.ts
* fix type-check in packages/runner. not exactly sure why
* fix runner type-check by excluding test folder in tsconfig
* bump timeout on e2e/8_error_ui_spec
* update snapshot utility, rename tests in runner/runner.spec, fix README yarn commands
* delete old spec
* fix snapshot naming, remove redundant test in reporter_spec
* fix file renames after merge
* rename runner/ snapshot
* update server/unit/reporter_spec snapshot
* update runner/runner_spec snapshot
* rename runner snapshot file
* address feedback: move server reporter snapshot specs out
* address feedback: add comment about exposing globals
* fix test-retries after merging isolated-runner
* fix runner/test helper, update snapshot
* address feedback: split out runner/retries spec, move reporter/ui tests to runner/ui spec (mostly done), various cleanup
* fix scrolling, attempt opening, update snapshots
* fix e2e support file
* fix 5_spec_isolation
* fix mislabeling attempt screenshots
* only add test results prevAttempts if exists
* fix reporter/unit tests, server/unit tests
* remove dead code, fix test isOpen
* update snapshots for retries.mochaEvents, fix snapshot error in state hydration test, remove dead snapshots
* new moduleAPI schema using attempts array, fix wrapping errors from hook retries, update snapshots
* add displayError, null out fields in moduleAPI schema
* change default retries to {runMode:2, openMode:0}
* fix reporter type-check
* upgrade json-schemas, update snapshots
* reformat error.stack to be only stacktrace, update snapshots
* fix stacktrace replacing in 5_spec_isolation
* fix navigation error causing infinite reloading, bump timeout on e2e/8_error_ui
* fix server/unit tests for new schema
* fix reporter/unit tests
* fix reporting duplicate screenshots using cy.screenshot during test retry
* update snapshot for 6_uncaught_support_file_spec
* bump x-route-version: 3
* fix test.tsx collapsible content, css, fix e2e/8_error_ui, e2e projects excluding retries
* fix css, fix padding in runnable-instruments, fix runner/integration tests
* fixup after merge
* fix reporter/runner to work with split hooks
* update api tests, runner/cypress tests, reporter
* fix 5_spec_isolation snapshots, fix runner/cypress errors.spec, fix null reference in test.tsx
* fix e2e/non_root spec, fix type_check, fix reporter/unit tests
* setup percy snapshots in runner/cypress, fix driver/runner test:after:run event, add tests for only,skip in runner/cypress, fix retried css
* add customPercySnapshot
* fix circle.yml
* fix circle.yml 2
* fix circle.yml 3
* add warning for incompatible retries plugin
* add more percy snapshots
* fix firefox screenshot resolution in e2e test
* Fix testConfigOverrides not affecting viewport (#8006)
* finish adding percy snapshots to runner/cypress retries spec, update error msgs, add tests to be fixed
* remove .only
* fixing missing repo argument
* fix testConfigOverrides usage with retries, fix test
* fix issues from previous merge
* add script that can query CircleCI workflow status
* add circleci job to poll
* add retries
* try yarn lock
* retry, percy finalize
* check for current running job
* do not swallow request error
* better print
* use job name from circle environment
* use debug instead
* renamed circle polling script
* refactor circle to conditionally run percy-finalize when env var is available
- pass job-names to wait on as an argument
* use multi-line strings and quote --job-names
- rename —circle-jobs to —job-names
* add comment
* only poll until the jobs to wait for are blocked or running
* fix running hooks at correct depth after attempt fails from hook and will retry, update e2e snapshots
* fix reporter/unit tests, remove unused toggleOpen code
* move custom percy command into @packages/ui-components and apply them to desktop-gui
* halt percy finalize job if env variable is not set
* if only I could code
* update runner/cypress mochaEvent snapshots, fix e2e firefox resolution
* fix css for attempt border-left, fix attempt-tag open/close icon, add color to attempt collapsible dot
* try percy set viewport width
* set default retries back to {runMode:0, openMode:0}
* formatting: add backticks to warning message
* write explicit test for screenshot overwriting behavior, fix snapshots after changing retries defaults
* fix e2e.it.only`
* cleanup whitespace
* update snapshots
* fix cypress module API types for new result schema
* build and upload binary for test-retries branch too (linux)
* add pre-release PR comment
* fix pre-release commit comment
* rename runner/cypress test
* update retries.ui.spec test titles
* fix after merge: use most recent attempt for before/after hooks
* add suite title to hook error in runner/cypress tests
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
Co-authored-by: Gleb Bahmutov <gleb.bahmutov@gmail.com>
* make tests preprocessor agnostic
* update eslintignore
* put back deps needed for e2e test
* remove obselete snapshot
it was replaced by 1_typescript_support_spec.ts.js
* switch from browserify to webpack preprocessor
* cmon github
* fix/update tests
* bump preprocessor and update snapshots
* update snapshots
* bump preprocessor to gain json support
* fix e2e tests with webpack-originated errors
* bump preprocessor version, fix node globals
* update snapshot
* remove support for ? in file path
* bump preprocessor version
* bump preprocessor again
* bump preprocessor
* bump preprocessor
* update snapshots
* bump preprocessor version
* bump preprocessor, quiet the paths plugin
* add test verifying tsconfig paths work
* bump batteries-included preprocessor and install latest webpack preprocessor beside it
* update snapshots
* put back snapshot
* update snapshot
* update snapshot
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
* Out-of-the-box TypeScript support for plugins
* Out-of-the-box TypeScript Support for tests.
* Fix server unit tests.
* Don't use bundled typescript.
* Added esModuleInterop option.
* Fixed unit tests.
* Added simple_tsify to integration test.
* Added integration tests for ts spec files.
* simple_tsify to ignore transpiling json files.
* transpile on flush.
* Fix lint failure.
* Added error message.
* Add error message for restart test runner for support file.
* Added JSDoc comment.
* Remove preset-typescript.
* Fix integration test failure.
* Fix type errors.
* Add e2e test for typescript
* Fix lint error.
* Add plugin support and e2e test.
* Fix server unit test failures.
* Update snapshots.
* Migrate typescript compilation code to browserify-preprocessor
* Remove unnecessary files and test.
They're tested in preprocessor.
* Fix test failures.
* Update @types/react.
* Update yarn.lock.
* Clear name: registerTS -> tsRegistered.
* Clarify why tsRegistered = true exists.
* Add working examples for support and plugins.
* Move TypeScript tests to its own file.
* decaffeinate: Rename saved_state.coffee from .coffee to .js
* decaffeinate: Convert saved_state.coffee to JS
* decaffeinate: Run post-processing cleanups on saved_state.coffee
* decaffeinate: Rename saved_state_spec.coffee from .coffee to .js
* decaffeinate: Convert saved_state_spec.coffee to JS
* decaffeinate: Run post-processing cleanups on saved_state_spec.coffee
* refactor saved state
- create a single saved_state module instead of having two
- export an object with methods instead of a function with methods
* Turn exception message into something human readable
* Pass ipc as parameter to invoke function
* Creating file to validate event name and handler
* Creating tests to validate_event
* Remove ipc from invoke parameter
* Removing ipc parameter being passed to validateEvent
* convert spec to js
* increase line-height for plugins error message
* refactor error messages and implementation
* fix race condition where async error in plugins file could hang run
a quick async error at the root of the plugins file had the potential to hang the run because the ‘exitEarlyWithErr’ listener was registered later than that error was emitted
this enables that error to be tracked so we can properly exit at the appropriate time
it also refactors run.js to not rely on an event emitted on the project and instead passes through an onError handler, which makes more sense since the event was only used in run.js (except for one case). it also makes for easier unit testing
* fix missing reference
* fix duplicate reference
* fix args being passed in incorrectly
* fix way args were handled in server.open
* fix exit early implementation
* fix duplicate logging
* fix unit test
* update snapshot
* fix missing reference
* add e2e test to cover plugin registration validation
* clean up after merge
* add back snapshot
* fix e2e tests
Co-authored-by: Chris Breiding <chrisbreiding@users.noreply.github.com>
Co-authored-by: Zach Bloomquist <github@chary.us>
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
* fix race condition when there's an async error in root of plugins file
* return the promise
* fix routes creation
* fix tests
* fix error throwing and add tests
* update snapshots
* revert changes to server.open signatures in tests
* fix test
* properly wrap error so it doesn't log twice
* slow down test to ensure plugins error occurs before run is over
* wait to log early exit error until after run start
* deprecate old API for before:browser:launch
* trigger ci
* allow chrome preferences to be overwritten in before:browser:launch
* add e2e test for chrome preferences
* add launchOptions.windowSize, refactor plugin handling into browser/utils
* async/await-ify chrome.ts, update e2e.js
* add padding to warning, allow more than 1 warning in run mode
* remove psInclude
* bump snap-shot-it, remove patch-package
* fix failing tests, tighten up code
* remove unused Promise.all
* more code cleanup from coffeescript conversion
* fix expectedExitcode
* update snapshot with cross origin error message
* more code cleanup from coffeescript conversion
* remove global state, cleanup normalizing stdout in snapshots
* fix asserting on the expected exit code
* remove firefox a default browser in e2e tests
* remove dupe const
* make onStdout return first arg by default
* remove only
* make expectedExitCode: 0 the default, remove duplicate option from all e2e tests
* fix test for electron
* reuse _getArgs() properly, tighten up dupe code, move perf e2e tests to use new e2e.it helpers
* make e2e test pass properly, and capture snapshot
- this was being overlooked because expectedExitCode wasn’t being set
(until now its the default)
* revert firefox specific changes to reduce PR diff
* remove newline
* temp 02/04/20 [skip ci]
* add more scenarios / return values
* rename plugin deprecation project fixture
* prevent warnings in run mode from being called multiple times in the same browser launch
- add plugin integration tests
- cleanup some promise code in browsers/chrome
- refactor the e2e deprecation tests
* update e2e deprecation specs, test that deprecation warning is displayed once per spec on a run
* cleanup let -> const, coffescript conversion
* bump snap-shot-it, remove patch-package
(cherry picked from commit ba23be5349)
* bump cli snap-shot-it
* cleanup: let -> const, parseFloat, formatting
* revert cross origin normalization
* fix spacing
* add types for plugin events
* dont pad warning message in run mode
* add e2e test for adding extensions before:browser:launch
* fix failing electron unit test, consolidate creating default launch options
* add extensions for electron + warning if install fails
* fix failing tests, yield the right before:browser:launch args signature
* e2e test electron via devtools extension
* remove .only
* add stdout assertions to e2e/1_deprecated_spec
* remove snapshot whitespace
* rename deprecation event
* update deprecated browser launch args warning message
* throw error on unexpected bbl property
* add tests for warning + error on bbl
* update snapshot
* revive 2 useful tests to validate how launchOption args are merged
* try fix e2e fullscreen spec, update snapshots
* tighten up code for throwing errors on unknown launch options properties
- list out the unknown and expected properties using existing
conventions
- tighten up the error message a bit
* rename options -> launchOptions, add e2e test for adding unknown properties to launchOptions, removed dupe snapshots
* fix fullscreen e2e test
* only push user gesture arg if chromium
* add e2e tests for throwing + rejecting errors, run e2e tests on all browsers, avoid ps logic only in electron
* remove conditional args in fullscreen test
* dont automatically install the latest version of chrome in circle
* add stubs for new electron properties
* switch from using port 5555 to 5544 to avoid common conflicts
* temporarily commenting out windowSize launchOption so release is unblocked and all tests pass
- can add it back in later once the e2e tests pass in CI
* make the path to chrome profile correctly dynamic to account for all operating systems
* remove magic length(8) and slice out the first 4 custom args set from the plugin launch options
* add back --start-maximized in chrome
* deleting windowSize-related code... for now!
Co-authored-by: Zach Bloomquist <github@chary.us>
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
Co-authored-by: Chris Breiding <chrisbreiding@users.noreply.github.com>