* Update circle.yml to run e2e tests in chrome + electron
* WIP: create multiple tests per browser, but utilizing the same base snapshot
- create a dynamic test title with browser appended
- use a base named snapshot without the browser name appended
- patch snap-shot-it not to rethrow twice unnecessarily which ends up
throwing the wrong error
* Add e2e.coffee to stop-only ignore
* Convert existing x-browser e2e tests to use e2e.it
* update snapshots
* really add e2e to stop-only skip
* Replace screenshot dimensions in all tests, run only in process.env.BROWSER
* add e2e.it to more tests that should be x-browser
* update snapshots
* PEMDAS
* default e2e browser -> electron
Run afterEaches when skipping testo
Recurse upwards with runAfterEach
stop promise chains
* Revert "default e2e browser -> electron"
This reverts commit 3104f998da.
* Undo
* snap-shot-it@7.9.0
* Remove snap-shot-it patch
* Change e2e snapshot to use allowSharedSnapshot
* Add keepScreenshotDimensions to screenshot specs
* update snapshots
* fix snapshotit
* keepScreenshotDimensions: true -> sanitizeScreenshotDimensions: false
* Fix screenshot snapshots
* reduce snapshot noise
* rm 0_simple_spec
* deabstract circle.yml command
* fix circle.yml
* reduce snapshot noise
* clean up 6_visit_spec snapshot
* use allowSharedSnapshot: true in 5_spec_isolation
* Fix 5_screenshots, 2_form_submissions
* Normalize screenshot sizes in 5_spec_isolation snapshot
* Add sanitizeScreenshotDimensions only to non-e2e-project tests
Add --window-size=1280,720 --kiosk to chrome args
* update snapshots
* Use e2e.it for chrome/electron-specific tests
* handle logic for skipping tests when default browsers do not match specified browser
- implement e2e.it.skip to match mocha’s it.skip
- allow turning off dynamic test generation
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
* Updated cypress/scripts/binary/util/upload.coffee to use curl and API Tokens as the cfcli command currently *ONLY* supports API Keys.
* Update purge cache to use request-promise
* Cleanup & remove sync method
* Remove unused cloudflare-cli dep
* update appveyor encrypted secrets for cloudflare
* add missing deps
Co-authored-by: Zach Bloomquist <github@chary.us>
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
* cleanup type_spec, allow unused-vars for args
* fix missing return
* rename mouse/keyboard
* apply changes on this branch with rename
* temp 07/18/19 [skip ci] type_spec minor changes
* temp 07/19/19 [skip ci]
* temp 07/22/19 [skip ci]
* temp 07/22/19 [skip ci]
* remove accidental spec, use beforeEach visit in click_spec
* add tests for cy.trigger changes
* re-run build
* add typedefs
* temp 08/08/19 [skip ci]
* fix type_spec, click_spec
* fix console table event table logging
* fix spec utils
* fix invalid clicking-into-iframe spec
* address review, cleanup
* temp 09/25/19 [skip ci]
* add test for clicking checkbox, cleanup click_spec
* document mouse click and mouse move algo, adjust mouse move, add test for recursive movement
* cleanup / formatting
* scope the getCommandLogWithText to the active runnable to prevent leakage
* cleanup tests, make values static so tests pass consistently
- use attach listener alias APIs
- remove magic number constants
- fix some incoherent html / script tag stuff
* begin implementation for returning fromAutWindow
- restore original fromWindow algorithm
- begin writing fromAutWindow for calculating red hitbox coordinates
which are layered on the AUT
* move describe block with the others
* refactor actions to DRY up duplicated logic between click/dblclick/rightclick
- tighten up the mouse.js method names, name them consistently
* remove comment
* fix iframe coords and test
* rename fromDocCoords->fromWindowCoords, fix type_spec ux test
* tighten up method, remove unnecessary arg
* add debug logic for retries to console.error() non cypress errors
* renamed fromWindow -> fromElWindow, and fromViewport -> fromElViewport
* handle calculating the fromElWindow coordinates inline
* extract out function for clarity, receive consistent arg names
* cleanup, add lots of comments
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* try connecting to chrome remote interface
* linting
* print CRI targets for better debugging
* linting
* load empty tab first when connecting to CRI
* first load blank page, then navigate
* Page.navigate is working
* linting
* remove title
* add mocha banner
* more banners
* update some server unit tests
* update integration test
* document how to run single driver spec file
* set the focus back on the page before navigating from blank chrome tab
* update server unit test
* do not store Chrome remote interface reference for now
* record video of the Chrome tab using screencast API
* use dynamic port to connect to Chrome remote interface
* update unit tests
* refactoring
* wrap chrome remote interface in our interface, limit access to send
* resolved merge
* fix reference
* passing run unit spec
* stub canary search for CI to pass
* add build step to packages/server
* update chrome spec
* do not build js on install for server
* updated spec snapshots
* update 6_visit_spec snapshot
* update snapshot for 6_web_security_spec
* update snapshot for 3_plugins_spec
* update snapshot for 3_user_agent_spec
* update snapshot for 5_stdout_spec
* update snapshot for 2_browser_path_spec
* do not git ignore js files, add note why
* update several snapshots with video on Chrome
* update visit performance snapshot
* add chrome-remote-interface dependency
* cleanup coffeescript conversion to JS, fix some type errors, make parallel override clearer
* fix failing tests
* Fix snapshot - now we do record in Chrome, so warning message is no longer there.
* remove chrome warnings about not recording from snapshot
* Remove performance tests from 6_visit_spec snapshot
* Remove error from snapshot
* Add newline back to cy_visit_performance_spec snapshot
* Navigate to about:blank
* look for blank page url
* add note about avoiding Prettier
* disable prettier a little more
* call chrome remote interface close after each spec
* return promise when starting screencast
* update failing unit tests, add cri client close test
* update integration test
* Add verbose debug statements to cri-client
* Use connect.createRetryingSocket for CDP connection
* record video from chrome browsers
* add method for validating browser family
* update e2e spec snapshot
* update 4_request_spec snapshot
* update snapshot for spec 1_commands_outside_of_test_spec
* update snapshot for 3_plugins_spec
* update snapshot for spec 3_user_agent_spec
* try: Always log video capturing errors
* update snapshot for 2_browser_path_spec
* update snapshot for 2_cookies_spec
* better browser family test
* update snapshot for 5_stdout_spec
* update snapshot for 5_subdomain_spec
* Add protocol_spec tests
* do not capture video during performance test
* Add test for VIDEO_POST_PROCESSING_FAILED warning
* use client.on to register screencast callback
* cleanup prettier, extract some functions, switch to browser.family
* moar cleanup and fixes
* add logging to the cri-client so we can see every message sent + received to the cdp protocol
* bump bluebird to 3.7.0 for .tapCatch addition
* Fix unit tests
* WIP: update e2e test to ensure that duration of the video matches what we expect
* Test duration of recorded video
* Run 6_video_compression in chrome + electron
* Cleanup
* finish ffmpeg duration verification
* Update 8_reporters_spec snapshot
* Update CRI close logic to monkey-patch browser.kill
* add isBrowserFamily back
* make it possible for remote-debugging-port to get overridden
* Make CDP timeout 5s; add unit, e2e tests for CDP failure; add user-friendly CDP failure error
* Update tests
* Use CYPRESS_REMOTE_DEBUGGING_PORT to set CDP port; update CDP error message
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Zach Bloomquist <github@chary.us>
* dont use jquery for width/height calculations for dom highlights, put opacity on wrapper element
* add test for inline els
* some final cleanup
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
* [skip-ci] Add some of new Pull Request and Pull Request Review process to Contributing guide
* More updates to the Guidelines / dep updates and minor changes that were outdated.
* run driver-integration tests in electron as well
* fix invalid clock_spec, performance entries not present in electron
* circleci: bump parallelism to 5 for driver tests
* circleci: fix config
* fix invalid navigation_spec to work on electron
* fix: switch back to using jquery width/height on element dimensions
* cleanup spec
* minor minor cleanup spec
* fix padding highlight as well
* test refac
* rename expect -> should
* still use innerwidth for window
* Suppress NODE_TLS_REJECT_UNAUTHORIZED warning
* move warning suppression to own module; add tests with and without
* use spread operator for args
* move originalEmitWarning
* use Node path from config file to run plugins
* add finding system node
* memoize node find, use fix-path if Node is not found
* find Node asynchronously
* update note on ENFILE
* print node version before executing registered event
* use nodeVersion option, add validator isOneOf
* linting
* remove resolve-dir
* debugging unit test
* resolve original promise to make the tests run correctly
* update second test
* add unit tests
* upgrade snap-shot-it package to be able to update snapshots
* make finding node path part of startup, merge into config
* update tests
* add node version & path to run output
* add node version display to desktop-gui
* add warnings, add tests, add learn more link in desktop-gui
* Revert "add node version & path to run output"
This reverts commit 40a3218175.
* only show Node Version if it is non-default
* Add e2e test for using system node
* cleanup
* add tests that resolvedNodePath and Version are available in tests
* assert nodeVersion == system
* add nodeVersion to schema
* add new configoptions to types
* add fallback if pluginsfile is disabled
* new package.json sorting
* update some of the wording/styling of Node Version panel
* remove ` from schema file
* clean up decaffeinated tests + update wording when no pluginsfile is present
* playing with messaging.
* push updated node version panel design
* update design + copy of Node panel again
* some more iteration on design (WIP)
* Finish design changes + fix tests
* add debug message
* linting problems
* add missed require
* Add comment to refactor the colWidths in this PR after another PR goes
* replace the exact length of Node version in specfiles
* print object for node version and path instead of %s %s
* update snapshot to match v12 length
Co-authored-by: Zach Bloomquist <github@chary.us>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* Fix scrolling of desktop-gui panes after Chrome upgrade
* even better
* Restore box-shadow on runs tab
* Add auth fallback code on runs list
* Update project modal to use LoginModal instead of copypasta
* Fix failing tests
* bump up truncation of formatting http props to 2000 chars instead of 100
let’s see what snapshots look like 🤞
* Add a test for something with a long prop (url) to have snapshot to not truncate.
* remove unnecessary module
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
* deasync failing on node 12.4.0 until its installed manually
* existential operator + comments
* use $dom utils for determining whether arg is valid jquery element
* cleanup and normalize variables to indicate whether they are jquery or not
- micro opt setting const for element accessors
* nvm, don't think its necessary
* fix(errors): better error message when element is detached during actionability (address #695)
* fix various failing tests
* fix visibility_spec typo
* cleanup test, ensures.coffee
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* add failing test for utf8 word boundary corruption
* use UTF-8 aware stream replacer
* cleanup
* cleanup test server
* add link to issue
* add replace_stream tests
* add license
* perf improvements - tsificiation
* emit the maximum chars possible
* add better types
* move license, update test