* decode multi bytes correctly when stripping security from files
* fixes proxy errors occurring due to bad gzip responses from servers
- test that error handling on streams works as intended, send back 502
- test that truncated gzip responses are handled correctly
* 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
* WIP creating a new banner + summary table for runs [skip ci]
* WIP continuing to iterate on new run output, use tables for results [skip ci]
* log -> debug
* switch out 400 -> 412 status code on schema errors
* update humanTime to take short or long formats
* debug the starting argv
* create terminal-size wrapper to return terminal columns + rows
* created custom terminal tables for displaying new stdout results for running multiple specs
- made tables responsive when columns < 100
* add e2e tests around exiting with error when browser cannot be found or specs cannot be found
- instead of creating a run, immediately die without making any requests
- improve BROWSER_NOT_FOUND error message
* strip ansi color codes from terminal spec, use chalk instead of colors
* pass webUrl from recording runs to be able to display URL before tests run
* finished new stdout flow for running specs iteratively
* when webUrl is present, display the recorded run in the header + footer
- move from ‘white’ to ‘reset’
- tighten up intro table
* change results output from "Video Captured" to "Video" to pair with newest config option
* use runUrl, not webUrl, fix white space, ensure that e2e snapshots are accurately normalized
* use console.log, not console.error to capture stdout for dashboard
* e2e tests around logging warnings when cannot record video
* 0 seconds -> X seconds
* Tests Starting -> Run Starting, Tests Finished -> Results
* Started video recording -> hr line break
* All Done -> Run Finished
* evenly space stdout section headers
* add a new line when exiting early from bundle errors
* sanitize stdout better, replace duration seconds, etc
* update all the various e2e stdout snapshots
* ensure that COLUMNS env is set to 100 for snapshots to pass
* better logging for env var
* env -> stdout
* store as string
* remove columns
* echo columns
* add columns back in
* comment out
* set terminal columns
* cleanup circle.yml [skip ci]
* normalize more result properties for browser, os, cypress
* set columns for server tests
* enforce no colors and correct columns + rows for e2e tests, fix cloning env vars
* update e2e tests for newest stdout
* set env vars for columns + lines for e2e tests, remove stty
* fix snapshots when duration is X second, X seconds, or XX seconds
* use process.env.COLUMNS not process.stdout
* ugh
* stringify
* log crap out
* quotes oh my
* fix failing e2e snapshot tests
* fix failing e2e tests
* fix failing integration tests
* fixes failing unit tests
* fixes#1585 exit with status 1 whenever no specs were found
* add a couple tests around spec video file name
* cleanup old circleci branch filters
* bump up range of expected timings
* rename specsUtil for clarity, fix failing tests
* extract random string to util
* run specs in isolation, aggregate totalFailures, display output per spec, enable globbing for specs
* extract electron app ready into its own module
* WIP: e2e tests around spec isolation, snapshots, stdout, and complete test results
* removed unused and deprecated remove id's feature
* move fs_warn to fs util to promisify an fs singleton
* create a glob singleton util
* cleanup dead removeIds code
* extract files controller specs into its own file
* extract finding specs out of project instance into its own utility with no state
* use glob util singleton
* use fs util singleton
* lots of formatting and cleanup
* fixes failing headless specs
* fixes all failing unit tests
* fixes failing integration test
* WIP: temporarily throw old error msg
* WIP: skip failing --record integration tests for now
* fix failing e2e tests
* 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: 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
* 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
* 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
* server: detect symlinked case in support file search for #118
* server fix problem found by unit test
* add unit test for paths
* correctly determining files in /tmp for a project
* server: cleanup resolving symlinks