* fixes#1783 validate configuration values after they're set from CLI + Env Vars
* fixes#1754 remove screenshotOnHeadlessFailure and rename trashAssetsBeforeHeadlessRuns
* derp copypasta fail
* handle colors and platform piping
- pipe stderr to ignore high sierra fixes#1745,
- always pipe windows for utf8 encoding fixes#1143 and #1550
- force color in CI by default #1747
- support NO_COLOR argument #1748
* reset TTY for stdin and stdout not just stderr
* fix for failing tests in ci
* fix failing environment unit tests due to sinon env change
* fix failing integration request specs
* fix failing tests, cleanup cache before each test, not after
* fix failing integration server tests
* wip [skip ci] update
* wip [skip ci] update test
* [skip ci] fix env var
* bump sinon, create helper utility to always throw when a stub is called without being given stubbed behavior
* update failing specs
* fix some error messages
* update snapshot
* warning -> note, add snapshot tests
* change snapshot os.release, test env vars
* server: handle undefined values from plugins
* server: have plugins process inherit stdio
so console.logs and such from plugins file come through
* add cy.task()
* server: fix config spec
* driver: fix task spec
* server: change ‘task’ to ‘task:requested’
* server: have ‘task’ event take object literal instead of function
* server: document how to run individual integration and e2e tests
* fix cy.task specs
* server: fix task e2e spec
* add Cypress.Screenshot.defaults, implement most options
* accept new options in cy.screenshot()
* add jsconfig files for vscode’s sake
* only open test when capturing runner
* use dom to hide runner ui instead of react
* screenshot capture “all” -> “runner”
* fix specs
* refactor pausing timers
* implement before/after screenshot callbacks
* fix lint error
* enforce order of captures
* fix spec
* refactor app.jsx screenshot handling
* wait two ticks for repaint to occur before/after screenshots
* use special pixels to ensure cypress ui is hidden when taking app screenshot
* crop non-app from app screenshots
* add e2e test for pathological case where app has pixels that match rendering helper pixels
* fix screenshot app capture snapshot
* add unit tests for lib/automation/screenshot
* use blackout in app capture spec to ensure it renders
* fix task e2e spec
* fix driver screenshot spec
* use Promise.map {concurrency: 1} instead of utils.runSerially
* normalize minute durations in e2e test snapshots
* increase timeout for screenshot app capture e2e test
* correct app capture snapshot
* always run screenshot afterAll step
* call timer functions with context set
* simplify screenshot capture option to just be a string
* clone screenshot config to prevent mutation
* always capture runner w/o blackout on failures
* refactor and add more tests for screenshot events
* default to app capture
* try/catch screenshot dom modifications in case the iframe is cross-origin
* don’t blackout on runner captures
* update e2e test with latest screenshot api
* fix screenshots e2e test now that app capture is default
* refactor server/screenshots
* implement fullPage screenshot capture
* use capture: ‘fullpage’ instead of fullPage: true
* remove unnecessary try/catches
* add e2e tests for fullpage captures
* fix unit tests
* refactor full page screenshots
* rename/refactor from fullpage to multipart
* implement element captures
* split up screenshot e2e tests
* expose clip as screenshot option
* take devicePixelRatio into account for screenshot cropping
* some formatting and fun with retina offscreen images
* determine device pixel ratio server-side
window.devicePixelRatio can’t be trusted, because in headless electron it returns 1 even on a retina screen. Instead, we determine it server-side by dividing the screenshot resolution by the viewport size.
* refactor screenshot buffer handling
* add support for cy.within
* make fullpage the default capture
* only allow one element to be screenshotted
* coerce capture into ‘app’ for element captures
* fix specs broken by fixture change
* make top-left screenshot helper pixel less noticeable
* add some code comments
* refactor runner screenshots handling
* clean up before/after screenshot code
* ensure cleanup if test restarts in middle of screenshot
* skip pixel-checking on failure screenshots to reduce latency
* add types for new screenshot api
* fix typescript linting issues
* @sandbox -> sinon
* fix screenshots spec
* fix e2e spec
* fix specs
* fix specs
* server: handle undefined values from plugins
* server: have plugins process inherit stdio
so console.logs and such from plugins file come through
* add cy.task()
* server: fix config spec
* driver: fix task spec
* server: change ‘task’ to ‘task:requested’
* server: have ‘task’ event take object literal instead of function
* server: document how to run individual integration and e2e tests
* fix cy.task specs
* server: fix task e2e spec
* ensure stack trace comes through for task error
* don’t show stack for ‘known’ user errors
* add types for cy.task
* @sandbox -> sinon
* add e2e spec for task returning undefined
* update readme re: e2e —spec
* timedout -> timedOut
* new Promise + setTimeout -> Promise.delay
* improve cy.task() error messages
* fix specs
* fix: use engines from CLI package, close#1373
* chore: add integration test for build script that writes package.json file
* do not hardcode version
* build npm package in this branch too
* 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]
* Fixed typos in errors.js
* Revert "Fixed typos in errors.js"
This reverts commit 99085af24c.
* Fixed typos in errors.js
* Fixed typo in errors spec snapshot
Hopefully tests should be passing now
* Fixed typo in verify spec snapshot
* 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
* ts: document common assertions, cy and Cypress
* document more common methods
* more comments for #1117
* todomvc examplehas good intellisense, close#1117
* 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
* runner: display css selector helper and highlight on hover
* runner: use unique-selector lib
* runner: eslint auto-fixes
* upgrade zunder to 5.5.1 and update configs
* reporter: add babel deps
* runner/reporter: lock react to 15.6.2
* runner: add highlight w/ tooltip and copy-to-clipboard
* runner/reporter: upgrade react-tooltip to 0.3.1
* server: upgrade browserify-preprocessor to 1.0.2
* cli: eslint auto-fixes
* upgrade zunder to 5.5.2
* runner: add defensive style resets to selector helper highlight
* runner: ensure iframe contents exist before acting on them
* runner: hide selector helper button when tests are loading or running
* runner: use shadow dom for selector helper highlight
* runner: reset state when selector helper is disabled
* runner: rebind selector helper when snapshot changes
* runner: don’t show tooltip when hovering over selector
* runner: integrate playground input into selector helper
* runner: fix mouseover/mouseout for selector
* runner: fix selector clearing
* runner: allow selector area to scroll
* runner: enable switching between get and contains
* runner: refactor method
* runner: add tooltip to selector helper toggle
* runner: focus selector helper input when method changes
* runner: remove references to cypressEnv
* runner: keep selector even if snapshot changes
* runner: persist selector helper state instead of clearing it when things change
* runner: hide method picker when clicking outside of it
* runner: pass model into selector helper
* CSS style changes to selector helper
- merge in changes + fix conflicts
* update close icon to not be so bold
* runner: keep selector helper styles out of main runner styles
* runner: rename playgroundInfo to info
* runner: simplify selector helper model
* driver: restrict more nodes from contains selector
* runner: cleanup
* runner: move selector helper to top
* more style updates for selector-helper
* move arrow to left of cy.
* Added a 'print to console' button
* runner: use fork of unique-selector and accept attribute selectors
* runner: implement print to console
* runner: close selector helper when re-running tests
* runner: improve header responsive design
* reporter: shorten console print message and lengthen duration shown
* more styling for css selector panel.
* style changes off of conversation
* updated main dropdown button
* update colors of input on invalid / no elements to be red
* disable copy to clipboard & print to console buttons if invalid / no elements
* style disabled clipboard & print buttons
* update tooltip on click of 'print to console' to say 'printed!'
* runner: refactor header to use mobx state
* add link to docs help to selector playground
* runner: add tests for header
* runner: use the right button
* runner: add tests for selector helper
* runner: remove unused variable
* runner: focus and select input when selector helper enabled or method changed
* runner: hide tooltip when selector helper is open
* runner: keep highlight from playground unless hovering over aut
* runner: always show selector helper info
* runner: show highlight when hovering over info
* Update SelectorHelper name from old Footer
* move 'selector highlight' behavior into 'highlight button'
* Added tooltip to 'highlight' button.
* runner: some style changes to selector-helper
* runner: do not focus and select input when 'turning off inspect mode'
* runner: fix issue w/ 'close' button on helper not working.
* runner: use Cypress methods for printing elements to console. bring console messages into parity with driver
* driver: revert experimental change to contains
* reporter: fix failing tests
* runner: fix failing tests
* chore: Fill out Cypress API types
* chore: Convert Chainable into a Generic with a subject
* chore: undefined return of then keeps Subject
* fix: Remove incorrect comment
* chore: Add element keys to all selector methods
* chore: Remove generic from cy.not - it doesn't make sense
* chore: Add ChainableArray for array Subjects
* chore: Add ChainerArray to thread types through
* chore: Remove ChainableArray interface
* chore: Fix stub/spy types - returns Agent interface
* chore: Add dtslint and Cypress static types
* chore: Fix types location for cli build
* chore: Removed api from api command paths
* chore: Remove semicolons from type definitions
* chore: Removed semicolons not caught by tslint
* chore: Add type tests
* added CYPRESS_SKIP_BINARY_INSTALL env var check before installing
* cli: provide reason binary installation is being skipped
- more linting, why not
* cli: prettify snapshots by removing whitespace at end of line