* 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
* 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>
* 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>
* 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>
* 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>
* 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
* 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
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]
-->
* 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>
* 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
* 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
* implemented fix draft
* removed an extra comment
* fixed two colliding variable names
* actual behaviour for home/end is begin/end of line, not paragraph
* refactored the selection method to use only selection.modify
* added some unit tests for {home}
* added more tests for home and end
* disclaimer for selection.modify API
* driver, server: visit with a POST [wip]
* driver, server: allow sending body, headers, method in .visit
* driver: test: doublequotes
* driver: api cleanup, error handling
* driver, server: tests
* driver: only recognize visit(opts) if options is sole argument
* server: don't confuse options
* driver: validate method passed to 'visit'
* driver: validate that headers is an object
* driver: shows URL and not object in command log (fixes part of #678)
* cli: add new cy.visit(opts) invocation
- close#3549
- obj.is and obj.find is not a function when used on regular el - needs
to be jQuery el
**Tests**
- [x] Write test
I can't figure out where the tests for these chai overrides are. Any help?