Commit Graph

342 Commits

Author SHA1 Message Date
renovate[bot] c18a5eef63 chore(deps): update dependency dependency-check to version .x 🌟 (#4137)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-05-06 15:36:43 +06:30
renovate[bot] 33a9ab35a1 chore(deps): update dependency proxyquire to version .x 🌟 (#4115)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-05-03 18:58:09 +06:30
renovate[bot] 4733694bc2 fix(deps): update dependency tmp to version 0.1.0 🌟 (#4111)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-05-03 11:59:45 +06:30
Zach Bloomquist 146d4cd5cf Add missing Date to cy.clock typescript def (#4106)
* add missing option from clock tsdef

* add type test for cy.clock with Date
2019-05-03 11:34:16 +06:30
Ben Kucera 1f0071002b Add timeout for cli/verify smoke test (#4080)
* temp 04/29/19 [skip ci] cli verify timeout

* add smoke test timeout error and tests

* cleanup code

* normalize snapshots for ci

* remove promise cancellation config

* cleanup error messaging and spacing for displaying the error details + descriptions


Co-authored-by: Brian Mann <brian.mann86@gmail.com>
2019-05-02 15:20:58 -04:00
renovate[bot] 57eda8cacf fix(deps): update dependency debug to version .x 🌟 (#3793)
* fix(deps): update debug to 4.1.1 🌟

* bump cli 'debug' down to 3.2.6 - last version that still supports Node 4


Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2019-05-01 13:12:07 +06:30
Ben Kucera ec36bf0132 reorder cli unit test snapshots for snap-shot-it (#4081) 2019-04-30 14:28:04 -04:00
renovate[bot] eb0097d8d3 chore(deps): update dependency mock-fs to version 4.9.0 🌟 (#4075)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-04-30 17:38:05 +06:30
renovate[bot] 610c64cac0 chore(deps): update dependency dtslint to version 0.7.1 🌟 (#4058)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-04-29 17:04:06 +06:30
renovate[bot] 875186ed36 chore(deps): update dependency bin-up to version 1.2.0 🌟 (#4047)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-04-29 16:11:09 +06:30
renovate[bot] 628f61a6c6 chore(deps): update dependency @cypress/bumpercar to version 2.0.7 🌟 (#4045)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-04-29 14:48:25 +06:30
renovate[bot] 9ef619cddf chore(deps): Update dependency shelljs to version 0.8.3 🌟 (#4049)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-04-29 13:59:33 +06:30
Zach Bloomquist 28f24b5997 Add missing fields to typescript definition for VisitOptions (#3991) 2019-04-17 19:16:11 -04:00
Ben Kucera 5f771936e3 Fix flaky cli unit test (#3988)
* fix cli unit tests with mockfs

* mockfs fix flaky verify_spec
2019-04-17 19:10:48 -04:00
Nicholas Boll 0336fc03bc Update valid HTTP methods in the type definitions (#3764)
The implementation of cy.request was recently changed (#3555) to support more HTTP methods, but the type definitions were not updated to match.

Adds type definitions for closed issue #1302
2019-04-17 17:02:55 -04:00
renovate[bot] 720d12c76f chore(deps): update snap-shot-it to 6.3.3 🌟 (#3953)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-04-12 18:16:40 +06:30
Lila Conlee 255419c686 Update alias UI (#2960) (#3188)
* Update alias UI (#2960)

- Fixes #477

* fix reporter fixture name
2019-04-10 15:22:55 -04:00
Zach Bloomquist db752f5f93 Only package Windows builds of ffmpeg with Windows, build for win32 and win64 (#3877)
* appveyor build for this branch

* don't force install ffmpeg on windows

don't force install ffmpeg on windows

* derp

* fix

* build in appveyor

* oops

* delete using del

* use RMDIR instead of DEL

* only build 32-bit

* build for x64 and x86 windows

* separate win32 and win64

* require lodash

* make electron arch configurable

* cross-compile 32, only run in 64-bit

* force install ffmpeg if necessary

* it's all win10 x64, but we can force it to build for ia32 in x32 mode

* add windows util

* who's idea was it to make whitespace meaningful?

* pass arch to npm install, pass arch to uploader

* add TARGET_PLATFORM

* fun fact: appveyor titlecases env var names

fun fact: appveyor titlecases env var names

* fix: pass args

* use process

* cli: use arch package to send arch to server

* pass TARGET_ARCH to all npm installs

* run-all

* always call getUploadNameByOs

* use the precise version of node, enable both x64 and ia32 arch

* quotes

* uh wat

* move console logs to script because windows

* add yet another env var to install the right node arch

* use x86, not x32

* give ia32 a try, why not

* use platform env again

* and also try x86 again

* remove notion of target_arch since we're using the right node version with arch set correctly

* more comprehensive checks to ensure the arch is correct

* simplify building the binary, do not accept arch as options

* build the binary and test it on this branch

* remove arch, ensure that process.env.Platform is set to x86

* do build the binary unless this is a forked PR

* attempt to verify that this is a 32bit or 64bit windows binary

* remove unused dep

* consolidate commands

* don't install packages in windows - just build the binary

- this avoids needing to reinstall all node_modules and build-js twice

* build the binary on more branches

* cd up appveyor

* ugh

* right logic for whether or not this is a forked PR

* remove unused deps

* fix undefined var

* platformArch

* set in options

* turns out we do have to npm install before building the binary

* options.platformArch

* comment out appveyor build 32bit/64bit verification temporarily


Co-authored-by: Brian Mann <brian.mann86@gmail.com>
2019-04-08 11:48:14 -04:00
Zach Bloomquist cd4156f166 Remove @cypress/get-windows-proxy from CLI (#3898) 2019-04-06 17:13:38 -04:00
Gleb Bahmutov 143eccd607 add TypeScript definitions for the cypress npm module (#3826)
* WIP: start TS definition for Cypress NPM module

* describe run and open options

* add jsdoc and make options optional

* fix expected type

* add more properties to Cypress config interface

* explain all config properties

* more definitions

* add types for test results

* export = cypress in NPM module

* remove ts ignore that is no longer needed
2019-04-03 11:25:36 -04:00
Zach Bloomquist 16b939e9dd Handle lowercase environment variable names in proxy (#3866)
* cli, server: check for lowercase environment variable too

* server: clean up proxy.ts to not use this

* rename to JS to prevent needing build process for tests to pass

* enable implicit any

* some cleanup, added tests around additional lowercased env vars


Co-authored-by: Brian Mann <brian.mann86@gmail.com>
2019-04-03 08:23:07 -04:00
Brian Mann 46a38c1c8b bump dep to support node 4 in the CLI 2019-04-03 02:50:38 -04:00
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
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 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] 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
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
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 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
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
Jennifer Shehane df322605a1 Bump cachedir from 1.3.0 -> 2.1.0 (#3660)
- Breaking change: Drop support for Node.js < 6.x]
- Use os.homedir() instead of os-homedir module (reduced dependency and
size)
2019-03-06 14:20:37 -05:00
Gleb Bahmutov 83d35d3725 remove stray circleci line, more CLI types comments 2019-03-05 13:09:50 -05:00
Gleb Bahmutov f81dc7a6b2 move 3rd party types to dev dependencies in CLI NPM package (#3425)
* wip: move lodash types to dev dependencies

* move blob-util types

* move types for minimatch

* do not lint types from minimatch

* move types sinon to dev dependencies

* move sinon-chai types to dev dependencies

* update tslint

* move types bluebird to dev dependencies

* move mocha types

* move jquery types to dev dependencies

* rename moment local wrapper

* move chai and chai-jquery

* refactor code for building CLI and dealing with folders

* linting

* include types subfolders

* replace types with relative paths

* transform sinon path to relative

* linting

* do not delete d.ts files

* linting

* chore: build npm package from this branch

* add minimatch relative reference

* work around minimatch

* set sinon to be relative load

* add readme to CLI

* linting readme
2019-03-05 12:49:42 -05:00
renovate[bot] 0781e4dc92 chore(deps): update dtslint to 0.5.1 🌟 (#3611) 2019-02-28 09:24:25 -05:00
Gleb Bahmutov ecf98cfdec separate dtslint into its own CircleCI job (#3528)
* separate dtslint into its own CircleCI job

* fix indent
2019-02-28 09:07:44 -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
Jennifer Shehane a18dac6931 fix typo in index.d.ts file (#3588) 2019-02-25 23:04:21 +00:00
renovate[bot] a9051cbb22 chore(deps): update dtslint to 0.5.0 🌟 (#3571)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-02-25 16:56:25 +00:00
Songyu-Wang 7a819f1b99 Reduce the number of log printed when install cypress in docker (#3504) 2019-02-22 12:04:46 +06:30
renovate[bot] 0462047f06 chore(deps): update dependency dtslint to version 0.4.9 🌟 (#3562)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-02-22 11:07:35 +06:30
renovate[bot] ee74bf5646 chore(deps): update dependency dtslint to version 0.4.8 🌟 (#3550)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-02-21 20:07:09 +06:30
renovate[bot] b6794367e0 chore(deps): update dependency dtslint to version 0.4.4 🌟 (#3533)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-02-20 11:21:25 +06:30
Zach Bloomquist ef9b8f7b38 Launch browsers by path: --browser /path/to/browser (#3337)
* adding multiple possible binary names for linux

* windows launcher doesn't consider "binary", so don't pass it

* adding test for multiple binary names

* Stronger typing, clearer variable names

* Stronger typing, clearer variable names

* cleanup

* cleanup

* clean up type- why isn't this being linted?

* Add more aliases (#3217)

* launcher changes to use Browser throughout, also clarifying FoundBrowser/Browser distinction

* wip

* wip

* update tests to expect objects

* removing errant debugger calls

* Fixing tests

* desktop-gui: use displayName for display

* ' -> "

* launcher: add definitions for google chrome beta and unstable

* server: fallthrough to using chrome helper

* server: changes for run mode to pick correct version

* desktop-gui: add displayName to fixtures

* server: isolating bug with runmode

* browser was a string all along

* server: re-promisify browser detection

* launcher: remove chrome-beta for now, needs some more tweaking for that to work 100 percent

* launcher: cleaning up types

* launcher: fix type comflict when filtering browsers (#3258)

* launcher: cast Windows foundbrowsers

* launcher: mapSeries -> map

* launcher: clean up launcher, change 1 call in server to match

* launcher: test that browsers contains what we like it to

* whoops

* server: accept path in runmode

* launcher: changes for detectByPath [wip]

* server: update tests to use new errors

* launcher: error message cleanup

* launcher: detectByPath working with CLI client

* launcher: detectByPath tests

* launcher: cli client for detectByPath

* server: update error msg snapshot

* cli: allow passing --browser to open mode

* server: using --browser=/path/ works in run and open mode!!

* launcher: change displayName of custom browsers

* server: find browser with highest version property by default

* launcher: update tests, clean up types

* server: fix tests

* server: fix tests

* cli: update help snapshots

* launcher: tests

* server: wip

* server, launcher: clean up errors

* server: add unit tests for events

* server: change e2e helper to support custom browser strings in stdout

* server: e2e tests for browser by path

* server: if this break that

* server: clean up and fix? tests

* decoffeeate, entypescriptify

* server: fix test

* cli: fix whitespace

* cli: remove external browser notice

* server: detect a browser to use for the e2e launch-by-path test

* server: make stackTraceLinesRe not match all sentences with 'at' in them

* server, launcher: update 'not found at path' error msg

* server: clean up browser switch

* server: customBrowserPath

* server: update snapshots that were affected by the old stackLineRe

* server: update stubs

* server: update BROWSER_NOT_FOUND_BY_PATH to use error objects

* server: backticks in snapshots break snapshots

* server: forgetting to save without formatting will be my downfall

* server: remove comment

* desktop-gui: make custom browsers chosen

* desktop-gui, launcher: update tests
2019-02-16 15:12:17 -05:00
renovate[bot] 4012dfca66 fix(deps): update yauzl to 2.10.0 🌟 (#3481)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-02-15 16:23:32 +06:30
renovate[bot] f1dea82141 chore(deps): update dependency nyc to version 13.3.0 🌟 (#3474)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-02-15 12:51:06 +06:30
renovate[bot] b1b69bd20f fix(deps): update @types/chai-jquery to 1.1.38 🌟 (#3342)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2019-02-15 12:49:46 +06:30