Commit Graph

81 Commits

Author SHA1 Message Date
Barthélémy Ledoux b4996ff148 feat: allow to use TypeScript in the config file (#18300)
* feat: allow to use typescritpt in the config file

* add end to end test

* test: add test for the default config file ts

* tests: add a tests for language conflict

* fix: only compile typescript if main file is ts

Co-authored-by: Zach Bloomquist <github@chary.us>

Co-authored-by: Zach Bloomquist <github@chary.us>
2021-10-02 09:15:21 -05:00
Barthélémy Ledoux 1433b64d25 fix: only rerun if current spec+deps changed (#17269)
Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>
2021-07-26 11:52:59 +10:00
Michael Luo 74ada1157c fix: add yarn v2 pnp support to default webpack processor (#17335) 2021-07-21 20:06:28 +00:00
Zach Bloomquist 56a30e0b50 fix: capture plugin stdout (#17293) 2021-07-13 14:11:58 +00:00
Barthélémy Ledoux 20de3e585f fix: make dev-server error message appear only once when CT is not configured (#17090) 2021-06-27 11:02:27 -05:00
Jennifer Shehane da3bab6786 fix: Alphabetize plugin config (#16564) 2021-05-20 09:03:26 -05:00
Jennifer Shehane 41d3d50822 fix: Correctly handle if cb is undefined in wrapChildPromise (#16277) 2021-05-04 13:49:14 -05:00
Chris Breiding b53f04e4f7 feat: Fire run events in interactive mode (#15787) 2021-04-12 14:43:19 -04:00
Chris Breiding c0cd9f78c3 fix: Prevent a couple warnings from being displayed in stdout (#15828) 2021-04-07 10:51:06 -04:00
Zach Bloomquist ed0af3b4bb fix: suppress EventEmitter warnings + other Node warnings in prod (#15723) 2021-04-01 20:18:05 +00:00
Lachlan Miller 43c8ae2a7c feat: support ct/e2e specific overrides in cypress.json (#15526)
Co-authored-by: Dmitriy Kovalenko <dmtr.kovalenko@outlook.com>
2021-03-21 23:28:59 -04:00
Adam Gastineau 82b1fead17 Removed some added lint exceptions 2021-03-18 06:21:16 -07:00
Adam Gastineau adbd21d417 chore: Updated to latest ESLint and updated corresponding plugins 2021-03-16 13:59:24 -07:00
Chris Breiding 237c426707 fix: Revert cypress.json changes (#15499) 2021-03-15 18:01:06 -04:00
Lachlan Miller a94c9d5ef0 feat: support ct/e2e specific overrides in cypress.json (#15444)
Co-authored-by: ElevateBart <ledouxb@gmail.com>
Co-authored-by: Jessica Sachs <jess@jessicasachs.io>
2021-03-13 03:47:49 -05:00
Chris Breiding 59c2c03895 feat: Remove experimentalRunEvents flag (#15276) 2021-03-02 10:07:02 -05:00
Chris Breiding f81dfecef4 fix: Remove truncation of preprocessor errors (#15198) 2021-02-24 16:28:45 -05:00
Brian Mann af26fbebe6 feat: component testing (#14479)
Co-authored-by: Jessica Sachs <jess@jessicasachs.io>
Co-authored-by: Barthélémy Ledoux <bart@cypress.io>
Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>
Co-authored-by: Zach Bloomquist <github@chary.us>
Co-authored-by: Dmitriy Kovalenko <dmtr.kovalenko@outlook.com>
Co-authored-by: ElevateBart <ledouxb@gmail.com>
Co-authored-by: Ben Kucera <14625260+Bkucera@users.noreply.github.com>
2021-02-04 15:45:16 -05:00
Chris Breiding 9a25fd02c2 feat: Add after:run event (#14263) 2020-12-21 13:40:55 -05:00
Chris Breiding d6c0bcfc04 feat: Add before:run event (#14238) 2020-12-21 13:06:45 -05:00
Chris Breiding c9916c8bbd feat: Add after:spec event (#14178) 2020-12-18 09:45:15 -05:00
Chris Breiding f47d5c0574 feat: Add before:spec event (#9646)
Co-authored-by: Zach Bloomquist <github@chary.us>
2020-12-16 16:25:14 -05:00
Chris Breiding 004ebb24b8 fix: Register and run default preprocessor in child process (#8826) 2020-10-14 12:33:42 -04:00
Kukhyeon Heo 379ad64989 fix: cy.task() can pass undefined as default argument. (#8600)
Co-authored-by: Gleb Bahmutov <gleb.bahmutov@gmail.com>
2020-09-21 10:34:05 -04:00
Chris Breiding 383fa22f10 fix: Resolve tsconfig.json for plugins file from the plugins directory (#8377) 2020-08-24 17:02:26 -04:00
Ben Kucera 860a20af30 feat: support test retries (#3968)
* 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>
2020-08-10 18:36:45 -04:00
Chris Breiding daeab10e46 fix: Remove default esModuleInterop option from ts-node and preprocessor (#8143)
* 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

* refactor registering ts-node

* separate spec/support file typescript tests from plugins file typescript tests

* fix unit tests

* fix: Remove esModuleInterop default from ts-node (#7808)

* Remove esModuleInterop from ts-node.

* Add e2e test.

* Fix test.
Change test name.
Add comment.

* Fix test snapshot name.

* update snapshotting

Co-authored-by: Chris Breiding <chrisbreiding@gmail.com>

* clean up e2e project

* bump preprocessor to 1.3.2, which removes esModuleInterop default value

* improve esmoduleinterop e2e tests

* change spec file

* bump batteries-included preprocessor and install latest webpack preprocessor beside it

* update snapshots

* put back snapshot

* update snapshot

* update snapshot

Co-authored-by: Kukhyeon Heo <sainthkh@naver.com>
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
2020-08-10 18:18:30 -04:00
Chris Breiding 474bcddbd3 feat: Change default preprocessor to webpack (#7982)
* 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>
2020-08-10 16:55:15 -04:00
Chris Breiding d583fb4f62 Merge branch 'develop' into v5.0-release 2020-07-22 09:24:02 -04:00
Kukhyeon Heo cb4deee8d1 Pass version number to plugin. (#7925) 2020-07-22 11:53:54 +06:30
Brian Mann 09c72e3589 silence deprecation warnings rather than patch transient deps for Buffer warnings 2020-07-17 13:53:26 -04:00
Zach Bloomquist 0e632635cd chore: rm non-test-related coffeescript references 2020-06-10 10:49:31 -04:00
Zach Bloomquist fe785749e8 server decaf cleanup
cleanup
2020-06-04 14:48:33 -04:00
decaffeinate e7d1f313b0 decaffeinate: Run post-processing cleanups on api.coffee and 35 other files
decaffeinate: Run post-processing cleanups on reporter.coffee
2020-06-04 14:03:03 -04:00
decaffeinate 0f035b976c decaffeinate: Convert api.coffee and 35 other files to JS
decaffeinate: Convert reporter.coffee to JS
2020-06-04 14:03:01 -04:00
decaffeinate c7dd989893 decaffeinate: Rename api.coffee and 35 other files from .coffee to .js
decaffeinate: Rename reporter.coffee from .coffee to .js
2020-06-04 14:02:58 -04:00
Jennifer Shehane a27bd34df3 Reporter error improvements (#3930) 2020-05-06 12:18:29 -04:00
Gleb Bahmutov aae90bbbe0 Set CommonJS module format when transpiling TS code (#7197) 2020-05-04 08:57:39 -04:00
Gleb Bahmutov 4290a85875 More logs, more tests for TypeScript preprocessor (#7189) 2020-05-01 09:45:59 -04:00
Gleb Bahmutov f31cb3cdc3 Add bundled endpoint (#7153) 2020-04-27 10:00:56 -04:00
Dmitriy Kovalenko 379a9e7008 feat: improve component based tests approach (#5923)
- new mode that mounts the spec iframe instead of application iframe
2020-04-26 16:25:24 -04:00
Ben Kucera 16aecbafaa [internal] watch+reload on file change for e2e tests with --no-… (#6873)
* allow watching files for e2e tests with --no-exit
2020-04-23 10:45:57 -04:00
Kukhyeon Heo d7c545223a Fix typo that made user projects include bundled typescript. (#7072) 2020-04-20 19:51:37 +06:30
Kukhyeon Heo e22b362d4c Out-of-the-box TypeScript Support (#5906)
* 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.
2020-04-13 21:39:13 +06:30
Chris Breiding a22d0cc756 Chore: Refactor saved state utility (#6759)
* 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
2020-03-17 15:20:26 -04:00
Ben Kucera dd51b41ae2 render ansi colors for file:preprocessor error message (#6535)
* show colored spec compile errors in browser reporter
2020-03-10 10:24:11 -04:00
Chris Breiding e93e6ae0b4 Validate plugin event registration (#5356)
* 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>
2020-03-05 16:00:42 -05:00
Chris Breiding 474b80a50f Fix race condition when there's an early asynchronous error in… (#6610)
* 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
2020-03-04 11:59:01 -05:00
Chris Breiding 778321786f Pass projectRoot and configFile to plugins file through config (#6317)
* decaffeinate: Rename index.coffee from .coffee to .js

* decaffeinate: Convert index.coffee to JS

* decaffeinate: Run post-processing cleanups on index.coffee

* refactor decaffeinated plugins/index.js

* decaffeinate: Rename 3_plugins_spec.coffee from .coffee to .js

* decaffeinate: Convert 3_plugins_spec.coffee to JS

* decaffeinate: Run post-processing cleanups on 3_plugins_spec.coffee

* fix wrongly removed return

* refactor e2e plugins spec, update snapshot

* pass env argument to plugins file

* decaffeinate: Rename index_spec.coffee from .coffee to .js

* decaffeinate: Convert index_spec.coffee to JS

* decaffeinate: Run post-processing cleanups on index_spec.coffee

* update plugins tests

* update scaffold snapshot

* add back server test script and document running individual tests

* add projectRoot and configFile directly to config

* normalize browsers in snapshot

* add types for configFile and projectRoot

* fix linting issues

* return return

* Merge

* remove file

* remove unnecessary returns
2020-02-28 14:13:36 -05:00
decaffeinate 230072ee0a decaffeinate: Run post-processing cleanups on index.coffee 2020-02-24 14:20:02 -05:00