Commit Graph

152 Commits

Author SHA1 Message Date
Nick Bolles 12080dc205 fix: Add typing for specType field on spec method (#8256)
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
2020-08-27 12:52:58 +06:30
Jennifer Shehane 83fa4ceb18 fix: Add retries to test config types (#8408)
* Add retries to test config types

* Add type tests for retries in test options

* fix duplicated type

Co-authored-by: Ben Kucera <14625260+Bkucera@users.noreply.github.com>
2020-08-27 12:36:54 +06:30
Matt Revell 2f835f7f15 fix: Add reporter options (#8217)
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
Co-authored-by: Zach Bloomquist <github@chary.us>
Co-authored-by: Chris Breiding <chrisbreiding@gmail.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2020-08-17 14:16:40 +06:30
Ben Kucera 966fbf0e42 fix: remove private properties, move screenshots in module API results (#8148)
* 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

* remap module API result, move e2e timing tests from 5_spec_isolation into 7_record_spec, unit test

* fix cypress module API types for new result schema

* build and upload binary for test-retries branch too (linux)

* update module api typedefs for moving screenshot info

* cleanup typedef

* small refactor, add cypress-inspect-brk feat to e2e tests, fix typedefs for moduleapi

* 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

* fix snapshot

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-11 08:58:40 -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
Jennifer Shehane a882763f08 Merge branch 'develop' into v5.0-release 2020-08-10 20:14:11 +06:30
Kukhyeon Heo 26f6228dc9 feat: Improve clicking with modifiers. (#8114)
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2020-08-10 15:03:07 +06:30
Matteo Maronati 497745037f fix: Cookie interface expiry prop (#8145) 2020-07-31 11:48:30 -04:00
Gleb Bahmutov fe96d7cf2a feat: run only filtered specs (#8007)
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2020-07-30 10:29:21 -04:00
Kukhyeon Heo 15c71c5bd7 fix: Introduce CypressCommandLine namespace to type NPM module api 2020-07-29 13:48:57 -04:00
Kukhyeon Heo 7da2c4d397 fix: add more should interface definitions. (#8068) 2020-07-28 13:58:03 -04:00
Laís Tomaz fbce860f31 feat: Add configuration option for disabling screenshots (#8083)
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
2020-07-28 11:39:38 +06:30
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
Zach Bloomquist b60abedc8b Merge remote-tracking branch 'origin/develop' into v5.0-release 2020-07-20 10:02:37 -04:00
Laís Tomaz 86a2feb389 Add ensureScrollability option to scrollTo command (#8003)
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2020-07-20 11:59:32 +06:30
Brian Mann a491d5169a Merge branch 'develop' into v5.0-release
# Conflicts:
#	circle.yml
#	packages/server/test/unit/browsers/firefox_spec.ts
2020-07-17 18:51:52 -04:00
Gleb Bahmutov e695d59ac8 cy.clock accepts Date argument
and expand clock and tick jsdoc comments (#7789)

Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2020-07-17 15:34:33 -04:00
Kukhyeon Heo 4dd30a6003 then() returns correct type when undefined is used. (#7997) 2020-07-16 09:48:20 -04:00
Gleb Bahmutov ef2363ea78 cli: expose method that parses cypress run CLI logic (#7798)
Co-authored-by: Zach Bloomquist <github@chary.us>
2020-07-14 15:39:17 -04:00
Kukhyeon Heo 8971ad1fa4 Update blob-util to 2.0.2 (#7795) 2020-07-07 11:58:51 +06:30
Kukhyeon Heo 9e754d526b TS: separate Window type for application under test (#7806)
Co-authored-by: Oliver Joseph Ash <oliverjash@gmail.com>
2020-07-06 09:38:02 -04:00
Jennifer Shehane 639df99036 Rename uses of term 'whitelist' (#7782)
* Rename non-user facing instances of whitelist

* Rename server option 'whitelist' to 'ignore'

* Update use of whitelist with server to throw instead of warn

* Rename Cypress.Cookies.defaults 'whitelist' option to 'preserve'

* fix circle yml parameter parsing consistent

* compose cloning an external repo and switching to the NEXT_DEV_VERSION branch consistently

* add cypress org to repo parameter

* cd into the right dir before switching branches

* one line git checkout

* simplify passing repo

* cd into the right dir

* clone into the right dir

* oh my cd 101

* replace kitchen sink strings for 5.0.0

Co-authored-by: Brian Mann <brian.mann86@gmail.com>
2020-06-30 02:27:29 -04:00
Zach Bloomquist 0b4529bbdb feat: make cookies have sameSite key by default (#7790)
* feat: make cookies have sameSite key by default

BREAKING CHANGE: modifies the shape of Cookie objects

* update tests

* add deprecation notice

Co-authored-by: Brian Mann <brian.mann86@gmail.com>
2020-06-29 14:41:50 -04:00
Steve 768da16a5e feat: add quiet cli arg/module option (#7714)
* Option to disable Cypress the verbose results to stdout

--quiet mode to disable the verbose results to stdout
but still use specified formatter

* Update cli/schema/cypress.schema.json

Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>

* Cypress module support for --quiet

Cypress module support for --quiet

* Apply suggestions from code review

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

* Address feedback

Address feedback, thanks

Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
Co-authored-by: Zach Bloomquist <github@chary.us>
2020-06-22 11:10:35 -04:00
Jennifer Shehane f883590eff Update types to allow for alias 'key' for 'keys' with chai chainers (#7687) 2020-06-15 19:55:14 +06:30
Chris Breiding cf87458ba3 Fix issue where click hangs if subject has a shadow root and shadow dom support is not enabled (#7692) 2020-06-12 14:42:57 -04:00
Zach Bloomquist d3acf91ea6 fix(types): cy.wait yields previous subject (#7682) 2020-06-12 13:38:02 +06:30
Jennifer Shehane ae86622dd3 Update types for configuration values that allow string or false (#7674) 2020-06-12 09:54:25 +06:30
Ben Kucera 38cd381b10 replace reporter specPath usage with spec object from config (#7626)
* replace reporter specPath usages with spec object from config

* cleanup, fix specs, fix types tests
2020-06-09 13:46:09 -04:00
Kukhyeon Heo d0043ff4fd fix: Cypress.Commands.add Type Signature for @typescript-eslint/no-misused-promises rule (#7547) 2020-06-09 09:42:27 -04:00
James Garbutt a7ff8fddc2 add some shadow dom support (#7469)
Co-authored-by: Chris Breiding <chrisbreiding@gmail.com>
Co-authored-by: Gleb Bahmutov <gleb.bahmutov@gmail.com>
2020-06-08 13:05:32 -04:00
Ben Kucera 4cfcae28f0 feat: test config overrides (#5346)
* decaffeinate: Rename browser.coffee from .coffee to .js

* decaffeinate: Convert browser.coffee to JS

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

* temp 02/14/20 [skip ci]

* add beforeEachRestoreRunner to select specs, remove support file hook

* temp 03/03/20 [skip ci]

* fix more specs due to support file change

* fix errored spec

* add isInteractive config to many specs

* update yarn.lock

* use yarn.lock from develop

* fix nested suite configurations

* fix nested suite configurations 2

* force isInteractive in driver/support file

* update more specs to use test config format

* update more specs to use test config format 2

* update more specs to use test config format 3

* update more specs to use test config format 4

* update more specs to use test config format 5

* fix cli/types tests, unit tests

* cleanup

* allow .isBrowser to support array, use .isBrowser for per-test-config

* allow null browser test/suite config value

* temp 04/10/20 [skip ci]

* restore test originalTitle when skip due to browser

* add tests for per-test-config baseUrl

* update .isBrowser error message

* fix rerunning hooks on top navigation

* rename duplicate issue number

* up timeout for server/integration test

* change test to be more specific

* rename TestOptions, add baseUrl test, override xit xdescribe methods

* add tests for xit/xdescribe

* disable video for flaky e2e test

* fix lint-types, e2e snapshot

* try 2: fix rerun before/after hooks

* temp 04/29/20 [skip ci]

* 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

* perf: faster lookup for hooks without runnables

* fix afterAll hook switch logic

* backport to before/after fix

* backport to before/after fix 2

* fix noExit passed to e2e test inline options

* remove extra root afterhook check

* add issue link..twice

* cleanup function to arrows

* remove Cypress object proxying related code for certain utils

* use getTest() as we did previously

* remove Cypress object proxying related code for certain utils

* fix Cypress._RESUMED_AT_TEST access

* fix Cypress._RESUMED_AT_TEST access 2

* fix runner.getResumedAtTestIndex, state accesses

* fix firefoxgcinterval access

* fix arrow function

* fix firefoxgcinterval access

* try a simpler way to fix afterAll hook issue

* fix decaf after merge

* cleanup internal-types.d.ts

* fix internal-types

* fix comment, getTestFromRunnable signature

* remove unneeded lastTestInSuiteLogic

* fix after merge: many decaffed specs, typedefs

* minor cleanup

* fix typedefs: add taskTimeout

* minor typedef fix, fix more specs modifying config()

* fix e2e snapshot

* fix flake: waiting_spec cancel outstanding XHR between tests

* fix flake

* change config mutation logic, add tests, update typedefs

* add env support to testConfigOverride

* fix specs: remove isInteractive override, add to beforeEach

* move testConfigOverride to file

* finish moving local config logic to cy.js

* fix typedefs cypress.d.ts

* fix minor minor dtslint

* minor spec cleanup

* chunk: typescript spec fixes, bind Cypress.$

* apply chunk: typescript spec fixes, bind Cypress.$

* fix stop-only

* fix stop-only 2

* extend the jqueryProxyFn in the constructor

* remove experimental code

* rename spec files for overrides, cleanup

* rename snapshots + tests to match updated test config overrides

* fix firefox flake: navigation_spec

Co-authored-by: Brian Mann <brian.mann86@gmail.com>
2020-06-04 11:26:11 -04:00
Kukhyeon Heo 128f2eb69e Add type for Cypress.automation (#7573) 2020-06-04 21:34:33 +06:30
Ben Kucera f93f46cde8 fix typedefs for cy.screenshot options, Cypress.log (#7445) 2020-06-03 12:26:59 -04:00
Ben Kucera f6613bd6fc fix typedefs: add taskTimeout to cypress config (#7521) 2020-05-29 10:14:25 -04:00
Hossam Magdy 071c5c74c6 feat(driver): Add support for encoding option in cy.request() (#7382) 2020-05-26 15:13:32 -04:00
Gleb Bahmutov 0dbd6304c8 Split types files again (#7403) 2020-05-18 19:25:52 -04:00
Gleb Bahmutov 2e5bb50706 Update a few missing TS types in CLI to get Kitchensink types check to pass (#7401) 2020-05-18 18:02:54 -04:00
Zach Bloomquist a854089c77 fix(types): use SinonStatic for Cypress.sinon type (#7398) 2020-05-18 14:31:45 -04:00
Gleb Bahmutov a2c0bc3e3e include CLI TS types in a way to avoid clashing with Jest (#7352) 2020-05-15 17:31:22 -04:00
Zach Bloomquist 6960f7cd78 Rewrite JS/HTML using AST-based approach (#5273)
* Add winPropAccessor to security.js, remove other replacers

* Add start of Cypress.resolveWindowReference

* Add regexes for dot and bracket access

* Some security_spec tests pass with new injection

* Add resolveWindowReference unit tests

* Old security_spec now passes with resolveWindowReference

* Inject stub resolveWindowReference so proxy still works outside of Cypress

* wip: rewrite HTML + JS with tokenizer

* Move to using esprima + hyntax to rewrite JS + HTML

* remove comment; oneLine makes the whole thing commented

* Fix tests, apple.com edge case

* wip: add getOrSet

* Revert "wip: add getOrSet"

This reverts commit a5c647c00f.

* release 3.5.0 [skip ci]

* use recast to replace window property accesses

* replace assignments to top properly

* fix yarn.lock

* bump deps

* update integration tests

* remove old security ts?

* fix integration spec

* always ignore js interception failure

* use globalThis instead of window

* add experimentalSourceRewriting flag

* restore regex-writer spec

* fix types

* update config_spec

* add source rewriting spec

* cleanup

* simplify rewriting logic, move rules into rewriter package

* create threaded rewriting tool for non-streaming use

* update @packages/rewriter to use threads for async

* use async rewriting where convenient

* add worker-shim.js

* add performance info to debug logs

* properly handle +=, -=, ...

* add proxy, rewriter to unit-tests stage

* cleanup

* use parse5 to rewrite HTML, strip SRI

* update tests

* reorganization, cleanup

* rewrite ALL parent, top identifiers except in a few cases

* handle many JS edge cases

* ensure parse5@5.1.1 is installed

* update yarn.lock

* update tests

* add debugging, add tests

* add attempted repro for .href issue

* implement source maps + extending inline source maps

* update opts passing in proxy layer

* fix sourcemap naming structure

* update tests to account for sourcemaps

* sourcemap tests

* remote source maps work

* comment

* update rewriter tests

* clean up TODOs in resolveWindowReference

* remove @types/nock

* clean up todos in deferred-source-map-cache

* fix rewriter build script

* fix concatStream import

* bump expectedresultcount

* clean up js-rules

* threading improvements, workaround for Electron segfault

* no visit_spec for now

* fix 6_visit_spec

* update MAX_WORKER_THREADS

* add repro for #3975

* cleanup

* cleanup

* make better use of namedTypes and builders

* get rid of the horrific closureDetectionTernary

ast-types keeps track of scope, so it is unneeded

* fix #3975, #3994

* add x-sourcemap, sourcemap header support

* snap-shot-it 7.9.3

* add deferred-source-map-cache-spec

* add tests

* Throw error in driver if AST rewriting fails

* Fix "location = 'relative-url'"

* fix max recursion depth

* slim down some fixtures

* fix window.location usage

* don't mess with `frames` at all

* no integration tests

* skip testing apple.com for now

* update wording: regex-based vs. ast-based

* skip real-world tests for now

* add some padding to process.exit workaround

* fix resolvers_spec

* fix html-spec

* cleanup

* Update packages/rewriter/lib/js-rules.ts

* Update packages/driver/src/cypress/resolvers.ts

* just import find by itself

* privatize typedefs for Cypress.state, remove .gitignore, remove dead code

Co-authored-by: Ben Kucera <14625260+Bkucera@users.noreply.github.com>
2020-05-11 12:54:14 -04:00
Gleb Bahmutov 627c9deb08 add TS types for partial config options (#7239) 2020-05-07 10:39:31 -04:00
Xander Dumaine 5a64934c66 Correct typing of CypressRunResult::runs (#6127)
* Add a type for CypressFailedRunResult distinct from CypressRunResult

* add back @example for detecting cy run failure

* remove trailing whitespaces found in dtslint

Co-authored-by: Joseph Weissman <61561354+CypressJoseph@users.noreply.github.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2020-04-14 15:17:13 +06:30
Zach Bloomquist b6703aaec7 Add support for sameSite in cookie-related commands (#6828)
* add experimental feature for sameSite

* allow experimental descriptions to render markdown

* sameSite support mostly working

* also strip sameSite from setCookie yielded value

* don't use `unspecified` - let browser set default

* add tests

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

* decaffeinate: Convert cdp_automation_spec.coffee to JS

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

* cleanup cdp_automation_spec.ts

* update unit tests

* update settings_spec to not render as markdown

* user-friendly error for insecure SameSite=None

* fix styling

* fix markdown renderer

* update types + schema

* use renderInline

* update experiment summary

* bind renderFn to md
2020-03-27 10:04:50 -04:00
Gleb Bahmutov 095e2a3550 add tag to Cypress NPM module API options (#6796) 2020-03-25 15:57:09 +06:30
Kukhyeon Heo ee494d04ee Added TypeScript type checker + Fixed type errors. (#5780)
* Added type_check.js

* Now checks cli, too.

* Ignored a line that should fail.

* Removed cli shims and post-install.

* Updated @types/chai to fix type error.

* Fixed keyboard type errors.

* Updated typescript to 3.7.2 to fix window.Node error in dom/document.

* Removed tsconfig errors that caused type errors in reporter and runner.

* Ignored error test by dtslint. Becaust it's done by type_check.js

* Added npm command.

* Added it to CI.

* Added skipLibCheck option.

* Removed checking chai folder existence.

copy of chai is unnecessary.

* Added 'ignore-progress' option for CI.

* Show success message when type check is finished successfully.

* Use ignore-progress option on CI.

* Moved type definitions from devDependencies to dependencies.

* Fixed new type errors after rebase.

* Updated type errors.

* Removed cli. Because its types are checked by dtslint.

* type_check -> type-check for consistency.

* Updated json-schema.

* Updated blob-util.

* Fix wrong command in CI.

* Revert "Updated blob-util."

This reverts commit e46549af54.
Because it's a breaking change.

* Remove copies of @types if exists.

* Fix stream buffer type error.

* Fix type errors in ui-components.

* Fix type failure.

* Fix lint error.

* Fix type errors

* Regenerate yarn.lock

* Fix type error.

* Fix type failures.

Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Gleb Bahmutov <gleb.bahmutov@gmail.com>
2020-03-17 11:01:31 +06:30
Jennifer Shehane 28fa3c7421 Add more checks for el existence before traversing up parent els (#6708)
* add check within getFirstStickyPositionParent for $el[0] to exist

- pull out check for undefined or html/body/doc element into a shared
elements method.

* prevent more checks on undefined parents & els causing getComputedStyle to throw

* yarn-lock

* Expand isUndefinedOrHTMLBodyDoc to Cypress.dom + add types

* Add unit tests for isUndefinedOrHTMLBodyDoc method

* yarn-lock

* move 'el[0]' existence check to below other checks (right when it's needed)

* yarn-lock
2020-03-16 20:34:49 +06:30
Gleb Bahmutov 333ab85324 add Cypress.sinon type (#6725) 2020-03-16 09:17:05 -04:00
Joseph Weissman c5c484e272 Improve types for cy.its() with property paths (#6667)
Improve types for cy.its() with property paths
- provides additional signature for `cy.its()`
- adds kitchen sink examples for path-based property access
- improve typing for its/invoke
2020-03-11 11:00:19 -04:00