Commit Graph

12661 Commits

Author SHA1 Message Date
Brian Mann ec70611be2 Merge pull request #6545 from cypress-io/issue-5941-decaf-prep
Decaffeinate plugins/index.coffee and plugins e2e test
2020-02-24 14:54:06 -05:00
decaffeinate 230072ee0a decaffeinate: Run post-processing cleanups on index.coffee 2020-02-24 14:20:02 -05:00
decaffeinate 708f4683eb decaffeinate: Convert index.coffee to JS 2020-02-24 14:14:11 -05:00
decaffeinate ad5d4eb7d3 decaffeinate: Rename index.coffee from .coffee to .js 2020-02-24 14:14:09 -05:00
renovate[bot] eab801ae3f chore(deps): Update dependency eslint to version 6.8.0 🌟 (#6509)
* chore(deps): Update eslint to 6.8.0 🌟

* fix missing dangling commas for linter

* fix missing dangling commas for linter

* more lint fixes

* yarn lock

Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
2020-02-25 00:09:47 +06:30
Jennifer Shehane 844a1bd12c Update error message to be more specific about same-origin poli… (#6118)
* update error message to be more specific about same-origin policy

* Update wording in corresponding tests

* Update link so that it uses correct wording

* Fix wording of erorr message

* Update packages/server/__snapshots__/6_web_security_spec.coffee.js

* Update packages/driver/src/cypress/error_messages.coffee

* Update packages/driver/src/cypress/error_messages.coffee

Co-Authored-By: Zach Bloomquist <github@chary.us>

* Update packages/driver/src/cypress/error_messages.coffee

Co-Authored-By: Zach Bloomquist <github@chary.us>

* Update packages/driver/src/cypress/error_messages.coffee

Co-Authored-By: Zach Bloomquist <github@chary.us>

* Update packages/driver/src/cypress/error_messages.coffee

Co-Authored-By: Zach Bloomquist <github@chary.us>

* Update packages/driver/src/cypress/error_messages.coffee

Co-Authored-By: Zach Bloomquist <github@chary.us>

* update tests to match new copy

* updated error messaging to be more specific about what cross origin means

* missing snapshot updates

* Add specific messaging for each origin scenario

* Update packages/driver/src/cypress/error_messages.coffee

Co-Authored-By: Zach Bloomquist <github@chary.us>

* Update packages/driver/src/cypress/error_messages.coffee

* Update packages/driver/src/cypress/error_messages.coffee

Co-Authored-By: Zach Bloomquist <github@chary.us>

* Update packages/driver/src/cypress/error_messages.coffee

Co-Authored-By: Zach Bloomquist <github@chary.us>

* Update packages/driver/src/cypress/error_messages.coffee

Co-Authored-By: Zach Bloomquist <github@chary.us>

* Update packages/driver/src/cypress/error_messages.coffee

Co-Authored-By: Zach Bloomquist <github@chary.us>

* Update packages/driver/src/cypress/error_messages.coffee

Co-Authored-By: Zach Bloomquist <github@chary.us>

* Update different origin error to use 1 shared error message and list all differences when necessary.

* Update packages/driver/src/cypress/error_messages.coffee

Co-Authored-By: Zach Bloomquist <github@chary.us>

* indent the portions of error that are most important for better readability

* yarn lock

* missed incorrect text in test

Co-authored-by: Zach Bloomquist <github@chary.us>
2020-02-24 14:19:59 +06:30
Chris Breiding 14c84496f1 Upgrade front-end dependencies (#6522)
* upgrade front-end deps

* fix react errors/warnings
2020-02-21 16:49:14 -05:00
Josef Biehler 329ec791a8 check if parentNode is document-fragment and if yes, stop recursion. … (#5528)
* check if parentNode is document-fragment and if yes, stop recursion. otherwise .parent() will yield no element because a document-fragment has no parent

* Add a failing spec for Salesforce lightning components

* update code to check that we are defined before continuing in loop

Co-authored-by: Randall Kent <therandallkent@gmail.com>
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
2020-02-22 00:47:18 +06:30
Jennifer Shehane 8cdaff00b6 downgrade execa to 2.0.0 (which supports Node.js 8.0.0) (#6513) 2020-02-22 00:39:52 +06:30
Jennifer Shehane e0736b1358 remove 'electron' as known browser family during validation err… (#6517)
* remove 'electron' as known browser family during validation error.

* fix tests that had unexpected results because fixture has invalid family name set

* whoops, missed updated one family in the spec

* missed another snapshot change
2020-02-21 10:41:18 +06:30
Zach Bloomquist 433e6d4ed3 https-proxy decaf cleanup 2020-02-20 13:09:40 -05:00
decaffeinate 900286b1fb decaffeinate: Run post-processing cleanups on ca.coffee and 11 other files 2020-02-20 13:09:40 -05:00
decaffeinate 34b52074c1 decaffeinate: Convert ca.coffee and 11 other files to JS 2020-02-20 13:09:40 -05:00
decaffeinate 84a2caa6e8 decaffeinate: Rename ca.coffee and 11 other files from .coffee to .js 2020-02-20 13:09:40 -05:00
Gleb Bahmutov 070fceff20 add "cypress info" command (#6372)
* WIP: add cli info command to list detected browsers

* print found browsers

* change to list

* start work on info command calling into binary

* move info command into binary

* print OS info during cypress info command

* add binary cache path to info command

* add browser profile path

* add memory

* get browser profile path without partition

* pick real browsers as examples

* output same info as desired

* better names

* changed colors

* add list of cached binary versions

* do not put stable into name

* add underlined link

* conditionally show profile path, only if the folder exists

* do not list cached binaries

* human-friendly memory print

* print env proxy vars

* print CYPRESS_ env variables

* use _.sample

* update order

* store cypress info output on CI as HTML page artifact

* add percy CLI screenshots

* sanitize cypress info command

* store CLI snapshots in cli/visual-snapshots folder

* update cli unit snapshot

* add cli unit test

* start e2e testing for cypress info

* add test with proxy and cypress vars

* make sure we call the binary

* stricter start check

* start unit testing modes info

* test info mode browser print

* add test for profile path

* add cypress info command to test binary Circle job

* add cypress info to test-binary-as-specific-user circle

* print cypress info --dev on circle and on appveyor

* update .gitignore

* move error in environment load to debug
2020-02-20 10:54:25 -05:00
Zach Bloomquist 72c9c7dbe4 Validate mocha test results in a new stage (#6496)
* wip: validate mocha test results in a new stage

* clean up lerna run commands

* better logging of parse failures

* update expectedCount, integration test command

* revert package.json

* expect a variable amount of tests in e2e

* account for skipped tests

* static has no test script

* fix comparison

* really skip 4_window_open_spec

* fix expectedResultCount

* Update scripts/verify_mocha_results.js

Co-Authored-By: Zach Bloomquist <github@chary.us>

* assert at least 1 test ran by default, always set skipped

* summarize results at end

* verify more stages

* Revert "verify more stages"

This reverts commit dda1339b28.

Co-authored-by: Gleb Bahmutov <gleb.bahmutov@gmail.com>
2020-02-19 12:39:38 -05:00
Jennifer Shehane b92bd29571 Fix typos in error messages (#6508) 2020-02-19 23:17:41 +06:30
Kukhyeon Heo 189efd241b Fix the type of $$. (#6327)
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
2020-02-19 15:17:20 +06:30
Jennifer Shehane 3e3e44df69 Add note about bringing up breaking/API changes with team (#6425) 2020-02-19 00:22:42 +06:30
Kirby Cool b5c9572fd3 [driver] Fix xhr ballooning callback stack depth. (#5945)
* [driver] Fix xhr ballooning callback stack depth.

- Closes https://github.com/cypress-io/cypress/issues/5864

Cypress wraps xhr callbacks with an override.  However, in the current code, every time a callback getter is called, we replace the original memoized callback with the wrapper. Every time the getter is called, another wrapper is added, which in extreme cases (e.g. iterating over chunks of a long request body and calling `onreadystatechange` for each chunk) can cause "Maximum call stack size exceeded" errors.

This change resolves the issue by not overwriting the memoized callback in the getter. The setter

* Update xhr_spec.coffee

Co-authored-by: Zach Bloomquist <github@chary.us>
2020-02-18 12:44:14 -05:00
renovate[bot] 1d220d9758 chore(deps): Update dependency eslint-plugin-cypress to version… (#6491)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-18 16:11:44 +06:30
Zach Bloomquist dc794d63f9 release 4.0.2 [skip ci] v4.0.2 2020-02-14 18:31:23 -05:00
Zach Bloomquist 12204f44c1 Revert "test: add tests for special sequences {moveToStart} / {… (#6469)
This reverts commit 6ace4c54e0.
2020-02-14 17:21:32 -05:00
Brian Mann 7ac5e2b6e6 restore proper npm commands for testing other projects 2020-02-14 17:01:33 -05:00
Zach Bloomquist dd3b63aa0b Update project error UI (#6432)
* update default title to "an unexpected error occurred"

* show stack trace in error, if avail

* add "copy to clipboard"

* wrap browser errors

* add tests

* improve md formatting

* update desktopgui tests

* update
2020-02-14 16:29:51 -05:00
Zach Bloomquist 15c3e95429 Improve error experience when visiting outside of Cypress-launched browser (#6435)
* force websockets transport

* wip: ensure ws connections take place thru a known socket

* clean up yesterday's work

* remove dead code (request is undefined)

* update websocket tests

* add websocket tests

* update socket + server specs

* add token auth for file_server

* Fix cy.visit file_server

* restrict non-proxied URLs, serve error on runner URL non-proxied

* add e2e test for server splash page

* fix types

* use clientRoute, fix tests

* only run 6_non_proxied in electron

* use browser.path

* improve empty options type

* add ws assertions in e2e tests

* fix server_spec

* refactor socket whitelisting logic

* update server_spec

* respond to PR feedback

- added tests for non-clientRoute redirecting to clientRoute when not behind proxy
- cleaned up comments
- cleaned up logic in server.coffee
- moved error html to own file
- added unit test for socket whitelist + fixed removal bug
2020-02-14 16:21:36 -05:00
Ben Kucera b8d6a6d6ed fix pollution of :contains pseudo selector (#6434)
* fix overriding :contains pseudo selector

* dont inject livereload inside spec iframe...

* add issue comment
2020-02-14 16:13:41 -05:00
Chris Breiding 42cc6282bb Extract error methods from utils into error_utils (#6465)
* extract error methods from utils into error_utils

* yarn.lock

* fix dangling commas

* fixes

* fix error utils spec

* fix tests
2020-02-14 15:20:31 -05:00
Waldemar Penner 6ace4c54e0 test: add tests for special sequences {moveToStart} / {moveToEn… (#6203)
* test: add tests for special sequences {moveToStart} / {moveToEnd}
2020-02-14 20:14:38 +00:00
Brian Mann 1069310899 extract out ui-components dropdown (#6452)
* extract out ui-components dropdown

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

* yarn.lock changes

* fix issues with desktop-gui dropdown

* use ui-components dropdown in runner no-automation

* fix desktop-gui user dropdown

* fix tests

Co-authored-by: Chris Breiding <chrisbreiding@users.noreply.github.com>
2020-02-14 09:50:48 -05:00
decaffeinate 932617495d decaffeinate: Run post-processing cleanups on browser.coffee 2020-02-13 18:40:26 +00:00
decaffeinate bfa6f5457c decaffeinate: Convert browser.coffee to JS 2020-02-13 18:40:26 +00:00
decaffeinate 4189d8dd4a decaffeinate: Rename browser.coffee from .coffee to .js 2020-02-13 18:40:26 +00:00
Ben Kucera 14798042e8 fix: typedefs for isBrowser (#6448)
* fix: typedefs for isBrowser
2020-02-13 18:23:18 +00:00
Alejandro Estrada d9c83dcd4e Read additional optional GH actions environment variables (#6394)
* Update GH actions env vars

* Add GITHUB_REPOSITORY env

* Fix test

* Remove unused env

* Add GH branch

* Revert format changes

* Add new test
2020-02-13 12:41:07 -05:00
Zach Bloomquist 648ef18036 make request versions consistent (#6433) 2020-02-12 14:56:52 -05:00
Chris Breiding 49fb621598 Upgrade browserify preprocessor to 2.1.4 (#6419)
* bump browserify preprocessor to 2.1.4

* update browserify spec
2020-02-12 11:45:43 +06:30
Cecelia Martinez 4b75da5963 fixes broken links and typos outlined in issue-6373 (#6396)
* fixes broken links and typos outlined in issue-6373

* updates additional link for issue-6373

Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
2020-02-11 22:40:48 +06:30
Zach Bloomquist f523bfa844 Improve types + add tests in darwin launcher (#6376)
* clean up darwin detectors, stricter types

* add darwin launcher tests

* remove worktrees as submodules

* stricten up types around DetectedBrowsers

* fix linux helper spec types

* move detectByPath specs to appropriate location

* tsify spec_helper

* update sinon so we don't have to restore manually

* move sinon to devDeps in server

* update tests
2020-02-11 09:53:14 -05:00
Andrew Smith 0a6a2abcec Replace npm with yarn (#5555)
* enable using yarn

* enable lerna and yarn workspaces

No longer can reliably access node_modules via thei node_modules directory; yarn may optimize it via hoisting it up. This meant updating JS tasks that were copying files directly from node_modules directories. In these cases, pulled in a new package to resolve these correctly.

SCSS files remain impacted, but cannot easily import via JS. These paths have been modified, but it feels dangerous and incorrect to reach into a node_module to grab files like this.

Many prebuild steps were removed. I **think** the purpose of `check-deps-pre` is no longer needed, but need to confirm this.

* enabling test-unit script

removal of pretest-unit due to check-deps-pre

* removal of all  `check-deps` and `check-deps-pre`

I do not think these are needed anymore

* remove npm run all

Replaced by `lerna run` and `lerna run --scope`

* use yarn in circle CI

appveyor to soon follow

* yarn in appveyor

* remove need for bin-upplaces using bin-up have a dev dependency on some package; mostly mocha. This mocha package will be optimized by yarn workspaces by hoisting it into the root; which is effectively what bin-up usage was mimicing.

* replace npm run with yarn in package files

* replace explict paths to internal packages with yarn bin

* remove unecessary link packages script and references

* properly require package for mocha

* removing yarn test in this package as it was just a proxy for test-*

* yarn test in root now reflects what is run in circle ci

* relax yarn version requirement for circle ci

* @packages/cli is really just cypress

also run test in parallel via `yarn test`; it runs test in all 10 packages

* ensure postinstall is called before prebuild

yarn does not call postinstall when nothing has installed; such is the case when everything has been cached

* vscode config uses yarn

* cannot rely on which node_modules dir a package is in

find the right node_module dir via `resolve-pkg`

* further relax yarn version for OSX build in circle ci

* resolve failing test

Regarding direct access to node_modules

* node version in mac build not sufficient

ignoring check of node/yarn versions when installing

* preinstall script does not exist

I **think** the reason to not install packages' modules (the reason for `--ignore-scripts` may be irrelevant with yarn workspaces managing the packages)

* upgrade mocha that was using --file

`--file` was introduce in >=5

* scope test runs to correct packages

* explictly close connections; otherwise script hangs after tests run

* refactor so npm and npx commads can be created

npx is used to utlize lerna for running across all packages sans cli

* properly resolve socket.io-client node_module

We cannot reach directly into node_modules to grab the socket.io-client file. Furthermore, running it locally will require resolving from a different cwd, the repo root, as opposed to the package's dist directory.

The existence of the file deterimes whether we are building the binary or running locally.

* remove unnecessary arg in vscode debug config

enable debugging in @packages/server to troubleshoot failing test

* another npm command found to be changed to yarn

* properly print colors to terminal

`lerna run` does not appear to print colors to the terminal properly. Changed to leverage `lerna exec`

See https://github.com/lerna/lerna/issues/1168

* add missing test scripts to packages that have partially have them

'test', 'test-unit', 'test-watch', and 'test-debug'

This makes running them from the root easier and enables debugging via IDE on more packages

* properly patch package in yarn workspaces

* another package needing to postinstall

* use existing script over explicit lerna exec

* patches must be copied to dist

* return to building on postinstall

* do not hoist driver's packagesThere are too many places we need driver's packages to not be hoisted when testing. We have *.html files in test with script tags srcing node_modules.

* wait-on is used in circle-ci and needs to be a root dep

No longer hoisted by `@packages/driver`. This previously worked only because it was hoisted. Adding it to root properly.

* update documentation based on new ergonomics

* launcher has unit tests that should be runnable via top level task

* more concise way to run build within cypress scope

* fix for unit test that never seemed to work

`getPathToExample` is really `getPathToExamples`

* bust cache based on yarn.lock changing

* define intra-dependencies among packages

Due to the way we build the binary, all are considered dev dependencies.

* address `jquery.scrollto` mismatched jquery version

Tell yarn to explicitly resolve `jquery@3.1.1` for any dependencies and sub-dependencies. The root issue is that `jquery.scrollto` package specifies jquery as a dependency instead of a peer dependency (which is correct). Its jquery version is set to the `>=1.8` which then resolves to 3.4.1. In doing so, it will patch its jquery instead of ours; meaning that `$.scrollTo` is not defined.

* add/remove deps from renovate

- bin-up is gone in favor of yarn workspaces and lerna from root
- check-deps is gone in favor of `yarn check --integrity`
- lerna added

* few misc yarn lock updates

* hope that this may speed up build binary

installing several of the same dep in >1 package will likely be sped up using yarn due to its machine-wide caching.

* yarn pack prefix version with a `v`

* auto-run `yarn install` when deps become out of date

When switching to a branch with a different set of required deps, running any of the main top level tasks (as seen in the `./CONTRIBUTING.md` guide) will check for deps changes via `yarn check --integrity` and run `yarn` in root if deps are out of sync.

* add clean top level task, remove prebuild

install => build => prebuild => check => install === no good

* address code review to undo formatting changes

* favor default imports over deconstructing imports

* favor @package resolution; pr feedback

* include a specific revision

for some reason, it cannot resolve the original SHA `29dafed297142d3b8a9d8a01842cbdf249a98b72`

using the next closes SHA

* properly cache yarn packagesfollowed guide: https://circleci.com/docs/2.0/yarn/

* lower barrier for contributors to get started

relax node version to be 12.0.0 or higher; will use node version found in `.node-version` in CI

* updates required after merging latest development

was getting type errors when building. recreating the `yarn.lock` file seemed to resolve the issue.

* hidden dep on a specific type version in server

made dep explicit and now it can build.

* update request to patched version

non-breaking changes to request was updated in server, but not everywhere else. It appears that transitive deps were using the 2.88.0 request version instead of the updated one for the server package.

* missing commit from previous commit/merge

* do not force a higher version of yarn than the default on circleci

* exclude e2e.js helper from stop-only command

* trying to bust node_modules cache.https://github.com/yarnpkg/yarn/issues/6412#issuecomment-537787740

* incorrect quotation tick placement

* fix: properly postinstall parse-domain

Do not explicitly script the shell invocation of a dependency's postinstall (parse-domain). The dependency's node_modules may not be where the package thinks they are and are not properly resolved.

It appears that postinstall will automatically be called when installing with yarn.

* run all CI stages

* fix win-appveyor-build.js

* Update CONTRIBUTING.md

Co-Authored-By: Zach Bloomquist <github@chary.us>

* Update CONTRIBUTING.md

Co-Authored-By: Zach Bloomquist <github@chary.us>

* Update CONTRIBUTING.md

Co-Authored-By: Zach Bloomquist <github@chary.us>

* Server package watching a specific test works correctly.

* PR feedback

* Correctly use yarn to pack (to get package size)

* correct size calculation

`yarn pack` does not output the file name like `npm pack` does. Correct this by explictly setting the filename.

* PR feedback

* PR feedback

* update readmes and testing commands from them

* do not include this in default build

* yarn is now installed by default

https://github.com/appveyor/ci/issues/1852

* do not include server in `yarn` auto build

* a few more npm references changed to yarn

* Revert "run all CI stages"

This reverts commit 9256aed99f.

* Update circle.yml

Co-Authored-By: Zach Bloomquist <github@chary.us>

Co-authored-by: Zach Bloomquist <github@chary.us>
2020-02-11 12:40:07 +06:30
Zach Bloomquist 3007c4f354 Pass -no-remote when launching firefox (#6400)
* pass -no-remote when launching firefox

* use name-channel for profile directories in FF

* Revert "use name-channel for profile directories in FF"

This reverts commit dcfa147415.

* Move profiles into name-channel directories

* fix e2e test
2020-02-10 13:46:17 -05:00
Gleb Bahmutov fb77789615 do not inject performance tracking security context on Circle (#6401)
* do not inject performance tracking security context on Circle

* remove security context from e2e test jobs
2020-02-10 12:30:06 -05:00
Zach Bloomquist 7540a4feb0 release 4.0.1 [skip ci] v4.0.1 2020-02-07 18:54:30 -05:00
Ben Kucera b0801de282 fix(ff): set more default preferences, disable auto-updating pr… (#6374) 2020-02-07 17:33:51 -05:00
Zach Bloomquist ca46c1606f Handle errors during initial Marionette connection (#6370)
* use Promises driver and handle connection errors

* repin marionette-client dep

* --compilers... so our tests run....

* update firefox spec

* fix failing specs from tests not running

* update error with a hint

* fix the other on

* tests
2020-02-07 17:27:45 -05:00
Ben Kucera b5c21205d8 fix(ff): use fixed inputFPS instead of vfr to prevent dropped f… (#6368)
* fix(ff): use fixed inputFPS instead of vfr to prevent dropped frames
2020-02-07 17:16:00 -05:00
Greg Lahaye 434d23b132 Fix broken Screenshot link in cli/types/index.d.ts (#6360) 2020-02-07 15:07:04 -05:00
Zach Bloomquist 8fb27e12ab Detect 64-bit Firefox on Windows (#6367)
* detect x32 + x64 ff

* add unit tests for win browser detection

* stricter test
2020-02-07 15:05:00 -05:00
Yousaf Nabi c9d8b347ac Correct detection logic for Edge & Firefox Nightly (#6364)
Correct detection logic for Edge & Firefox Nightly on MacOSX
2020-02-07 15:03:19 -05:00
Oscar f66e25ac1e fix path typo for chromium mac (#6358) 2020-02-07 15:02:19 -05:00