* chore(deps): electron@9.0.5
BREAKING CHANGE: libgbm is a requirement
* update node, xcode, docker images
* lockfile
* chore(types): tsify lib/gui/windows and spec
* fix Electron extension loading
global extension loading was deprecated in 9, now has to be per-session
* make windows fns stubbable
* update electron_spec
* tsify issue_173_spec
* use upstream foxdriver to fix FF >= 75
see https://github.com/benmalka/foxdriver/issues/7
* update test
* for now, install libgbm-dev at ci time
see https://github.com/cypress-io/cypress-docker-images/pull/332
* fix open mode
* remove devtools-ext dir
* decaffeinate: Rename saved_state.coffee from .coffee to .js
* decaffeinate: Convert saved_state.coffee to JS
* decaffeinate: Run post-processing cleanups on saved_state.coffee
* decaffeinate: Rename saved_state_spec.coffee from .coffee to .js
* decaffeinate: Convert saved_state_spec.coffee to JS
* decaffeinate: Run post-processing cleanups on saved_state_spec.coffee
* refactor saved state
- create a single saved_state module instead of having two
- export an object with methods instead of a function with methods
* Fix "allowRendererProcessReuse" in open mode
The previous code would only fix it in run mode.
* don't show deprecations in prod, always show stack traces for deprecations
* clone IPC objects and remove unserializable values
* add ipc_bus_spec
* respond to PR feedback
* Use CDP to record video for Electron
* Enable video recording in Electron headed
* Test video in headed + headless for all browsers
* Update e2e tests
* Adds retry button for project baseUrl warning
* Refactors project retry button
* Refactors to improve testability and adds tests
* Adds back reopenProject method
* Fixes warning message test errors
* Makes requested changes
* improve selectors
* fix dismissing warnings
* rename clear warning to dismiss warning
* refactor / improve
- only add retry button if it's the base url warning
- keep warning around while waiting for retry
- move tests to warning message spec
* disable retry button and show retrying message while retrying base url
Co-authored-by: ngunnarson <56410720+ngunnarson@users.noreply.github.com>
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
Co-authored-by: Chris Breiding <chrisbreiding@users.noreply.github.com>
* deprecate old API for before:browser:launch
* trigger ci
* allow chrome preferences to be overwritten in before:browser:launch
* add e2e test for chrome preferences
* add launchOptions.windowSize, refactor plugin handling into browser/utils
* async/await-ify chrome.ts, update e2e.js
* add padding to warning, allow more than 1 warning in run mode
* remove psInclude
* bump snap-shot-it, remove patch-package
* fix failing tests, tighten up code
* remove unused Promise.all
* more code cleanup from coffeescript conversion
* fix expectedExitcode
* update snapshot with cross origin error message
* more code cleanup from coffeescript conversion
* remove global state, cleanup normalizing stdout in snapshots
* fix asserting on the expected exit code
* remove firefox a default browser in e2e tests
* remove dupe const
* make onStdout return first arg by default
* remove only
* make expectedExitCode: 0 the default, remove duplicate option from all e2e tests
* fix test for electron
* reuse _getArgs() properly, tighten up dupe code, move perf e2e tests to use new e2e.it helpers
* make e2e test pass properly, and capture snapshot
- this was being overlooked because expectedExitCode wasn’t being set
(until now its the default)
* revert firefox specific changes to reduce PR diff
* remove newline
* temp 02/04/20 [skip ci]
* add more scenarios / return values
* rename plugin deprecation project fixture
* prevent warnings in run mode from being called multiple times in the same browser launch
- add plugin integration tests
- cleanup some promise code in browsers/chrome
- refactor the e2e deprecation tests
* update e2e deprecation specs, test that deprecation warning is displayed once per spec on a run
* cleanup let -> const, coffescript conversion
* bump snap-shot-it, remove patch-package
(cherry picked from commit ba23be5349)
* bump cli snap-shot-it
* cleanup: let -> const, parseFloat, formatting
* revert cross origin normalization
* fix spacing
* add types for plugin events
* dont pad warning message in run mode
* add e2e test for adding extensions before:browser:launch
* fix failing electron unit test, consolidate creating default launch options
* add extensions for electron + warning if install fails
* fix failing tests, yield the right before:browser:launch args signature
* e2e test electron via devtools extension
* remove .only
* add stdout assertions to e2e/1_deprecated_spec
* remove snapshot whitespace
* rename deprecation event
* update deprecated browser launch args warning message
* throw error on unexpected bbl property
* add tests for warning + error on bbl
* update snapshot
* revive 2 useful tests to validate how launchOption args are merged
* try fix e2e fullscreen spec, update snapshots
* tighten up code for throwing errors on unknown launch options properties
- list out the unknown and expected properties using existing
conventions
- tighten up the error message a bit
* rename options -> launchOptions, add e2e test for adding unknown properties to launchOptions, removed dupe snapshots
* fix fullscreen e2e test
* only push user gesture arg if chromium
* add e2e tests for throwing + rejecting errors, run e2e tests on all browsers, avoid ps logic only in electron
* remove conditional args in fullscreen test
* dont automatically install the latest version of chrome in circle
* add stubs for new electron properties
* switch from using port 5555 to 5544 to avoid common conflicts
* temporarily commenting out windowSize launchOption so release is unblocked and all tests pass
- can add it back in later once the e2e tests pass in CI
* make the path to chrome profile correctly dynamic to account for all operating systems
* remove magic length(8) and slice out the first 4 custom args set from the plugin launch options
* add back --start-maximized in chrome
* deleting windowSize-related code... for now!
Co-authored-by: Zach Bloomquist <github@chary.us>
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
Co-authored-by: Chris Breiding <chrisbreiding@users.noreply.github.com>
* electron@7.x
* node12.8.1-chrome78-ff70
* Revert "node12.8.1-chrome78-ff70" for now
This reverts commit db2d521994.
* update sendCommand to log on all sendcommands
* promisification in 6.x
* Revert "Revert "node12.8.1-chrome78-ff70" for now"
This reverts commit 57fe764098.
* fix sendcommand
* fix cdp in electron
* fix desktop-gui test
* skip tests that will be fixed by #4973
* bump MAX_ALLOWED_FILE_SIZE :/
* update electron browser spec
* make new dialog code null-proof
* add failing e2e test for issue 5475
* bump electron packager
* add e2e snapshot
* update deprecated electron getters/setters
https://github.com/electron/electron/blob/7-1-x/docs/api/modernization/property-updates.md
* build and test on Mac
* move macbuildfilters to top
* 7.1.3
* electron@7.1.4
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
Co-authored-by: Gleb Bahmutov <gleb.bahmutov@gmail.com>
* try connecting to chrome remote interface
* linting
* print CRI targets for better debugging
* linting
* load empty tab first when connecting to CRI
* first load blank page, then navigate
* Page.navigate is working
* linting
* remove title
* add mocha banner
* more banners
* update some server unit tests
* update integration test
* document how to run single driver spec file
* set the focus back on the page before navigating from blank chrome tab
* update server unit test
* do not store Chrome remote interface reference for now
* record video of the Chrome tab using screencast API
* use dynamic port to connect to Chrome remote interface
* update unit tests
* refactoring
* wrap chrome remote interface in our interface, limit access to send
* resolved merge
* fix reference
* passing run unit spec
* stub canary search for CI to pass
* add build step to packages/server
* update chrome spec
* do not build js on install for server
* updated spec snapshots
* update 6_visit_spec snapshot
* update snapshot for 6_web_security_spec
* update snapshot for 3_plugins_spec
* update snapshot for 3_user_agent_spec
* update snapshot for 5_stdout_spec
* update snapshot for 2_browser_path_spec
* do not git ignore js files, add note why
* update several snapshots with video on Chrome
* update visit performance snapshot
* add chrome-remote-interface dependency
* cleanup coffeescript conversion to JS, fix some type errors, make parallel override clearer
* fix failing tests
* Fix snapshot - now we do record in Chrome, so warning message is no longer there.
* remove chrome warnings about not recording from snapshot
* Remove performance tests from 6_visit_spec snapshot
* Remove error from snapshot
* Add newline back to cy_visit_performance_spec snapshot
* Use CDP to control Chrome cookies + screenshot
* Add devtools types
* Cleanup
* Cleanup
* Add guards for minimum CDP version
* Fix failing tests
* Split cdp_automation_spec out of electron_spec
* Move takeScreenshot to cri-client
* Navigate to about:blank
* look for blank page url
* add note about avoiding Prettier
* disable prettier a little more
* call chrome remote interface close after each spec
* return promise when starting screencast
* update failing unit tests, add cri client close test
* update integration test
* Add verbose debug statements to cri-client
* Use connect.createRetryingSocket for CDP connection
* record video from chrome browsers
* add method for validating browser family
* update e2e spec snapshot
* update 4_request_spec snapshot
* update snapshot for spec 1_commands_outside_of_test_spec
* update snapshot for 3_plugins_spec
* update snapshot for spec 3_user_agent_spec
* try: Always log video capturing errors
* update snapshot for 2_browser_path_spec
* update snapshot for 2_cookies_spec
* better browser family test
* update snapshot for 5_stdout_spec
* update snapshot for 5_subdomain_spec
* Add protocol_spec tests
* do not capture video during performance test
* Add test for VIDEO_POST_PROCESSING_FAILED warning
* Add basic cookie validation in cy.setCookie
* Update cdp_automation to throw on Network.setCookie failure code
* Update tests 🎉
* Update snapshot
* Fix test
* Remove redundant logs, cleanup
* Add cri-client_spec, fix some small bugs, improve errors
* Update dep
* use client.on to register screencast callback
* use isCookieName
* strict-cookie-parser@3.1.0
* cleanup prettier, extract some functions, switch to browser.family
* moar cleanup and fixes
* add logging to the cri-client so we can see every message sent + received to the cdp protocol
* bump bluebird to 3.7.0 for .tapCatch addition
* Fix unit tests
* WIP: update e2e test to ensure that duration of the video matches what we expect
* Test duration of recorded video
* Run 6_video_compression in chrome + electron
* Cleanup
* finish ffmpeg duration verification
* Update 8_reporters_spec snapshot
* Fix cri-client test
* Update CRI close logic to monkey-patch browser.kill
* add isBrowserFamily back
* make it possible for remote-debugging-port to get overridden
* Make CDP timeout 5s; add unit, e2e tests for CDP failure; add user-friendly CDP failure error
* Update tests
* Use CYPRESS_REMOTE_DEBUGGING_PORT to set CDP port; update CDP error message
* Change new Buffer to Buffer.from
* Apply name validation on all cookie commands
* Just throw on Chrome start if the CDP version is < 1.3
* Fix cypress_spec
* Use CDP to set resolution + scale factor in Chrome e2e
* Revert "Use CDP to set resolution + scale factor in Chrome e2e"
This reverts commit a1b86d9413.
* use CYPRESS_FORCE_BROWSER_SCALE to force standard resolution
* don't do --window-size --kiosk
* Use CDP to set resolution + scale factor in Chrome e2e
* Revert "use CYPRESS_FORCE_BROWSER_SCALE to force standard resolution"
This reverts commit 22c5e78670.
* Use Page.captureScreenshot for Electron + Chrome, reduce logic
* Use before() task to force device metrics in Chrome
* Fix protocol_spec
* Update 7_record_spec to allow for before() hook
* Update 6_task_spec snapshot
* Appease eslint
* Update hooks in 5_spec_isolation snapshot
* some general promisification and cleanup
* feedback on pluginsfile
* cdp_automation feedback
* chrome.coff feedback
* feedback
* run e2e tests on port 4466, ensure no e2e test ever runs on 5566 to prevent conflicting with debugger port
* accept new 'remote:debugger:protocol' automation command to control device metrics overrides
* update web security e2e to run on electron + chrome
* run web security tests in electorn, disable context isolation
* pass disable-site-isolation-trials to Electron so webSecurity works
* Fix errors in e2e tests caused by extra log item
* fix cri-client unit tests
* fancy arrows in log message
Co-authored-by: Gleb Bahmutov <gleb.bahmutov@gmail.com>
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* cli, server: introduce --config-file argument
* server: remove unused import
* server: wip
* server: consider --config-file in settings
* server: pass options to settings.read from config
* server: store options in Project class, pass to all settings calls
* server: _initPlugins needs to accept options, for being called from server
* server: accept optional external options in open
* cli: update help snapshots
* server: realizing now that these were written like this so they could be stubbed - removing some unnecessary usages of @options
* cli: pass configFile when it's false
* server: --config-file false and --config-file blah.json work
* server: add unit tests for --config-file
* server: pass configFile to desktop-gui
* desktop-gui: display 'cypress.json' according to --config-file arg
* desktop-gui: add integration tests for --config-file
* cli: add tests for --config-file
* PR changes
* PR changes
* cli: update snapshots
* server: updating error messages
* runner: update cypress.json mention
* fixing name overlap
* server: integration tests for --config-file
* runner: update Header component tests
* cli: fix snapshot
* desktop-gui: fix test
* driver: fixing error messages - not really any visibility to cli args from here so just static strings
* server: update snapshots
* server: update snapshots
* cli: updating snapshot
* driver: how did i miss this?
* add skipped blank line to the snapshot
* fix missing proxy require statement (was lost in merge of develop)...weird
* add module API defs to types
* module API tests
* send better error when config file can't be found
* fix dtslint test
* update cli help to use 'configuration file'
* update snapshot using 7.7.1 in place
* fix failing config_spec
* be.visible
* show custom config file name in driver errors
* add tests for non-default config file in driver error messages
* single-quote config file name
* 🙅 IIFEs 🙅
* 🤦
* fix failing test
* fix failing test, cleanup
* lint
* delete duplicate coffee spec
* Update run.js
* Delete app_spec.js.mp4
* in open mode, only store projects to recents list if 'cypress.json' is the configFile
discussion: https://git.io/JeGyF
* feedback
* 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>
* Add ability to zoom in / out in Electron browser
- tested manually also 👍
* Move reload back to dev tools menu
* make sure eslint is enabled
* add globals defined in spec_helper to eslintrc
* remove unused require
* decaffeinate menu files + fix failing test
* fix decaffeinate merge issues
* desktop-gui: use authBegin api
* server: add auth lib for in-browser auth
* server: unneeded
* server: send proper cors header, actually receive authinfo
* desktop-gui: DASHBOARD_LOGIN
* server: send both auth flows through dashboard login
* server, desktop-gui: exchange code for token, move logic out of desktop gui, cache auth urls
* server: cleanup
* server: refresh token [wip]
* server: cleanup
* server: focus main window on login
* server: focus cypress after login
* server: fix
* server: use id_token so Google Login works, fixes to fallback electron auth flow
* desktop-gui: "Log In with GitHub" -> "Log In to Dashboard"
* server: work without electron
* server: what a bizarre function signature, but ok
* server: unit test for new auth.js
* driver, server: cleanup
* server: use redirects instead of XHR
* server: update api spec
* add some tests for token refreshin
* desktop-gui: update tests, cleanup
* unit tests
* add user unit tests
* server: rely on dashboard to set us up with access_token, user profile, etc
* server: cleanup
* redirect errors too
* server: don't worry about refresh tokens in TR
* guard against null server
* don't regenerate state
* fix auth unit test
* fall back to electron auth if native auth never opens
* break out MarkdownRenderer component
* warn if browser not opened, offer copyable url
* remove electron fallback and all login window handling
* update tests
* send more feedback when authing
* add success message when logging in
* update tests to expect continue button, warnings
* use :contains
* send machineId, version, platform, arch with login
* createSignout -> createLogout, get logoutUrl from /auth v2 endpoint
* Change version queryParam to cypressVersion, keep platform as platform, don't bother sending arch
* Change " Opening browser..." button to display " Browser failed to open"
* "You are now logged in to the Cypress Dashboard as Zach Bloomquist." -> "You are now logged in as Zach Bloomquist."
* POST /signout -> GET /logout
* make fallback URL click-to-select
* add tests for edge cases in browser launching
* cleanup
* logoutUrl -> dashboardLogoutUrl
* getLogout -> postLogout
* getLogout -> postLogout
* send machineId with postLogout
* add chrome policy check that is logged to stdout/displayed in GUI
* improve warning message
* add desktop-gui warning when launching browser
* update tests
* clean up adding warnings to browsers in the gui
* support multiple warnings in gui
* update on-link
* don't show warning in open mode
* add test for warning getting attached, add hyperlink to warning tooltip
* render tooltip warnings with markdown
* pass NO_CHECK_DEPS=1 to skip dep check
* @cypress/react-tooltip@0.5.0 - adds clickability to tooltips
* add link to issue
* dont need to update reporter and runner
* use synchronous console.log, not async errors.log for displaying yellow warnings
* use trigger, do not build up events manually
/cc @flotwig
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
* Allow users to disable exception reporting with CYPRESS_EXCEPTION_REPORTING=0
* rename to CYPRESS_CRASH_REPORTS, do not merge into env
* rename createRaygunException -> createCrashReport
* add projectId to default config keys so it shows up resolved project settings
-
* only suppress CYPRESS_ENV from showing up as an env var, allow CYPRESS_CRASH_REPORTS to be displayed
* make config keys a clear constant, formatting, cleanup
* truncate special env vars and debug logs
* only set authToken if truthy
* removed unused require
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
* upgrade to electron 2.0.18 and node 8.9.3
* enable Inspect Element in electron context menu
* use electron-context-menu 0.11.0 due to electron 4 requirement
* 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>
* 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
* 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
* WIP: refactor runs and recordings, update to new API updates, iteratively send spec results [skip ci]
* update / add schema deps
* add takenAt to screenshots payload
* WIP: refactor recordings to send correctly payloads, iterative through each spec, error handling, e2e tests
* add missing properties, remove hacks, upload stdout, passing tests
* normalize wall clock for newest schema spec
* rename projectPath -> projectRoot for clarity
* normalize specPattern to be relative to projectRoot
* comment out lib/api debug code
* WIP fixes a lot of failing tests
* many more tests around recording
* WIP: update to use x-os-name on all instead of platform
* WIP: update to route version 4 for creating instances
* server: upgrade json-schemas to 4.7.2
* remove debug logs
* fix stdout not being restored correctly between specs
* test all the edge cases with failed api interactions and early exits
* add e2e tests around recording without projectID
* add e2e tests around recording without recordKey
* refactored all tests surrounding record mode, removed duplicates, tested only edge cases
* fixes#1692
* fix failing unit tests, bump schemas
* bump sinon, replace custom sandbox
* fix sinon@5 not restoring fake timers automatically
* missing e2e record snapshots
* fix failing tests, don't pass config through each run, remove old timings in favor of spec isolation
* more e2e test fixes
* add e2e tests around uploading artifacts, fix bug with not uploading videos when it should
- cleanup some dead code
- add debug logs
* cleanup dead code, remove notion of failingTests