Commit Graph

11716 Commits

Author SHA1 Message Date
Brian Mann 3ec7ccee28 debug perf tests, write har results to circle artifacts (#3869)
* debug perf tests, write har results to circle artifacts

* increase timeout

* sanitize the har filename

* move the catch block below the then - so it's not run twice. only catch ECONNREFUSED

- fix merge conflicts
2019-04-03 00:07:33 -04:00
Jennifer Shehane f06c72b6d2 remove 'dangerouslySetInnerHtml' from test error componant (#3862)
- This causes any html elements in the error message to be actually
rendered as html elements instead of printing within the err message.
- Will refactor this later as part of err-templates work
https://github.com/cypress-io/cypress/pull/3795
- Add simple test to ensure html is properly escaped for err messages
2019-04-02 19:05:32 -04:00
Zach Bloomquist 44da3eb65a Move proxy deps to @cypress namespace, use cypress.io urls for tests (#3860)
* debugging-proxy -> @cypress/debugging-proxy

* server: move perf urls to cypress.io, also test http perf

* update low water mark for CI

* server: run perf tests on vanilla chrome proxy first to establish baseline for real tests

* fix tests
2019-04-02 19:04:22 -04:00
Brian Mann 6022cb5a6e bump the node_modules cache for driver + server 2019-04-02 19:01:24 -04:00
Zach Bloomquist dce1e4e829 Downgrade parse-domain@2.1.7 -> 2.0.0 (#3867)
* driver, server: downgrade parse-domain@2.1.7 -> 2.0.0

* server: add parsedomain test for http://dev.classea12.beta.gouv.fr
2019-04-02 18:45:36 -04:00
Brian Mann a3f66998d8 install from cypress.tgz 2019-04-02 17:43:24 -04:00
Chris Breiding bb5bb33355 add project id to reporter cypress.json (#3868) 2019-04-02 16:22:27 -04:00
Brian Mann 01667ec1dc run the reporter cypress integration tests in circle 2019-04-02 14:51:32 -04:00
Brian Mann 527eda21bb cache packages/network node_modules 2019-04-02 14:43:30 -04:00
Brian Mann c830ce7317 bump cli + server npm modules version in circle 2019-04-02 14:43:30 -04:00
Dickson Tan df01397208 Improve accessibility for screen readers (#3851)
* reporter: add accessible labels for header controls

* Add labels for the refresh runs list and selector playground buttons

* Make the Collapsable and Test components screen reader accessible and keyboard operable, move the visually-hidden style to the root stylesheets

* Correct import

* Write tests for expand/collapse of tests + suites

* Add instructions on how to run reporter tests in Cypress


Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2019-04-02 13:29:44 +06:30
Brian Mann 1aa397f830 bump dep again 2019-04-02 00:05:08 -04:00
Brian Mann 2001b11065 bump dep in CLI too 2019-04-01 23:04:50 -04:00
Brian Mann 883efb6e16 bump get-windows-proxy package to prevent dep bloat in osx/linux 2019-04-01 23:04:21 -04:00
Brian Mann a998b98058 Fix typescript binary building (#3858)
* enable esModuleInterop and fix typescript errors

* set typescript as root dep, use bin-up for tsc

* fix network package deps, add typescript build process

* add packages/server build process for typescript

* fix launcher exports

* formatting

* build the binary in this branch

* server: import in a stubbable way

* launcher: import stuff so it can be stubbed

* network: make stuff stubbable

* clean up imports

* network: let evil dns override dns.lookup


Co-authored-by: Zach Bloomquist <github@chary.us>
2019-04-01 20:08:19 -04:00
Zach Bloomquist 82e3b6ac4d Set form: true when using form Content-Type and object body (#3440)
* driver: set form: true when using form content-type and object body

* driver: name the complicated content type logic

* oops

* some cleanup for readability and added edge-case coverage


Co-authored-by: Brian Mann <brian.mann86@gmail.com>
2019-04-01 09:40:17 -04:00
Brian Mann 1b28430e79 release 3.2.0 [skip ci] 2019-04-01 05:17:17 -04:00
Zach Bloomquist 3ce1aecc2e Prevent EISDIR when trying to load directories as fixtures (#3740)
* server: prevent trying to load directories as fixtures
2019-04-01 05:11:19 -04:00
Zach Bloomquist c1a345dce2 Improved proxy support (#3531)
* https-proxy: unused file

* server: wrap all https requests that use a proxy

* server: use request lib in ensureUrl if proxy is in use. this makes runs tab work behind a proxy

* electron: pass --proxy-server to app itself, so the embedded github login page works

* cli: first attempt at env vars from windows registry

* cli: api cleanup

* cli: lint

* cli: fix crash on no proxy, add tests

* add desktop-gui watch to terminals.json

* cli: pass along --proxy-source

* electron: pass --proxy-bypass-list too

* server: whitelist proxy* args

* cli: better wording

* desktop-gui: display proxy settings

* extension: force proxy [wip]

* extension: finally, i am victorious over coffeescript

* extension: add -loopback to bypasslist

* extension: revert changes

Revert "extension: force proxy [wip]"

This reverts commit 3ab6ba42a763f25ee65f12eb8b79eb597efc9b11.

* desktop-gui: skip proxysettings if there aren't any

* https-proxy, server: proxy directConnections using https-proxy-agent

* https-agent: pool httpsAgents

* https-proxy: work when they're not on a proxy

* https-proxy: ci - use agent 1.0

* https-proxy: tests

* desktop-gui: hide proxy settings when not using proxy

* https-proxy: pass req through to https-proxy-agent callback

* cli: use get-windows-proxy

* desktop-gui: always show proxy settings

* server: use get-windows-proxy

* electron, server: supply electron proxy config when window launched

* server: fix

* https-proxy: cleanup

* server: clean up ensureUrl

* https-proxy: cleanup

* cli: fix

* cli: fix destructuring

* server: enable ForeverAgent to pool HTTPS/HTTP connections

#3192

* server: updating snapshot

* https-proxy: don't crash, do error if proxy unreachable

* https-proxy:

* get-windows-proxy@1.0.0

* https-proxy: use proxy-from-env to decide on a proxy for a url

* server: fallback to HTTP_PROXY globally if HTTPS_PROXY not set

* server: proxy args test

* cli: add proxy tests

* cli: add test that loadSystemProxySettings is called during download

* cli, server: account for the fact that CI has some proxy vars set

* https-proxy: ""

* cli, https-proxy, server: ""

* desktop-gui: update settings gui

* desktop-gui: cypress tests for proxy settings

* server: strict undefined check

* cli, server: move get-windows-proxy to scope, optionalDeps

* server, cli: use new and improved get-windows-proxy

* cli, server: 1.5.0

* server: re-check for proxy since cli may have failed to load the lib

* server, cli: 1.5.1

* server: NO_PROXY=localhost by default, clean up

* https-proxy: disable Nagle's on proxy sockets

\#3192

* https-proxy: use setNoDelay on upstream, cache https agent

* https-proxy: test basic auth

* https-proxy: add todo: remove this

* server: add custom HTTP(s) Agent implementation w keepalive, tunneling

* server: typescript for agent

* add ts to zunder

* server: more ts

* ts: add missing Agent type declaration

* server: create CombinedAgent

* server: use agent in more places

* ts: more declarations

* server: make script work even if debug port not supplied

* server: begin some testing

* server, ts: agent, tests

* server: test

* server: agent works with websockets now

* server: update snapshot

* server: work out some more bugs with websockets

* server: more websockets

* server: add net_profiler

* https-proxy: fix dangling socket on direct connection

* server: fix potential 'headers have already been sent'

* https-proxy: nab another dangler

* server: update test to expect agent

* https-proxy: fix failing test

* desktop-gui: change on-link

* server: add tests for empty response case

* server: tests

* server: send keep-alive with requests

* server: make net profiler hook on socket.connect

* server: only hook profiler once

* server: update tests, add keep-alive test

* server: only regen headers if needed

* server: move http_overrides into CombinedAgent, make it proxy-proof

for #112

* server: update snapshot

* server: undo

* server: avoid circular dependency

* https-proxy, server: use our Agent instead of https-proxy-agent

* server: add dependency back

* cli: actually use proxy for download

* server, launcher, ts: typescript

* Revert "server, launcher, ts: typescript"

This reverts commit d3f8b8bbb6.

* Revert "Revert "server, launcher, ts: typescript""

This reverts commit 818dfdfd00.

* ts, server: respond to PR

* server, ts: types

* ts: really fix types

* https-proxy, server: export CA from https-proxy

* agent, server, https-proxy: move agent to own package

* agent => networking, move connect into networking

* fix tests

* fix test

* networking: respond to PR changes, add more unit tests

* rename ctx

* networking, ts: add more tests

* server: add ensureUrl tests

* https-proxy: remove https-proxy-agent

* server: use CombinedAgent for API

* server: updates

* add proxy performance tests

* add perf tests to workflow

* circle

* run perf tests with --no-sandbox

* networking, ts: ch-ch-ch-ch-changes

* server, networking: pr changes

* run networking tests in circle

* server: fix performance test

* https-proxy: test that sockets are being closed

* https-proxy: write, not emit

* networking: fix test

* networking: bubble err in connect

* networking: style

* networking: clean p connect error handling

* networking => network

* server: make perf tests really work

* server: really report

* server: use args from browser

* server: use AI to determine max run time

* server: load electron only when needed


Co-authored-by: Brian Mann <brian@cypress.io>
2019-03-31 23:39:10 -04:00
Maarten Claes c4e90956de Allow timeout on hash (#3844)
Allow timeout on hash according to the documentation (https://docs.cypress.io/api/commands/hash.html#Arguments).
2019-03-29 12:14:34 -04:00
Takuya HARA e2e454262b fix: trigger() accepts arbitrary event properties in options (#3809) 2019-03-26 15:59:57 -04:00
Jennifer Shehane e4bb945541 remove string as valid type for match chainer (#3787)
Co-authored-by: Zach Bloomquist <github@chary.us>
2019-03-25 18:16:34 +06:30
Gleb Bahmutov 29843ceee7 add zunder to team dependencies 2019-03-22 14:23:37 -04:00
renovate[bot] a3fae7d9ed chore(deps): update css-element-queries to 1.1.1 🌟 (#3796)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
2019-03-22 14:24:36 +06:30
renovate[bot] 8d0aea99f1 chore(deps): update zunder to 6.4.1 🌟 (#3797)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-03-22 12:39:14 +06:30
Gleb Bahmutov 1b3ab6a4d1 create separate groups of packages (#3801) 2019-03-21 16:08:56 -04:00
Lila Conlee 1e87dbcd4d Separate test error into separate component (#3457)
* wip: add initial work for md in test error messages

* Get basic external open from errors opening

* Only linkify 'https://on.cypress.io' addresses

* Add link styling for test errors

* Fix reporter linting errors

* wip: working on adding tests

* Remove backticks from test errors in text terminal mode

* Begin adding markdown to test error messages

* Add styles for test error messages

* Fix test error reporter specs

* Convert cypress test to js

* Revert "Begin adding markdown to test error messages"

This reverts commit 088bbc3994.

* Revert "Remove backticks from test errors in text terminal mode"

This reverts commit fe1595c4dd.

* Revert "Add styles for test error messages"

This reverts commit e155dec8a9.

* Update markdown rendering to only render docs links

* Add scripts for cypress reporter tests

* Remove docs link logic

* Remove test for docs link clicking

* Make test error a functional component
2019-03-21 14:18:10 -05:00
Gleb Bahmutov e0042a2009 Upgrade snap shot it to v6 in CLI package (#3761)
* update cli_spec

* linting

* update named snapshot to have 1 to match snap-shot-it v5

* update errors spec

* linting

* update snapshot use in download_spec

* update install_spec snapshot

* linting

* update use of snapshot in unzip_spec

* update snapshot use in verify_spec

* enable all CLI specs

* no need to skip snapshot sorting

* upgrade snap-shot-it to v6 in root

* update snap-shot-it to v6 in packages/server

* need to add build script to transpile

* update cypress_spec snapshot use with names
2019-03-21 10:39:28 -04:00
Jennifer Shehane a6207bd213 set prConcurrentLimit to 1 so it does not auto schedule prs 2019-03-21 15:51:55 +06:30
renovate[bot] 1140c57d1a chore(deps): update mobx-react-devtools to 6.1.1 🌟 (#3794) 2019-03-21 15:47:06 +06:30
renovate[bot] 3251d644ae chore(deps): update enzyme-adapter-react-16 to 1.11.2 🌟 (#3788) 2019-03-21 15:46:23 +06:30
renovate[bot] 8f88ee5799 chore(deps): update dependency electron-builder to version 20.39.0 🌟 (#3781)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-03-21 14:09:02 +06:30
renovate[bot] fd50cfd538 chore(deps): update dependency backbone to version 1.4.0 🌟 (#3532)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-03-21 12:45:14 +06:30
Jennifer Shehane f347314ff0 decaffeinate reporter specs (#3765) 2019-03-21 12:33:37 +06:30
Jennifer Shehane 487da2b4ed generate master issue so we can close the reopening renovate prs 2019-03-21 12:04:21 +06:30
renovate[bot] 94cf104f59 chore(deps): update @babel/core to 7.4.0 🌟 (#3763)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-03-21 11:33:30 +06:30
renovate[bot] 96d91e2f7f chore(deps): update dependency dtslint to version 0.5.5 🌟 (#3620)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-03-21 10:58:15 +06:30
Casey Primozic f3135fe170 Fix parsing environment variables with empty values (#3743)
Fixes #3742

 * When parsing `--env` arguments containing variables with empty values (a valid pattern), Cypress crashed due to trying to `.split()` on an `undefined`.  For example, `cypress run --env="USERNAME=,PASSWORD="` would crash the application.
 * This commit changes the regular expression used to parse environment variables to use a `.*` rather than a `.+`.  This will initialize environment variables that are supplied without values to an empty string.  Since empty strings are falsy in JavaScript, this should work fine with users defaulting to hardcoded values in the case that environment variables aren't supplied (the use case that I was trying to create when I encountered this bug)

Previous behavior:

```sh
"USERNAME=,PASSWORD=".split(',').map(pair => pair.split(/=(.+)/))
// [["USERNAME="], ["PASSWORD="]]
```

New behavior:

```sh
"USERNAME=,PASSWORD=".split(',').map(pair => pair.split(/=(.*)/))
// [["USERNAME=", "", ""], ["PASSWORD=", "", ""]]
```

<!--
Thanks for contributing!

Please explain what changes were made and also
reference any issues that were fixed with #[ISSUE]
-->
2019-03-20 10:29:10 -04:00
Gleb Bahmutov 1a7f631032 Reject promise stub with an error instance (#3751)
* reject promise stub with Error instance

* pass linter
2019-03-20 09:47:13 -04:00
Paweł Lula 9b889b678a Fix selector playground tooltip (#3668)
* Fix selector playground tooltip

* Add cursor pointer to selector playground highlight
2019-03-20 10:17:27 +06:30
Paweł Lula d1eb7eead3 Improve desktop GUI folder nesting ui (#3711)
* Improve desktop gui folder nesting ui

* Fix folder/file icon for long names

* Fix broken e2e tests

* Add e2e tests for nested levels
2019-03-19 11:20:00 +06:30
Zach Bloomquist 680de598bf driver: log options to cy.visit() (#3735) 2019-03-19 11:05:23 +06:30
Gleb Bahmutov 4be880550f chore: add note about issues comments 2019-03-15 11:02:17 -04:00
Brian Mann 13dcf4d7bf dont echo appveyor commit message... [skip ci] 2019-03-15 07:25:50 -04:00
Jennifer Shehane 0e3289debd check that item.first function exists before calling (#3084)
* check that item.first function exists before calling

- should help with support of jQuery legacy
- fix issue introduced by
https://github.com/cypress-io/cypress/pull/2870

* Add test for checking item existence before calling item.first

* remove jquery 2.2.4 from git...

* improve the detection of jquery instances

- this fixes improperly detecting when any instance has a jquery
property

* really go back down to 3 machines this time


Co-authored-by: Brian Mann <brian.mann86@gmail.com>
2019-03-15 06:33:51 -04:00
Brian Mann 602d7f49e1 bump back down to 4x parallelization 2019-03-15 03:35:12 -04:00
Jennifer Shehane d7d9e5f9fb Downgrade cachedir and commander packages back to versions that support Node 4
- snapshots have only updated whitespace 👍
2019-03-15 12:31:33 +06:30
Brian Mann ef3df789e7 add two more machines in parallel for driver tests 2019-03-15 01:43:18 -04:00
Zach Bloomquist 4c65c97f18 Spawn GitHub login with a new user agent to dismiss warning banner (#3695)
* server: spawn GitHub Login with a new user agent to dismiss the warning banner

* server: use regex to modify existing ua string

* server: add tests for modifying UA

* oops
2019-03-15 01:03:59 -04:00
Zach Bloomquist 19a63a0f25 Only listen on loopback interfaces (#3666)
* https-proxy, server: only listen on loopback for ipv4/v6

* server: use supplied port

* https-proxy, server: remove ::1 listener

* server: add test that all servers only listen on lo, not other interfaces
2019-03-15 01:01:50 -04:00