Commit Graph

241 Commits

Author SHA1 Message Date
Gleb Bahmutov
a5f2a0f338 schema: update videoCompression to allow boolean, close #2140 (#2142) 2018-07-23 06:12:04 -04:00
Gleb Bahmutov
ca20e74486 fix dtslint file name rule (#2192) 2018-07-23 11:32:37 +02:00
Gleb Bahmutov
7a2c21144f add missing TypeScript jsdocs for types for issue 2009 (#2137)
* 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
2018-07-12 18:42:50 -04:00
Jennifer Shehane
c5af554dca bump deps for security warnings (#2067)
- removes security warning during npm audit
- close #1701
2018-06-30 04:48:03 -04:00
Ben Kucera
ddec7db17a fix error typo (#2057) 2018-06-28 11:08:44 -04:00
Gleb Bahmutov
ee3eb4a2dd add cy.stub type for window alert and confirm (#2008)
* 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
2018-06-25 16:42:51 -07:00
Brian Mann
df0ec8ea8c catch EPIPE errors (#2011)
fixes #1841
2018-06-21 18:29:27 -04:00
Ben Kucera
f90bfbec90 update ci error msg (#1928) 2018-06-20 00:14:15 -04:00
Ben Kucera
db4a4a6d22 Improve Error logging around Cypress verify (#1986)
close #1984 improve error logging for `cypress verify`
close #1985 remove "skipping install" message to local users, keep in CI
2018-06-19 21:52:25 -04:00
Ben Kucera
5a4b2a4a0a allow relative paths in CYPRESS_* env vars (#1989) 2018-06-19 17:34:51 -04:00
Brian Mann
abfb594872 add browser.isHeadless + browser.isHeaded (#1975)
* 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
2018-06-18 03:15:19 -04:00
Chris Breiding
0e2246785c Screenshot fixes/enhancements (#1858)
* 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
2018-06-17 20:01:27 -04:00
Jennifer Shehane
453313fe92 bump cachedir to 1.3.0 (#1947) 2018-06-14 23:52:39 -04:00
Josh Pike
40c3a6b104 Updated request in CLI package.json (#1916) 2018-06-09 16:23:17 -04:00
Gleb Bahmutov
360b58b27d Ts server yields 1907 (#1911)
* types: cy.server yields default server options, close #1907

* add examples to a few TS commands
2018-06-08 11:47:24 -04:00
Gleb Bahmutov
3241c6e229 types for auth in cy.visit, close #1897 (#1908) 2018-06-08 10:11:36 -04:00
Gleb Bahmutov
ff58367838 Ts definition for clear local storage 1899 (#1903)
* types: clearLocalStorage yields localStorage, close #1899

* types: minimatch is a function, close #1902
2018-06-07 20:10:45 -04:00
Ben Kucera
56e00981aa cache commands, --no-exit (#1875)
* add --no-exit, cache commands

* Manage -> Manages

* fix run, run spec

* remove comments
2018-06-05 16:19:23 -04:00
Gleb Bahmutov
39b31fd771 Route typescript fix 1831 (#1874)
* 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
2018-06-05 15:33:24 -04:00
Kevin Heard
5330ccd476 fix typo in comments (#1791) 2018-06-05 15:20:59 -04:00
Ben Kucera
ca9cb8f10b env vars from configs, respect loglevel from npm (#1855) 2018-06-05 15:14:51 -04:00
Job
a4fa1b32f7 fix cli: global binary cache reuse (#1819)
closes #1813
2018-05-30 08:42:42 -04:00
Brian Mann
d92d51a8eb rename videoRecording -> video (#1804) 2018-05-29 17:23:01 -04:00
Ben Kucera
08d75f552f fix cli --version (#1803) 2018-05-29 15:39:18 -04:00
Gleb Bahmutov
1d43023064 cli: bump chalk to 2.4.1 close #1800 (#1801) 2018-05-29 14:23:42 -04:00
Brian Mann
96bd9c403f rename planId -> groupId (#1796)
* remove old / unused dead code for groupId

* rename planId -> groupId
2018-05-29 06:46:36 -04:00
Brian Mann
4053596a88 validate cli + env var config, add breaking config changes (#1784)
* fixes #1783 validate configuration values after they're set from CLI + Env Vars

* fixes #1754 remove screenshotOnHeadlessFailure and rename trashAssetsBeforeHeadlessRuns

* derp copypasta fail
2018-05-28 01:27:54 -04:00
Brian Mann
dc54d232c4 do not include process.env in debug logs 2018-05-26 19:02:13 -04:00
Brian Mann
93906dc8c4 put args on 1 line 2018-05-26 18:14:46 -04:00
Chris Breiding
7db71497a4 Update typescript types for screenshots (#1757)
* update typescript types for screenshots

* fullpage -> fullPage
2018-05-22 20:15:50 -04:00
Brian Mann
d154739726 colors, piping, utf8 characters, stream overrides (#1749)
* 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
2018-05-20 18:32:36 -04:00
Brian Mann
1d0b35bd47 Cli env var changes (#1734)
* 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
2018-05-19 15:37:52 -04:00
Chris Breiding
118297a30e Add screenshot configuration API (#1504)
* 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
2018-05-16 15:00:59 -04:00
Ben Kucera
8a55864ae9 CLI caching (#1699)
* WIP [skip ci] tests passing -1

* WIP [skip ci] tests passing -1

* [WIP] [skip ci] more passing tests

* add run,open,verify cli tests

* fix package.json

* fix install_spec

* rename info_spec -> state_spec

* refactor cli options

* more useful logging

* change binary location, change folder name

* fix --binary-path arg

* update error message for cache

* lib/tasks/install.js changes

* add progress for direct unzip, prefer cache with override version with url/zip

* update cli logs

* prettier logs, remove arg

* fix failing test- stub os.release

* fix cli_spec snapshot, remove group and groupid args
2018-05-16 04:34:12 -04:00
Chris Breiding
d1fe365eca Add cy.task() command (#1422)
* 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
2018-05-15 20:49:20 -04:00
Aftab Khan
d8572371cb Adding the options normalizing step for open API (#1447)
* Adding the normalizing step for open API

* Adding tests to ensure normalization happens
2018-05-15 16:39:07 -04:00
Gleb Bahmutov
8188a44192 cli: print NODE_OPTIONS when DEBUG=cypress... is used, close #1673 (#1675) 2018-05-15 15:51:10 -04:00
Gleb Bahmutov
1f1935b361 Show help on unknown option 837 (#1615)
* cli: if user passed unknown option, show help and exit, close #837

* cli: test unknown option output

* linting
2018-05-15 15:10:26 -04:00
Gleb Bahmutov
bf4f6b9c75 fix: typescript definition for scrollIntoView, close #1606 (#1609)
* fix: fix the typescript definition for scrollIntoView, close #1606

* separate scrollTo options from scrollIntoView
2018-05-15 12:45:20 -04:00
Dumitrana Alinus
95f86236c4 Update index.d.ts (#1622)
Use local types for blob, bluebird, minimatch
2018-05-12 10:15:50 -04:00
PINGUET Julien
a88c04b3bd Add .filter(Function) typing (#1670)
* Add .filter(Function) typing

* Add .filter(Function) typing
2018-05-11 22:10:20 -04:00
Gleb Bahmutov
97e3092300 cli: pass timeout 5 seconds for XVFB, close #1628 (#1629) 2018-04-23 16:16:57 -04:00
Nicholas Boll
039192b1cd chore(types): Add initial Cypress.log API (#1289) 2018-04-15 01:56:59 -04:00
Nicholas Boll
075a3a0757 feat: Add type definitions for Cypress.off (#1514)
* feat: Add Cypress.off type definitions

* Added .off types and tests
2018-04-15 01:53:04 -04:00
Gleb Bahmutov
b839828fd4 place package keywords in root package.json, close #1508 (#1575)
* place package keywords in root package.json, close #1508

* update test snapshot

* add cypress.io keyword
2018-04-15 01:50:40 -04:00
Zaid Hoona
6dd7edea5c Add keywords to allow searching cypress in npmjs.com (#1522)
* Add keyword in package.json
* Also add keywords to the build script
2018-04-09 13:06:38 -04:00
Gleb Bahmutov
cf07e21d23 Fix engines 1373 (#1375)
* 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
2018-02-25 21:04:12 -05:00
Brian Mann
46c1c21ea5 schema: add new modifyObstructiveCode option [skip ci] 2018-02-16 00:42:17 -05:00
Brian Mann
001a310b04 Issue 1159 (#1259)
* 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]
2018-02-07 12:11:24 -05:00
Nicholas Boll
88f534bf08 fix: Incorrect type for 'then' returning a wrapped 'undefined' (#1220) 2018-02-04 14:45:42 -05:00