Commit Graph

84 Commits

Author SHA1 Message Date
renovate[bot]
d10694aa8e fix(deps): update lodash to 4.17.21 🌟 (#16406)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-10 11:22:29 -05:00
renovate[bot]
b52ac98a69 feat(deps): update dependency electron to version 12.x 🌟 (#15292)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Zach Bloomquist <git@chary.us>
2021-03-10 15:24:00 +00:00
Brian Mann
af26fbebe6 feat: component testing (#14479)
Co-authored-by: Jessica Sachs <jess@jessicasachs.io>
Co-authored-by: Barthélémy Ledoux <bart@cypress.io>
Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>
Co-authored-by: Zach Bloomquist <github@chary.us>
Co-authored-by: Dmitriy Kovalenko <dmtr.kovalenko@outlook.com>
Co-authored-by: ElevateBart <ledouxb@gmail.com>
Co-authored-by: Ben Kucera <14625260+Bkucera@users.noreply.github.com>
2021-02-04 15:45:16 -05:00
renovate[bot]
9be61657f4 fix(deps): update dependency debug to version 4.3.1 🌟 (#14583)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-19 12:21:05 +06:30
Zach Panzarino
3eb3bfa487 build: properly use local npm packages for development and binary build (#14182) 2021-01-05 00:34:13 -05:00
renovate[bot]
2207bb105e feat(deps): update dependency electron to version 11.0.2 🌟 (#9222)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Zach Bloomquist <github@chary.us>
2020-11-20 18:58:55 -05:00
Ben Kucera
19fdf4306a fix: route all https traffic through proxy (#8827) 2020-10-20 12:20:38 -04:00
renovate[bot]
675265afcc fix(deps): update dependency node-forge to version 0.10.0 🌟 (#8800)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-09 17:12:37 +06:30
Jennifer Shehane
eac7859fcc fix: NO_PROXY env var no longer be respected over npm_config_noproxy env var (#8295)
Co-authored-by: Zach Bloomquist <github@chary.us>
2020-08-24 15:18:11 -04:00
Brian Mann
c72538d189 Fix lodash dupe dep (#7954)
* blow away yarn.lock

* bump lodash to 4.17.19

* reduce binary size again

* bump @types/node to correct version, fix types

* fix react + react-dom types

* add clean command for .ts conversion to .js files

* fix flaky test
2020-07-11 16:34:23 -04:00
renovate[bot]
4618650118 fix(deps): update dependency proxy-from-env to version 1.1.0 🌟 (#7900)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-07-08 10:40:51 +06:30
Ben Kucera
47faf52e16 internal: use yarn workspace over lerna for individual package commands (#7644)
* use yarn workspace over lerna for individual package commands

* remove usage of wait-on

* fix readmes after regex replace

* revert wait-on changes

* update yarn.lock
2020-06-10 18:31:40 -04:00
Zach Bloomquist
0e632635cd chore: rm non-test-related coffeescript references 2020-06-10 10:49:31 -04:00
Zach Bloomquist
d810950379 Switch request, request-promise to @cypress/ forks (#6777) 2020-03-19 11:48:24 +06:30
Jennifer Shehane
c650c91ac0 sync all 'request' deps to use the cypress fork (#6694) 2020-03-11 21:42:14 +06:30
Jennifer Shehane
7eed6ad581 Test Cypress in Chrome 80, FF 72, Debian 10 (#6428)
* update docker image to chrome 80 and firefox 72 image

* Use image with compatible 12.8.1 Node version

* update docker script

* improve debug logging of launched browser

* run tests with correct color depth

* force run with new cache version

* revert docker image

* Revert "revert docker image"

This reverts commit 93d03446cc.

* update gitignore

* generate 2048-bit keys

* add script to regenerate certs, if we need to do this again

* update certs (ran regenerate-certs.sh)

* copy, don't symlink - won't work on win anyways

* reregen

* cleanup

* don't use https-pem, it's too smol

see https://github.com/watson/https-pem/issues/3

* decaffeinate: Rename ca.coffee and 11 other files from .coffee to .js

* decaffeinate: Convert ca.coffee and 11 other files to JS

* decaffeinate: Run post-processing cleanups on ca.coffee and 11 other files

* https-proxy decaf cleanup

* wip: ca_version

* add versioning for CA store

* add regenerate:certs script

* add timings to ca_spec

* unneeded patch-package

* fix yarn.lock

Co-authored-by: Zach Bloomquist <github@chary.us>
2020-03-03 16:25:02 -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
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
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
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
Chris Breiding
d76123b3d9 Add Firefox support (#1359)
Co-authored-by: Ben Kucera <14625260+Bkucera@users.noreply.github.com>
Co-authored-by: Gleb Bahmutov <gleb.bahmutov@gmail.com>
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
Co-authored-by: Zach Bloomquist <github@chary.us>
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
2020-02-06 10:52:13 -05:00
Zach Bloomquist
13aa496476 use cross-env in npm scripts so they work on Windows (#5888)
* use cross-env in npm scripts so they work on Windows

* update more cross-envs

* Apply suggestions from code review

Co-Authored-By: Gleb Bahmutov <gleb.bahmutov@gmail.com>
2019-12-05 11:38:03 -05:00
renovate[bot]
eb078974fe chore(deps): update dependency cross-env to version 5.2.1 🌟 (#5491)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-10-28 14:47:07 -04:00
Ben Kucera
5654680fcd rename .eslintrc -> .eslintrc.json (#5344) 2019-10-10 15:04:25 -04:00
renovate[bot]
daab2d7075 chore(deps): Update dependency bin-up and is-fork-pr (#5321)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2019-10-09 17:56:18 -04:00
Chris Breiding
6ba8d7cc93 Electron v5.0.10 (#4720)
* fix specs

* use debugger protocol for cookie handling in electron

* use latest gulp

* use rimraf instead of gulp-clean

* use electron 3.1.8 and node 10.2.1

* use gulp 4 in packages/static

* fix sendCommandAsync, log Schema.getDomains on CDP connect

* autofill e2e test name [skip ci]

* electron@5.0.7, see what new failures exist

* --no-sandbox for launching Electron

* update cookies logic for electron

* node 12

* update snapshot for new node

* update error message for new node

* stub sendCommandAsync

* only connect to socket if path has been replaced, fixes #4776

* update node-sass to support node 12

* skip wacky socket tests for now

* snapshot

* fix run_plugins_spec snapshot, don't include stack trace

* use --no-sandbox on linux to run as root

* allow sendCommandAsync to resolve

* use euid for root check

* log domains even if undefined

* don't worry about ending 1xx responses immediately anymore

* use --max-http-header-size, change max size from 8kb to 1mb, fix #76

* do not send 502 on failed websocket, just send back ECONNRESET

* update websocket spec port to not collide with other test

* update outdated expect

* Revert "only connect to socket if path has been replaced, fixes #4776"

This reverts commit f179eda5ca.

* update gulp in root

* update https-proxy unit tests

* update network spec to properly close server

* update reporter spec

* update https-proxy-agent to fix node 10.10.0 change

discussion: https://github.com/nodejs/node/issues/24474\#issuecomment-511963799

* only pass --max-http-header-size on node >=12

* use own server-destroy implementation that supports secureConnect events

* oops

* update socket_spec

* electron 6.0.0

* console.table introduced in node 10

* change browserify entry to init.js

* handle edge case when no response body

* console.table added in node 10

* do not exit app when all BrowserWindows are closed

* update e2e snapshots

* value may not be null

* update plugins spec

* correct cookie expiry, use browser.getversion for CDP version check

* fix snapshotting for require stacks

* reorder cookies in spec

* warn when depreated electron callback apis are used

* only report 1 plugin error per process

* cleanup

* node 12.4.0, cypress/browsers:node12.4.0-chrome76 docker image

* update shell.openExternal to promisified

* update dialog.showOpenDialog to promisified

* update webContents.session.setProxy to promisified

* updating native dependencies since we don't need ancient node ABI support anymore

* WIP: switch cookies to simpler, jar-less approach

* WIP: switch cookies to simpler, jar-less approach

* making tests pass

* improve cookie filtering logic

* Remove unneeded Promise.try

* filter what makes it to the extension

* properly re-set superdomain cookies on cross-origin cy.visit

* allow comma-separated list of e2e tests

* sort cookies in order of expiration date, ascending

* updating tests, cleanup

* update tests

* version electron as a devDependency, electron@6.0.1

* cleanup, remove old automation

* cleanup, remove old automation

* bump chokidar to fix win10 + node12 issue

was seeing this on windows:
https://github.com/nuxt/nuxt.js/issues/6035

fixed with version bump

* enable now-supported quit role, re-enable old tests

* don't need that arg there

* remove last deprecated callback electron invocations

* Delete cypress.json

* responding to PR feedback

* cleanup

* invoke

* use 'quit' role

* Use new appMenu role for Cypress menu on mac

* electron@6.0.2

* electron@6.0.3

* remove domain: cookie.domain and see what happens

* remove setErrorHandler

* Revert "remove domain: cookie.domain and see what happens"

This reverts commit 49e916896d.

* add unit tests for cookies

* ci

* fix project-content css

* electron@6.0.4

* fix specs_list test

* electron@6.0.7

* some cleanup

* electron@6.0.9

* Update 8_reporters_spec.coffee.js

* electron@5.0.10 - Chromium 73, Node 12

* cli: fix the STDIN pipe on Windows (#5045)

* cli: pipe stdin

* uggh, here is the actual change

* update cli unit tests

* add unit test

* more permissive check for json to include application/vnd.api+j… (#5166)

* more permissive check for json to include

* add json test for content-type application/vnd.api+json

* cruder solution passes e2e tests locally, so let's go with that

* Remove 'charset' from content-type before checking if JSON

* fix eslint for fixture specs (#5176)

* update eslint to lint files within 'fixtures' in support files

- ignore some edge cases like jquery, jsx and obvious js files we wrote
with broken code

* Fixes from eslint to 'fixtures' files

* Catch env variable with reserved name CYPRESS_ENV 1621 (#1626)

* server: check CYPRESS_ENV variable when merging configs

* catch invalid CYPRESS_ENV value in CLI, close #1621

* linting

* sanitize platform in test snapshot

* linting

* update error message text

* add missing comma

* fix finally merge in JS code

* pass CLI linter

* fix log reference, should be debug

* use correct sinon reference

* update message, show first part in red

* update error message text

* Addresses #2953 (#5174)

* Addresses #2953

* Added proper test for new error message

* Didn't realize it ran this test as well, whoops

* Implementing changes as suggested by @jennifer-shehane

* Fixing tests and error output. Moved the checks to the start of the get command to ensure we always catch improper options

* Removing issue test since the querying spec covers it

* Using coffescript isArray check

* depromisify things that were promisified b/t electron 5 <=> 6

Revert "update shell.openExternal to promisified"

This reverts commit 8b6460d015.

Revert "update dialog.showOpenDialog to promisified"

This reverts commit 5f178b075b.

Revert "update webContents.session.setProxy to promisified"

This reverts commit 727df3a4e5.

* node12.4.0-chrome76 => node12.0.0-chrome75

* fix tests for electron downgrade

* node12.0.0-chrome75 => node12.0.0-chrome73


Co-authored-by: Zach Bloomquist <github@chary.us>
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
2019-09-24 14:35:24 -04:00
Zach Bloomquist
7b85344b84 Fix proxying HTTPS requests to IP addresses (#4947)
* use own server-destroy implementation that supports secureConnect events

* stand up HTTPS server for requests over ssl to IPs

* don't need to resolve with

* fix tests

* stand up a server on 127.0.0.1 for test

* tighten up / cleanup code, consolidate + refactor

- lazily fs.outputfile’s
- move sslIpServers to be global
- add remove all CA utility

* Improve proxy_spec test

* Don't crash on server error events

* feedback

* derp


Co-authored-by: Brian Mann <brian.mann86@gmail.com>
2019-09-12 15:30:10 -04:00
Zach Bloomquist
52beabeda5 Do not crash on invalid HTTP CONNECT (#4916)
* Do not crash on invalid HTTP CONNECT

* fix test
2019-08-02 18:33:38 -04:00
Jennifer Shehane
f189d5e408 remove packages that do not appear to be used (#4755)
- I may have broken things - let’s see.
2019-07-25 11:08:01 +06:30
renovate[bot]
9756a0382d fix(deps): Update dependency lodash to version 4.17.15 🌟 (#4784)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-07-23 15:54:46 +06:30
renovate[bot]
5ab23f022f chore(deps): update dependency @cypress/eslint-plugin-dev to version 3.3.0 🌟 (#4723)
* chore(deps): update @cypress/eslint-plugin-dev to 3.3.0 🌟

* sort json package.json files + add note to skipped tests
2019-07-16 14:21:08 +06:30
renovate[bot]
325fbf6f63 fix(deps): Update dependency lodash to version 4.17.14 🌟 (#4709)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-07-15 12:34:22 +06:30
Ben Kucera
fbd523615e [internal] Lint typescript, json, new eslint rules (#4449)
* temp 07/01/19 [skip ci] main lint files

* use lint-staged scripts

* fix all auto-fixable eslint errors

* manually fix lint issues in files

* temp 07/01/19 [skip ci]

* bump eslint plugin versions, update circle.yml

* [lint fix] remaining js files

* update vscode/settings.json

* add back stop-only

* use stop-only for linting .onlys

* fix verify_spec, build_spec

* update json plugin

* relint & apply corrections

* fix appveyor.yml not cleansing env vars (very bad)

* dont echo commit message in appveyor script

* retry build &

* re-add & upgrade lint-staged

* update contributing docs

* only let stop-only catch staged changes
2019-07-12 13:59:44 -04:00
renovate[bot]
a474755e16 fix(deps): Update dependency lodash to version 4.17.13 🌟 (#4684)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-07-10 10:11:47 +06:30
renovate[bot]
0701e20429 fix(deps): update dependency fs-extra to version 8.1.0 🌟 (#4620)
* fix(deps): update fs-extra to 8.0.1 🌟

* but fs-extra in cli package back to 5.0.0 (Needs Node 4 support)

* fix(deps): update fs-extra to 8.1.0 🌟


Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2019-07-03 11:43:05 +06:30
renovate[bot]
e1f58da01c fix(deps): update dependency fs-extra to version .x 🌟 (#4581)
* fix(deps): update fs-extra to 8.0.1 🌟

* but fs-extra in cli package back to 5.0.0 (Needs Node 4 support)


Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2019-06-27 14:04:43 +06:30
renovate[bot]
b6345521d1 fix(deps): update dependency fs-extra to version .x 🌟 (#4571)
* fix(deps): update fs-extra to 7.0.1 🌟

* bump fs-extra down to 5.0.0 for cli (Needs Node 4 support)


Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2019-06-26 15:33:35 +06:30
renovate[bot]
55b86d4595 fix(deps): update dependency fs-extra to version .x 🌟 (#4559)
* fix(deps): update fs-extra to 6.0.1 🌟

* Downgrade cli fs-extra back down to 5.0.0 - 6.0.0 drops Node 4 support


Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2019-06-26 13:44:09 +06:30
renovate[bot]
c2d9ae4e42 fix(deps): update dependency fs-extra to version .x 🌟 (#4555)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-06-25 17:20:04 +06:30
Zach Bloomquist
0c8df29def End proxied responses for 1xx, 204, 304 with no body, fix bug where cy server could be proxied (#4358)
* release 3.2.0 [skip ci]

* add failing test for 304

* always end response on 1xx, 204, or 304

* add http req spec

* add test that 1xx, 204, 304 always pass thru immediately

* cleanup

* skip stubborn test

* cleanup, tests

* fix stopping debugproxy where it hasn't been started

fix stopping debugproxy where it hasn't been started

* Never proxy websocket port

* e2e test now works

* unnecesary this

* e2e works in ci


Co-authored-by: Brian Mann <brian.mann86@gmail.com>
2019-06-19 00:19:30 -04:00
renovate[bot]
be5909f63c fix(deps): Update dependency fs-extra to version .x 🌟 (#4437)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-06-12 10:50:22 +06:30
renovate[bot]
3f3e78408c fix(deps): update dependency fs-extra to version .x 🌟 (#4422)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-06-11 11:03:58 +06:30
renovate[bot]
706999d174 fix(deps): update dependency fs-extra to version .x 🌟 (#4419)
* fix(deps): update fs-extra to 2.1.2 🌟

* rename `clobber` option to `overwrite`

per https://github.com/jprichardson/node-fs-extra/pull/333/files


Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2019-06-10 14:51:18 +06:30
renovate[bot]
bc8f96b0b1 fix(deps): Update dependency fs-extra to version .x 🌟 (#4418)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-06-10 12:40:16 +06:30
Zach Bloomquist
b568e82545 Do not send requests for SNI server through upstream proxy (#4275)
* add test to ensure that SNI server will never go through proxy

* prevent test from false positive

* ensure that SNI server requests never go through proxy

* e2e test that https-proxy does not pass sni reqs thru upstream

* improve debug logging in https-proxy

* fix using cwd, not workspaceFolder for terminals manager

* remove dead code

* stop the debug proxy after each test


Co-authored-by: Brian Mann <brian.mann86@gmail.com>
2019-05-22 02:13:33 -04:00
Zach Bloomquist
b8a6baaca3 Retry certain requests on failure (#4015)
* retry requests, basic e2e test

* basic e2e test for chrome behavior

* don't use timeouts to test

* some minor cleanup

* validate google chrome's retry behavior w/ a proxy

* get retries on network errors workin

* cleanup

* final changes before switching approach

* Reverting previous approach in request.coffee, server.coffee

* add retryOnNetworkFailure

* now works with retryOnStatusCodeFailure

* retry 4 times in addition to the 1 initial attempt

* add tests for subresources

* much improved error handling

* have the e2e test really work

* e2e baseurl check

* retry baseurl check

* remove special handling for node 8.2.1 bug

* WIP: continue making progress building out request retry

- swap out passthrough’s for pumpify / duplexify / pump
- clean up error handling / messaging / retry logic

* pipe clientrequest events

* buffer req body to disk, restore error handling/retrying

* don't bubble up errors from failed attempts

* actually pipe reqstream, oops

* add some e2e tests for request body

* revert lib/request.coffee to 7be1051

* add almost-working lazy-stream

* manually fire the 'pipe' event on the reqStream to copy headers to the outgoing message

- restore the ‘error’ propagation so that all tests pass for now

* cleanup leaking 'undefined' into stdout, causing failing e2e tests

- do not set onWarning as a property of project, just pass as an
argument

* add new options to request_spec, deduplicate default opts

* use stream buffer in request.coffee

* revert request.coffee

* last stream_buffer changes before removing fs stuff

* remove fs stuff from stream_buffer, add stream piping tests

* it works! :tada::tada:🎉 using duplexify to separate delayStream and reqBodyBuffer

* retry for .5s max on ECONNREFUSED

* add error codes

* don't timeout proxied requests

* restore baseurl check

* update new e2e tests

* make delay work with rp

* propagate clientresponse events

* removing tests that don't do anything now that we don't ESOCKETTIMEOUT on proxied requests

* add new visit, req options to index.d.ts

* don't fail on server-performance-test

* make retries with status code work again

* account for different stack trace in ci

* fix test

* retry https requests

* add tests for https passthru retries working

* clean up error handling for https-proxy

* fix failing https-proxy tests, tweak agent error handling to prevent multiple callbacks

* make expectedExitCode actual vs. expected in the correct order

* bump up e2e test timeout so it can retry and still work

* update tests

* retry up to 500ms on proxied requests

* add tests for incompatible options errors

* remove .only

* maybe this will help it act more consistently

* help e2e test work in ci

* don't reconnect on already made connections

* clarify naming

* wip: testing https proxy

* better debug calls

* WIP: getting proxy passthrough retry tests going

* handle retrying upstream proxy errors

- add tests for successfully retrying proxy errors and for unsuccessful
retries
- fix onClose errors when proxy connection is closed before enough data
is received
- fix not returning setTimeout correctly

* group related code accordingly

* do not build typescript by default, drop extension from main

* more TODO notes

* don't set a default NO_PROXY if NO_PROXY = ''

* debugging-proxy@2.0.0

* null out reqBodyBuffer when req finishes

* wip: retry in agent, not https-proxy [skip-ci]

* update https-proxy to use @packages/network retries

* retry after connection but before proxy tunnel established

* appease my linty overlords

* update https-proxy tests

* update agent specs, decided to still use tls.connect

it's easier to test and has less complexity

* test retrying HTTPS passthru

* debugging-proxy@2.0.1

* increase defaultCommandTimeout 100 -> 200 to prevent flake in CI

* auto formatting

* fix test to be dynamic and not rely on magic constants

* copy types field when linking proxy images, update packages/network types field

* linting

* add network index.js file

* linting

* improve error messaging experience when verifying base url

* only insert 1 new line

* fix failing test not binding to localhost

* removed test that's covered by e2e specs

* remove dash in 're-try'

* some cleanup for readability

* use allocUnsafe per perf

* unset NO_PROXY with an empty string

* move retry ensuring the baseUrl into url, cleanup some imperative code

* if the head is already present during connect, make connection, else wait for first head bytes

* minor formatting, clarity around conditions, naming

* rename retryInterval -> retryIntervals

* set defaults for requests during creation for clarity

* rename send -> sendPromise to pair better with sendStream

* use retryIntervals instead of juggling MAX_REQUEST_RETRIES

- ensure debug messages are consistent between request streams +
promises
- set static constants

* DRY up status check + network failure + retry logic

- keeps the debug logic identical between promises + streams
- ensures all logic paths are also consistent
- consolidates the pop’ing of intervals in a single place

* find / replace fail

* derp

* make the logic actually correct, set intervals as cloned defaults for recursive lookup

* pass arg correctly

* reduce debugging noise, formatting

* rename intervals -> delaysRemaining for clarity

* added unit tests around getDelayForRetry

* set retryIntervals as default options correctly, add unit tests


Co-authored-by: Brian Mann <brian.mann86@gmail.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Gleb Bahmutov <gleb.bahmutov@gmail.com>
2019-05-15 12:46:55 -04:00
renovate[bot]
bf1a942944 chore(deps): update dependency supertest to version .x 🌟 (#4154)
* chore(deps): update supertest to 4.0.2 🌟

* remove deprecated 'supertest-as-promised' + update supertest-session

* fix linting error


Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2019-05-08 15:16:33 +06:30