Commit Graph

1822 Commits

Author SHA1 Message Date
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
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
Chris Breiding bb5bb33355 add project id to reporter cypress.json (#3868) 2019-04-02 16:22:27 -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 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
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
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
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
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] 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
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
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
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
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
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
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
Zach Bloomquist 9b8d4c2810 Make extension have a static ID so it can be whitelisted (#3674) 2019-03-15 00:50:53 -04:00
Zach Bloomquist 2f7de957b2 Support any valid HTTP method in cy.request (#3555)
* driver: support any valid method in cy.request

* driver: support stubbing any valid method

* driver: mysterious failing test

* commit for CI
2019-03-15 00:47:21 -04:00
Zach Bloomquist 5a0d8b5cfe Allow passing a list of space-separated specs to --spec (#3375)
* cli: add otherSpecs for varargs [wip]

* scripts: pass command-line args through to debugged command

* cli: parse space-delimited specs

* cli: undo unneeded

* cli: cleaned up parseVariableOpts, added warning

* cli: cleanup

* cli: add tests

* cli: glorious whitespace

* cli: a more robust test

* cli: better snapshot

* server: strip single-quotes around --spec arg

#2298
2019-03-15 00:42:46 -04:00
Ben Kucera 6a53b4bed1 allow .its to yield undefined (#3226)
* allow .its to yield undefined

* fix: undefined subject assertions bug

* move test to misc_spec

* fix up some tests
2019-03-15 00:37:44 -04:00
Silviu Alexandru Avram 2122320881 Add {home} and {end} to cy.type() (#3071)
* 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
2019-03-15 00:32:51 -04:00
Jennifer Shehane 559be7b991 cypress-example-kitchensink from 1.5.0 to 1.5.1 (#3700) 2019-03-13 16:45:55 +06:30
renovate[bot] 99877dcd56 chore(deps): update dependency @types/lodash to version 4.14.122 🌟 (#3680)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-03-11 17:16:09 +06:30
renovate[bot] 4444548cf2 chore(deps): update dependency @babel/core to version 7.3.4 🌟 (#3263)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
2019-03-11 11:45:31 +06:30
Jennifer Shehane cc5ccdfbe7 bump @babel/plugin-proposal-object-rest-spread (#3679) 2019-03-11 10:38:02 +06:30
Jennifer Shehane 2644cc8f36 bump tough-cookie (#3659)
- breaking change: no longer supports node version < 6
- bugfixes
2019-03-07 01:17:05 +06:30
Zach Bloomquist 4b060362e7 Fix automatically loading fixtures with more than one . in the name (#3606)
Fixes #1402

Also fixes a few TODO comments in the fixtures.coffee file along the way
2019-03-06 10:15:05 -05:00
Zach Bloomquist e7ec9e8ea7 Don't show "Restore Pages" prompt (#3619)
Fixes #2048
2019-03-05 11:30:29 -05:00
Jennifer Shehane 0a87734bd5 Update error message when record key not found for project (#3628)
- close #1449
2019-03-01 16:57:12 -05:00
Ian Walter e4cb364cd8 Removing light (300) font weight from spec links in desktop GUI (#3065)
* Removing light (300) font weight from spec link

* Explicitly setting spec link font-weight to 400
2019-02-28 09:44:50 -06:00
renovate[bot] f06aefa14c chore(deps): update dependency enzyme-adapter-react-16 to version 1.10.0 🌟 (#3601)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-02-27 13:57:29 -05:00
Zach Bloomquist d24285bbdd Visit with a POST and/or custom headers (#3489)
* 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
2019-02-27 09:19:31 -08:00
Jon Senchyna 83aa9c76d0 Pass all extra parameters to setInterval/setTimeout callback functions (#3593)
* Issue 3592: Forward *all* parameters to setInterval/setTimeout

* Issue 3592: Fix test linting error
2019-02-26 13:53:44 -05:00
renovate[bot] d079bb1b62 chore(deps): update dependency react to version 16.8.3 🌟 (#3591)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-02-26 11:36:16 -05:00
Louise Hayes 4c85c76554 closes #2871 (#3563)
* closes #2871

* closes #2871

* lowercase Run to run since in middle of sentence


Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
2019-02-25 21:45:20 +00:00
koooge 38be316d0f Remove an unused package (#3291)
* Remove an unused package

Signed-off-by: koooge <koooooge@gmail.com>

* Delete .vagrant

Signed-off-by: koooge <koooooge@gmail.com>


Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
2019-02-25 20:56:13 +00:00
Chris Breiding 6e80826415 Upgrade jsdom to 13.2.0 (#3584)
* bump jsdom versions to 13.2.0

* update reporter and runner test setup for latest jsdom
2019-02-25 11:46:20 -05:00
Jennifer Shehane 9d455545b3 convert dom element to jQuery element in order to properly check contains assertion (#3553)
- 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?
2019-02-22 09:27:59 -05:00
Adam Stachowicz 48265dd60f Issue 3540: Fix baseUrl slash (#3546)
closes #3540 and #3545 

Tests:
```js
/// <reference types="Cypress" />

it('test url', function () {
    cy.visit('/')
    var baseUrl = Cypress.config('baseUrl')
    //baseUrl = baseUrl + '/'    // bug in Cypress - add slash
    cy.url().should('eq', Cypress.env('test_url'))
    cy.url().should('eq', baseUrl)
})

it('test url - copy paste from @jennifer-shehane', function () {
    cy.visit('/')
    cy.url().should('eq', Cypress.config('baseUrl'))
})
```

![obraz](https://user-images.githubusercontent.com/905878/53121397-10f83780-354c-11e9-8495-2474ced106e6.png)
2019-02-21 18:50:50 -05:00