* server, driver: fixes#886 redefine self + parent to prevent framebusting and clickjacking security measures
- add modifyObjectiveCode config, true by default
* driver: increase timeout for flaky test in CI
* server, driver: moved obstructive code rewriting to the proxy layer, out of JS, providing more comprehensive fix
* server, driver: fixes failing tests, make regexp much more conservative
* server: increase security specificity... down the rabbit hole we go
* server, driver: fixes#1292 relax domain parsing rules and fallback to naive segment parsing to fix local and localhost
* driver: simplify ip address regexp
* electron: upgrade to 1.8.2, node 8.2.1, chromium 59
* server: update snapshots for node
* server: try to debug timeouts for mochawesome
* bump zunder
- node-sass 3.13.1 does not work with Node 8, since we’re upgrading the
project to node 8.2.1, we needed node-sass 4.5.3+. This node-sass dep
was coming from gulp-sass dep in zunder which has since been updated
* server: figured out that fixture scaffolding can cause timeouts
* bump zunder - get fix so that asserts are not prefixed with /
* server: use our own heroku example app
* use cypress/browsers:chrome64 docker image on Circle with Node 8
* update root folder name
* add hash to root cache
* disable permissions test, because cannot run as root
* server: only disable test in CI
* test new binary against other projects
* all: rename cypress-monorepo -> cypress
* scripts: use latest docker container
* server: don't skip as this messes up hooks which cause failures downstream
* driver: bump timeout for zonejs
* server: make tests pass for node 8.2.1 and 8.4.0
* server: pass --cwd from CLI to use when resolving relative paths for various options
- remove unnecessary cwd manipulation in scripts/start
* server: fixes#1159, specs are normalized into an array resolved against cwd
- projectPath is now normalized against cwd as well
* server: move hosts out of CLI args, keep as config only
* server: convert spec array to string on module API
* cli: must ref root package directly
* server: fixes busted specs due to cherry pick
* server: temporary fix for specs being normalized into an array
* server: move around spec flattening earlier
* server: pass absolute path for specs
* server: revert flattening hosts into config temporarily
* server: add correct relative + absolute path to spec
* driver: normalize spec path against project
* driver: skip flaky test for now [skip ci]
* server: fixes#802 and fixes#380 and fixes#402 and fixes#493 and fixes#1161
- use the public suffix when parsing tld’s so that document.domain is
set correctly
* driver: move location spec back into cypress tests
* server, driver: fixes: #600 and fixes#1175 use public suffix for parsing tld, handle multiple different subdomains on cy.visit
* server: fixes#1141 use runner.failures and increment them ourselves
* server: opt, install to server node_modules and then copy into e2e
* server: fixes#1063 and #551, ensure hooks cause exit codes + mochawesome resports are generated
* server: reduce unnecessary async ops
* server: fixes#977, capture stdout in windows
* driver: skip flaky tests for now
* root: fix breaking eslint due to 4.14.0
* cli: bump xvfb to make node4 happy
* cli: bump xvfb fix context
* cli: fixes#838 start cypress in dev by routing through the CLI
- matches how we run in production better to keep parity and consistency
* cli: add coerceFalse for clarity
* cli: add global flag, update to work with windows
* server: bring into parity with root scripts
* cli: just execute start script directly to work with windows
* cli: if colors are supported then force them via env vars
- this fixes windows not displaying colors from electron because by
default isTTY is false (due to electron)
* cli: fixes#921 don't ignore stderr, inherit stdio on everything except when linux + xvfb
- filter out stderr messages coming from Xlib or libudev (from xvfb)
* cli, server: force stderr tty so that normalize tty behavior when piping
* server: drop in supports color so debug outputs more colors!
* server: remove empty line
* root: refer to cypress not monorepo
* cli: make util.supportsColor return boolean
* cl: add tests around spawn behavior with forcing colors, tty, and stdio configuration
* cli: handle xvfb onStderrData callback to output debug information
* cli: handle non zero exit code error from xvfb with special message
* cli: fixes#838 start cypress in dev by routing through the CLI
- matches how we run in production better to keep parity and consistency
* cli: add coerceFalse for clarity
* cli: add global flag, update to work with windows
* server: bring into parity with root scripts
* cli: just execute start script directly to work with windows
* cli, server: fixes failing tests
* server: fixes#1093, ensure github login works
- add more comprehensive tests around windows and events
- test that github callbacks work as expected
* server: fixes failing tests
* server: fixes failing tests, more resets
* server: fixes#691, add event for exposing browser launch args
- enable special handling of ‘—load-extension’
- add e2e / integration / unit tests
- handle both chrome + electron cases
* server: iterate on failing tests, don't strip electron options else we lose valuable properties
- add better debugging
* server: fix failing tests, browsers needed
* server: send in a complete browser object for 'before:browser:launch'
- useful for doing conditional things with version and/or path
* server: remove unused file
* server: WIP, start implementing accepting plugin returning promise and yielding config overrides [skip ci]
* server: cleanup the env + environentVariables disaster. simplify and only use 'env'
* server, desktop-gum: rename 'env' to 'cypressEnv' to avoid conflicts, fix failing tests
* server: modify plugins error content to be clearer
* runner, driver: more environmentVariables -> env cleanup
* fixes#509 return the complete configuration object to Cypress.config()
* fixes#1042 enable plugins to return a promise and modify config
* desktop-gui: add 'plugin' override to configuration display
* server: bug fix when plugin cause a project not to open
* desktop-gui: fix for failing e2e test
* server: make errors clearer when plugins crash
* server: fix bug with PLUGINS_FUNCTION_ERROR not sending right arguments
- fix failing tests
- improve plugin error content
* server: fix failing snapshots, preprocessor is invoked for support + spec files
* server: fix tests, don't watch the support file initially
- this was causing a problem where unhandled preprocessor errors were
causing the entire process to hang.
- this was happening because we weren’t properly running support files
through a custom preprocessor initially
* fixes failing tests
* release 1.0.3 [skip ci]
* use chrome62 docker image
* server: fixes#1020 and #1021 - disable gnu and add no sandbox when in linux and launching chrome
* server: (WIP) properly pass in browserName + version to API when creating instances
* server: fixes#854 and failing tests
* server: fix using wrong property on found browser
* driver: provide additional context when uncaught errors originate either from spec code or app code
* server: fix failing snapshots for uncaught exceptions in spec + test code
* Update requestUrl method to accept options param
* Update requestUrl to only throw error when failOnStatusCode option is true
* Set the default option value for failOnStatusCode to true
* Pass options to requestUrl call
* Update _onResolveUrl to take an options param
* Update _onResolveUrl to set domain for invalid status codes when visitable
* Update socket delegator to pass options arg to onResolveUrl
* Add server test case for new functionality around resolving non-2xx responses
* Add new driver test routes
* Add driver pkg test case for visiting non-2xx pages
* Add error test for edge case when non-2xx and non html response
* driver: normalize error messages by reducing 2 or more new lines into only 2 new lines
* driver: make test server routes clearer, remove unused route
* driver: simplify accepting bad status codes logic
- keep the isOkStatusCode logic in the server only, instead of also
putting it in the driver
- update the tests accordingly
- remove test that was unnecessary
* driver: add error message for explaining how to test bad status codes
* server: fix failing snapshot tests due to error message changes new line normalization
* add platform and arch to configuration object for #824
* pass platform and arch from config
* test Cypress.platform and Cypress.arch
* add TypeScript definitions for platform and arch
* server: upgrade browserify preprocessor to 1.0.1
* server: rename preprocessor config to file object
* server: normalize path when removing preprocessor file
* server: only add one listener for file:updated in socket
previously, a listener would be added for every spec file opened, linearly increasing how many watched:file:changed events would be fired when a single file changed
* fix broken menu specs
* extract browserify code and create preprocessor abstraction
* server: remove unused code
* server: implement logic for importing preprocessor
* server: add eslintrc and ignore test fixtures
* server: implement plugins API
* server: add node_cache module to manage clearing a package and its dependencies
* server: clear plugins file from cache to re-require it
* server: set pluginsFile to absolute path
* server: add debug logging to plugins
* server: watch pluginsFile
* server: throw the right error when requiring plugins file
* server: organize config folders and keys visually
* server: scaffold plugins file
* server: require plugins file via nodeCache.require
* server: update browserify preprocessor name and point to github for now
* server: remove redundant integration tests
* server: always scaffold plugins file, except when falsey
* server: add plugins file test to scaffold spec
* server: always provide util.fileUpdated to preprocessor
* server: update browserify-preprocessor dep
* server: fix integration tests
* server: remove redundant logic
* server: catch errors thrown synchronously by plugins function
* server: reduce chances of flakyness in async test
* driver: fix broken spec
* server: don’t check for dirname of supportFile and pluginFile when we know they’re already a directory
* driver: there is no dist
* server: update default options sent to browserify preprocessor
* server: send config into browserify instead of options
* server: add test around default preprocessor
* server: update browserify preprocessor
* server: refactor events spec to better handle multiple calls to handleEvent
* server: add tests around project:open events
* server/desktop-gui: handle errors when plugins file changes
* server: fix events spec
* server: allow any file types to be spec files
* server: validate config.pluginsFile
* server: remove link to error doc
* server: improve plugins error message
* server: simplify example plugins file
* server: on:spec:file:preprocessor -> file:preprocessor
* server: wrap plugins in a child process
* server: rename specsGlob to testFiles
* server: bump browserify-preprocessor ‘version’
* server: fix references left by merge
* server: fix incorrect function names
* server: fix plugin error serialization
* server: display error if plugins process has an uncaught exception or unhandled rejection
* server: reset domain on reset
* server: exit early on plugin error headlessly
* server: add e2e tests for plugins/preprocessors
* server: remove obselete node cache file
* server: fix integration tests
* server: log plugins error before exiting
* server: use npm version of browserify preprocessor
* server: extract string-splitting function
* socket: use path.join in spec
* server: eslint ignore scaffold files
* server: fix scaffolded plugins file links, add snapshot test
* server: if app_spec runs, cause a failure [skip ci]
- tested locally
* server: log some basic info when creating build through api
* send list of specs to API, close#861
* update a few unit tests
* set exact version of typescript and ts-node
* test integeration test
* use bluebird instead of ramba for tap-tap-tapping
* server: find and filter specs by specPattern, return name relative to integration folder, add better integration specs
* replace gift with plain git commands, close#841
* testing git commands
* working as before
* reworked git command and sha unit test
* removed git module, using @cypress/commit-info
* update to pass the test
* remove one more reference to old git file