* fix: get correct env from npm config
`npm config set VAR VAL` will inject `npm_config_var=val` environment
variable. This commit will solve this issue
Closes: #24556
* Disable commercial recommendations for system tests.
* Disable commercial recommendations
* Update system-tests/lib/system-tests.ts
* Revert changes
* Update cli/test/lib/util_spec.js
* Update cli/test/lib/util_spec.js
Co-authored-by: Matt Henkes <mjhenkes@gmail.com>
* develop: (52 commits)
feat: use hoisted yarn install in binary build (#17285)
fix: compile npm packages for node 12 (#18989)
fix: show call count even if `cy.stub().log(false)`. (#18907)
chore: Update TypeScript to 4.4.4 (#18930)
fix: wrap playground selectors in double quotes if not included (#18442)
fix: flaky settings_spec test (#18979)
chore: Update Chrome (stable) to 96.0.4664.45 (#18931)
fix: Loading of specs with % in the filename (#18877)
chore: refactor `create` into class `$Cy` (#18715)
chore: Update Chrome (beta) to 96.0.4664.45 (#18891)
fix: flaky `system-tests-firefox` job (#18848)
chore: release @cypress/webpack-preprocessor-v5.10.0
chore: release @cypress/vue-v3.0.5
chore: release @cypress/schematic-v1.6.0
chore: release create-cypress-tests-v1.2.0
release 9.0.0
feat: ensure major release
have conduit app wait on localhost:3000
fix install-required-node
use --legacy-peer-deps
...
* develop: (40 commits)
fix(driver): Sticky elements within a fixed container will not prevent an element from being scrolled to (#18441)
chore: make `create` function on server.ts obsolete (#18615)
docs: Add instructions to squash commits to develop in Contributing (#18728)
fix(@cypress/react): throw if using Next.js swc-loader without nodeVersion=system (#18686)
refactor: remove Ramda (#18723)
chore: Increase paralleled machines for desktop-gui tests (#18725)
chore: Update Chrome (stable) to 95.0.4638.69 (#18696)
chore: release @cypress/vue-v3.0.4
chore: release @cypress/react-v5.10.2
chore: release @cypress/schematic-v1.5.3
fix: remove outdated registry link (#18710)
chore: release @cypress/schematic-v1.5.2
chore: release create-cypress-tests-v1.1.3
chore: Update Chrome (beta) to 96.0.4664.27 (#18676)
chore(tests): Remove flaky assertion that relies on png how compression (#18668)
fix: make sure to go back to no-specs when delete spec file (#17760)
fix: Next.JS 12 components testing failing with ` TypeError: Cannot read property 'traceChild' of undefined` (#18648)
Backport .gitignore from unified-desktop-gui
chore(docs): add 'Upgrading Electron' instructions (#18594)
release 8.7.0 [skip ci]
...
* Option to disable Cypress the verbose results to stdout
--quiet mode to disable the verbose results to stdout
but still use specified formatter
* Update cli/schema/cypress.schema.json
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
* Cypress module support for --quiet
Cypress module support for --quiet
* Apply suggestions from code review
Co-authored-by: Zach Bloomquist <github@chary.us>
* Address feedback
Address feedback, thanks
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
Co-authored-by: Zach Bloomquist <github@chary.us>
* Detect if NODE_OPTIONS are present in binary; if not, respawn
* Always reset NODE_OPTIONS, even if no ORIGINAL_
Co-authored-by: Andrew Smith <andrew@andrew.codes>
* Exit with correct code # from stub process
* Clean up based on Brian's feedback
* how process.versions is null, i have no idea, but it is
* add repro for invalid header char
* Always pass NODE_OPTIONS with max-http-header-size (#5452)
* cli: set NODE_OPTIONS=--max-http-header-size=1024*1024 on spawn
* electron: remove redundant max-http-header-size
* server: add useCli option to make e2e tests go thru cli
* server: add test for XHR with body > 100kb via CLI
* clean up conditional
* cli: don't pass --max-http-header-size in dev w node < 11.10
* add original_node_options to restore o.g. user node_options
* force no color
* Revert "Use websockets to stub large XHR response bodies instead of hea… (#5525)"
This reverts commit 249db45363.
* fix yarn.lock
* update 4_xhr_spec snapshot
* make 6_visit_spec reproduce invalid header char error
* pass --http-parser=legacy
* still set headers if an ERR_INVALID_CHAR is raised
* add --http-parser=legacy in some more places
* update http_requests_spec
* readd spawn_spec
* improve debug logging
* remove unnecessary changes
* cleanup
* revert yarn.lock to develop
* use cp.spawn, not cp.fork
to work around the Electron patch: https://github.com/electron/electron/blob/39baf6879011c0fe8cc975c7585567c7ed0aeed8/patches/node/refactor_alter_child_process_fork_to_use_execute_script_with.patch
Co-authored-by: Andrew Smith <andrew@andrew.codes>
* Add warning when setting CYPRESS_ENV to non-production value
* Add warning and update error when setting CYPRESS_ENV in config to non-production value
* Update config test/to throw
* we want warning, not throw
* Rename env var to CYPRESS_INTERNAL_ENV + fix warning to actually warn when staging
* update cli snapshot to include new 'info' command
* yarn.lock
* removed the warning from config, is overboard on our own tests 😓
* cleanup from review
Co-authored-by: Gleb Bahmutov <gleb.bahmutov@gmail.com>
* WIP: add cli info command to list detected browsers
* print found browsers
* change to list
* start work on info command calling into binary
* move info command into binary
* print OS info during cypress info command
* add binary cache path to info command
* add browser profile path
* add memory
* get browser profile path without partition
* pick real browsers as examples
* output same info as desired
* better names
* changed colors
* add list of cached binary versions
* do not put stable into name
* add underlined link
* conditionally show profile path, only if the folder exists
* do not list cached binaries
* human-friendly memory print
* print env proxy vars
* print CYPRESS_ env variables
* use _.sample
* update order
* store cypress info output on CI as HTML page artifact
* add percy CLI screenshots
* sanitize cypress info command
* store CLI snapshots in cli/visual-snapshots folder
* update cli unit snapshot
* add cli unit test
* start e2e testing for cypress info
* add test with proxy and cypress vars
* make sure we call the binary
* stricter start check
* start unit testing modes info
* test info mode browser print
* add test for profile path
* add cypress info command to test binary Circle job
* add cypress info to test-binary-as-specific-user circle
* print cypress info --dev on circle and on appveyor
* update .gitignore
* move error in environment load to debug
* always disable xvfb
* add --headless
* Revert "always disable xvfb" - it is still needed for Electron
This reverts commit 058679f4ce.
* updates
* update 3_plugins_spec
* update wording now that chrome can be headless
* fix video recording when headless
* Don't assume that chrome is headed
* update electron video recording message
* Add 2_headless_spec for Cypress.browser values
* update headless language
* still use headless by default for electron and headed for chrome
* fix up cli
* fix e2e tests
* update npm api types
* fix 2_headless_spec
* keep alphabetical ordering
* increase binary size limit
* add a comment on the cli error impl
* use _.defaults for default for headed
* fix
* _.defaults mutates
* Alphabetize cli options for my own sanity
* begin added tag flag
* Fix some minor grammar in cli help output + be more specific for specs description
* update snapshot based on alphabetization change
* update snapshot to include --tag in help output
* update logic for pulling out space delimited args to look through --tag and --spec flags dynamically
* Support and pass along tag flag to run and record
- show err if passed without record flag
- sanitize args into comma separated string
- display tag in record errors
* fix some tests/snapshots where 'tag' was missing
* Actually try passing in tag through tests to ensure it prints.
* Merge branch 'develop' into issue-2561-tags
# Conflicts:
# cli/__snapshots__/cli_spec.js
# cli/lib/cli.js
# cli/lib/exec/run.js
# packages/server/lib/modes/run.js
# packages/server/lib/util/args.js
* Send 'tags' as an array to backend API
* Update json-schemas to query against 2.2.0 of postRun
- this will require a bump to json-schemas repo
* update test to reflect tags array
* update snapshot to display nightly tag
* rearrange args to alphabetical order in specs
* Add tags to runResponses / remove tag from incorrect instance post
* Fix failing specs / snapshots
* Update error messages + snapshots
* Fix snapshot that no longer displays tag arg
* fix args unit test
* remove extra slash
* add a few more cli tests
* another test just in case
* a quick unit test for displayFlags utility
Co-authored-by: Gleb Bahmutov <gleb.bahmutov@gmail.com>
* cli: set NODE_OPTIONS=--max-http-header-size=1024*1024 on spawn
* electron: remove redundant max-http-header-size
* server: add useCli option to make e2e tests go thru cli
* server: add test for XHR with body > 100kb via CLI
* clean up conditional
* cli: don't pass --max-http-header-size in dev w node < 11.10
* add original_node_options to restore o.g. user node_options
* force no color
* 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
* if download has checksum use it to verify downloaded file
* check only filesize if no checksum available
* add download tests
* move checksum into util for reuse, be explicit
* add comments explaining headers used to verify checksum
* move hasha to dev dependency
* remove unnecessary function
* do not use deprecated Promise.join with spread
* fix promise join callback
* linting
* fix: trim and remove double quotes around CYPRESS_INSTALL_BINARY
* linting
* add one more unit test for dequote
* add one more unit test
* fix jsdoc
* a few more edge unit tests
* fix(deps): update request-progress to 3.0.0 🌟
* Added method to utils to convert percent value to percentage
- Wrote unit tests for both calculateETA and the percent to percentage
conversion
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* tighten up potential xvfb display problems
- improve the warning message on possible display problems
- reuse existing helper functions for platform detection
- instead of relying on timing mechanisms, if a possible display
problem is detected on linux - capture all of the stderr silently and
if the broken gtk message is detected, retry running
* consolidated and simplified smoke testing, xvfb error logging and messaging
- added —dev support to cypress verify cli command
* fix lots of tests, restore one error message
* fixed remaining CLI tests
* console.log pong only in electron mode
* remove dead code
* cli: debug explanation for XVFB
* linting
* add chai-as-promised to CLI dev
* show Linux specific error solution if cannot verify
* add todo
* chore: consolidate github issue url logic
* linting
* add npm script lint-changed to quickly eslint fix changes JS files
* retry verify with our XVFB
* update errors and tests
* update CLI tests
* add test for display error message
* fix unit test
* add successful test with retry
* finish verify retry test
* warn users if hit display problem on first verify
* try to detect display problem when running electron and retry with our xvfb
* add warning message to spawn when attempting xvfb re-run
* add test for display retry behavior on spawn
* more comments for clarity
* fix typo
* 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>
* 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>
* release 1.0.3 [skip ci]
* release 2.0.0 [skip ci]
* Add a comment to Issue Template directing questions to be asked in chat. [skip ci]
* release 3.1.0 [skip ci]
* add fix for windows + node11
* add getNode11WindowsFix to the utils
* formatting
* do not convert to the windowsHide to string
* add unit tests
* add unit tests
* add unit tests
* Revert "formatting"
This reverts commit 9ecd31ba8e.
* don't ask to commit package.json version
* release 3.1.1 [skip ci]
* move isPlatform into cli/util
* fix version comparison
* revert accidental merge from master