* 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
* 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
* update a few comments
* update more jsdocs
* update actions examples
* update a few more docs
* more jsdoc
* disable linting jsdoc comments in index.d.ts file
* test built binary and NPM against kitchensink
* try building cypress/browsers:chrome67
* implement Omit using Exclude
* bump down to chrome64
* remove this branch from building binary
* doc second cy.find type
* document type for cy.request
* document Cypress.env command
* doc type for Cypress.log
* doc types for uncheck
* add type docs for cy.spy
* document spies and stubs types
* add space to align jsdoc stars
* types: show to correctly pass request options, close#2093
* cast just the http method property
* types for spy withArgs and as
* doc more types for overrides
* type for spread
* type for overriden then
* types for cy.trigger overrides
* rest of types of overriden methods, close#2009
* add cy.stub type for window alert and confirm
* jsdoc for cy.contains
* add jsdoc for viewport width and height
* jsdoc for prev command
* add jsdoc for cy.wait
* add jsdoc for clearLocalStorage
* jsdoc for wrap
* add jsdoc for screenshot with filename
* add jsdoc for clock
* add jsdoc example to cy.its
* complete jsdoc for siblings
* jsdoc for route overrides
* add isHeadless + isHeaded to browser
- move around logic so that instead of launching a browser by name, its
passed the entire browser object
- simplify logic for passing around options.headed
* launch the browser with an object, not browser name
* update browser types
* fix failing tests
* create directory path from screenshot name
* fix screenshot e2e specs
* ensure unique file paths for non-named screenshots
* append failure screenshots with ‘— failure’
* fix snapshot differences caused by slow computer
* fix driver specs
* fix minutes/seconds e2e snapshot replacer
* fix minutes/seconds e2e snapshot replacer again
* fix e2e specs failing due to screenshot path differences
* more snapshot fixes
* more snapshot fixes
* more snapshot fixes
* fix reporter showing wrong path for nested spec when no tests
* nest non-named screenshots in path based on spec path
* fix specs
* fix snapshot
* test that server + project state is reset between specs in cypress run mode
* rename spec.path to spec.relative. pass around the spec object instead of a string path
- store state on the project for current spec + browsers
- simplify how desktop gui passes around spec object
- fixes#1921
- make all specs a real spec model
- rename ‘Run all tests’ to ‘Run all specs’
* remove pretty-error dependency
* fixes#1919 and #1918, add Cypress.spec and Cypress.browser
* fixes all the failing tests
* fixes failing tests
* types: Cypress.spec
* add types for Cypress.browser
* fixes more failing tests
* enable null for spec props when running "All Specs"
* read comments per PR
https://github.com/cypress-io/cypress/pull/1858#issuecomment-396121876
* fixes failing tests
* fix linting
* fix types assertion
* fixes failing tests
* fixes failing tests, update from -- failed to (failed)
* ugh regexp
* fixes more tests
* add name, specName, and testFailure to the afterScreenshot props
* fix failing tests. append (failed) for failed screenshots
- use { testFailure: true } to indicate a failing test screenshot for
use in props
* types: add object to routes, close#1831
* types: remove Response type from cy.route, it belongs only in cy.request
* add example to cy.route doc
* types: add PATCH method, same as pull request #1778
* fixes#1783 validate configuration values after they're set from CLI + Env Vars
* fixes#1754 remove screenshotOnHeadlessFailure and rename trashAssetsBeforeHeadlessRuns
* derp copypasta fail
* 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
* ts: document common assertions, cy and Cypress
* document more common methods
* more comments for #1117
* todomvc examplehas good intellisense, close#1117
* 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