Commit Graph

37 Commits

Author SHA1 Message Date
Chris Breiding 41512c416a feat: Bundle cy.origin() dependencies at runtime (#25626)
Co-authored-by: cypress-bot[bot] <2f0651858c6e38e0+cypress-bot[bot]@users.noreply.github.com>
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
2023-02-13 11:59:29 -05:00
Matt Schile d1dc1258ea fix: improve memory management for chromium-based browsers (#25462) 2023-01-18 15:35:57 -07:00
Bill Glesias d470f59ea2 feat: experimental skip domain injection (#25307)
* feat: set up experimentalUseDefaultDocumentDomain to disallow document.domain overwritting

* use default domain around experimentalUseDefaultDocumentDomain in main iframe and spec bridge iframes. Also adapt CORS policy to use same-origin if experimental flag is set

* run ci

* fix: add insertion of experimental flag where is was needed/missing

* chore: add system test to exercise experimental flag for expected behavior

* fix: fix issues with template updates to conform to squirrelly v7

* fix: update config tests to include new experimental flag

* run ci

* fix: trailing whitespace [run ci]

* chore: update snapshot

* run ci

* fix: update proxy unit tests to account for experimentalUseDefaultDocumentDomain

* run ci

* fix: Allow component tests with special characters in filepath (#25299)

feat: cut over experimental flag to take list of known problematic domains via string/glob pattern

run ci

chore: update system test and fix broken config

* fix: fix server unit and integration tests. integration tests should no longer use google to test against injection as we do not inject document.domain on google domains

* run ci

* run ci

* fix: server integration tests where google documents are expected to receive document.domain injection. Kept test same by changing URL

* run ci

* fix: update server test with mssing unupdated assertions

* run ci

* fix: turn off experimental flag by default while recommending sane defaults to users to configure

* run ci

* chore: fix typings [run ci]

* run ci

* chore: make experiment an e2e option only

* run ci

* chore: address comments in code review

* chore: rename experimentalUseDefaultDocumentDomain to experimentalSkipDomainInjection

* fix regression in shouldInjectionDocumentDomain utility function and add unit tests

* run ci

* chore: rename documentSuperDomainIfExists to superDomain [run ci]

* chore: address comments from code review

* chore: just pass opts through to policyForDomain

* run ci

Co-authored-by: Mike Plummer <mike-plummer@users.noreply.github.com>
2023-01-09 10:00:05 -05:00
Matt Schile 98efdf45b3 feat: Added experimentalOriginDependencies to gate dependencies support within cy.origin (#24931)
* adding experimentalOriginDependencies flag

* update system tests
2022-12-01 15:40:05 -06:00
BlueWinds 286bd9dac1 Merge remote-tracking branch 'origin/develop' into update-release-12 2022-11-22 08:57:02 -08:00
Lachlan Miller 4bbd78e22e feat: Re-introduce Run All specs for End to End under experimentalRunAllSpecs flag (#24745)
* feat: re-enable Run All Specs (#24683)

* fix: disable query in run-mode

* feat: Run-all-specs-ui (#24738)

* wip run-all-specs-ui

* added component tests for specs-list, inline-specs-list, and run-all-specs

* updated tests for specslist, inlinespeclist, and runAllSpecs

* simplify test

* make prop with default value optional

* enable run all specs

* use named slot for clarify

* use Record type

* remove un-necessary dynamic component

* use group and hover to inline css

* fix tests

* fix tests and use snapshot for style testing

Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>

* fix typescript

* fix test

* build binary for run all specs

* fix: tweaks for Run All Specs (#24746)

* update ui [skip ci]

* change types to reflect run all specs is e2e only

* chore: separate run all specs components

* fix typescript error

* fix: run-all UI tweaks and keyboard nav (#24757)

Closes undefined

* fix UI test

* move listener and use i18n [skip ci] (#24761)

* fix: run-all-specs duplicate file-matching (#24763)

* chore: limit linting [skip ci]

* do not get separator until app is loaded

* fix test

Co-authored-by: Zachary Williams <ZachJW34@gmail.com>
Co-authored-by: amehta265 <65267668+amehta265@users.noreply.github.com>
2022-11-22 17:28:48 +10:00
Matt Schile 69873ae988 chore: remove experimentalSessionAndOrigin flag (#24340)
BREAKING CHANGE: removed experimentalSessionAndOrigin flag. testIsolation defaults to strict
2022-10-24 08:49:13 -06:00
Emily Rohrbough 8f402854f5 Update packages/server/lib/experiments.ts
Co-authored-by: Chris Breiding <chrisbreiding@users.noreply.github.com>
2022-09-16 10:35:37 -05:00
Emily Rohrbough 821150517d Merge branch 'develop' into cache-sessions-server
# Conflicts:
#	packages/app/src/runner/event-manager.ts
#	packages/runner/src/studio/studio-recorder.js
#	packages/types/src/driver.ts
2022-09-14 11:49:59 -05:00
Zach Bloomquist 566a1a208c feat: gate WebKit behind experimentalWebKitSupport in prod (#23711) 2022-09-13 01:56:13 +00:00
Emily Rohrbough 835d337103 round 1 2022-08-29 13:31:09 -05:00
Lachlan Miller 91beb9012c feat: experimental single tab run mode for component testing (#23104)
* revive logic to run CT in a single tab

* add feature flag: experimentalSingleTabRunMode

* remove log

* reset browser state between tests

* document single tab run mode experiment;

* add system test for experimental run mode

* fix snapshots

* use more simple project for testing

* additional guard;

* fix test

* Apply suggestions from code review

Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>

* destroy aut after each spec

* update snapshot

* fix types

* add experiment flag error

* add warning when using experimental flag with e2e

* build binaries for experimentalSingleTabRunMode feature

* build binaries take 2

* make error message more open ended

* destroy AUT later in run mode lifecycle

* add additional assertion around experimental flag

* simplify error

* remove test code from production code

Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>
2022-08-16 10:44:14 +10:00
Bill Glesias 3a78e1f570 chore: add experimentalModifyObstructiveThirdPartyCode documentation to settings page and experiments (#23088) 2022-08-04 10:39:31 -04:00
Matt Schile d7ce86541d chore: (cross-origin) add support for redirecting back to primary (#21144) 2022-04-20 23:03:08 -06:00
Matt Schile 27e1afbdd7 chore: (multi-domain) renaming flag to experimentalSessionAndOrigin (#21053) 2022-04-13 10:50:17 -06:00
Matt Schile d98d0e1e79 chore: (multi-domain) add experimentalLoginFlows to the settings page (#21030) 2022-04-12 09:23:58 -06:00
Chris Breiding b53f04e4f7 feat: Fire run events in interactive mode (#15787) 2021-04-12 14:43:19 -04:00
Adam Gastineau fa780634ca Removed experimentalComponentTesting flag 2021-03-29 10:47:52 -07:00
Chris Breiding 59c2c03895 feat: Remove experimentalRunEvents flag (#15276) 2021-03-02 10:07:02 -05:00
Zach Panzarino f4b01394a8 feat: Cypress Studio - record test steps through interacting with your site (#9542)
Co-authored-by: Chris Breiding <chrisbreiding@users.noreply.github.com>
2021-01-19 10:23:26 -05:00
Chris Breiding 9a25fd02c2 feat: Add after:run event (#14263) 2020-12-21 13:40:55 -05:00
Chris Breiding d6c0bcfc04 feat: Add before:run event (#14238) 2020-12-21 13:06:45 -05:00
Chris Breiding c9916c8bbd feat: Add after:spec event (#14178) 2020-12-18 09:45:15 -05:00
Chris Breiding f47d5c0574 feat: Add before:spec event (#9646)
Co-authored-by: Zach Bloomquist <github@chary.us>
2020-12-16 16:25:14 -05:00
Zach Bloomquist 3fec100397 feat: deprecate cy.route(), remove experimentalNetworkStubbing flag (#9185)
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2020-11-17 10:56:19 -05:00
Zach Bloomquist 3d0d1d89de feat(net-stubbing): rename cy.route2 to cy.http (#9182)
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2020-11-14 14:22:21 +06:30
Chris Breiding d3c480f5ad chore: Deprecate experimentalShadowDomSupport flag and remove its usage (#8548) 2020-09-10 16:25:55 -04:00
Zach Bloomquist 2469473eb2 chore: rename experimental network stubbing (#8450) 2020-08-31 11:46:00 -04:00
Zach Bloomquist c37896089b feat(net-stubbing): experimental full network mocking support (#4176) 2020-08-31 09:41:47 -04:00
Zach Bloomquist 0b4529bbdb feat: make cookies have sameSite key by default (#7790)
* feat: make cookies have sameSite key by default

BREAKING CHANGE: modifies the shape of Cookie objects

* update tests

* add deprecation notice

Co-authored-by: Brian Mann <brian.mann86@gmail.com>
2020-06-29 14:41:50 -04:00
Gleb Bahmutov aed2709637 automatically polyfill window.fetch with XMLHttpRequest (#7597)
Co-authored-by: Jessica Sachs <jess@jessicasachs.io>
2020-06-15 11:40:08 -04:00
Chris Breiding cf87458ba3 Fix issue where click hangs if subject has a shadow root and shadow dom support is not enabled (#7692) 2020-06-12 14:42:57 -04:00
James Garbutt a7ff8fddc2 add some shadow dom support (#7469)
Co-authored-by: Chris Breiding <chrisbreiding@gmail.com>
Co-authored-by: Gleb Bahmutov <gleb.bahmutov@gmail.com>
2020-06-08 13:05:32 -04:00
Zach Bloomquist 6960f7cd78 Rewrite JS/HTML using AST-based approach (#5273)
* Add winPropAccessor to security.js, remove other replacers

* Add start of Cypress.resolveWindowReference

* Add regexes for dot and bracket access

* Some security_spec tests pass with new injection

* Add resolveWindowReference unit tests

* Old security_spec now passes with resolveWindowReference

* Inject stub resolveWindowReference so proxy still works outside of Cypress

* wip: rewrite HTML + JS with tokenizer

* Move to using esprima + hyntax to rewrite JS + HTML

* remove comment; oneLine makes the whole thing commented

* Fix tests, apple.com edge case

* wip: add getOrSet

* Revert "wip: add getOrSet"

This reverts commit a5c647c00f.

* release 3.5.0 [skip ci]

* use recast to replace window property accesses

* replace assignments to top properly

* fix yarn.lock

* bump deps

* update integration tests

* remove old security ts?

* fix integration spec

* always ignore js interception failure

* use globalThis instead of window

* add experimentalSourceRewriting flag

* restore regex-writer spec

* fix types

* update config_spec

* add source rewriting spec

* cleanup

* simplify rewriting logic, move rules into rewriter package

* create threaded rewriting tool for non-streaming use

* update @packages/rewriter to use threads for async

* use async rewriting where convenient

* add worker-shim.js

* add performance info to debug logs

* properly handle +=, -=, ...

* add proxy, rewriter to unit-tests stage

* cleanup

* use parse5 to rewrite HTML, strip SRI

* update tests

* reorganization, cleanup

* rewrite ALL parent, top identifiers except in a few cases

* handle many JS edge cases

* ensure parse5@5.1.1 is installed

* update yarn.lock

* update tests

* add debugging, add tests

* add attempted repro for .href issue

* implement source maps + extending inline source maps

* update opts passing in proxy layer

* fix sourcemap naming structure

* update tests to account for sourcemaps

* sourcemap tests

* remote source maps work

* comment

* update rewriter tests

* clean up TODOs in resolveWindowReference

* remove @types/nock

* clean up todos in deferred-source-map-cache

* fix rewriter build script

* fix concatStream import

* bump expectedresultcount

* clean up js-rules

* threading improvements, workaround for Electron segfault

* no visit_spec for now

* fix 6_visit_spec

* update MAX_WORKER_THREADS

* add repro for #3975

* cleanup

* cleanup

* make better use of namedTypes and builders

* get rid of the horrific closureDetectionTernary

ast-types keeps track of scope, so it is unneeded

* fix #3975, #3994

* add x-sourcemap, sourcemap header support

* snap-shot-it 7.9.3

* add deferred-source-map-cache-spec

* add tests

* Throw error in driver if AST rewriting fails

* Fix "location = 'relative-url'"

* fix max recursion depth

* slim down some fixtures

* fix window.location usage

* don't mess with `frames` at all

* no integration tests

* skip testing apple.com for now

* update wording: regex-based vs. ast-based

* skip real-world tests for now

* add some padding to process.exit workaround

* fix resolvers_spec

* fix html-spec

* cleanup

* Update packages/rewriter/lib/js-rules.ts

* Update packages/driver/src/cypress/resolvers.ts

* just import find by itself

* privatize typedefs for Cypress.state, remove .gitignore, remove dead code

Co-authored-by: Ben Kucera <14625260+Bkucera@users.noreply.github.com>
2020-05-11 12:54:14 -04:00
Dmitriy Kovalenko 379a9e7008 feat: improve component based tests approach (#5923)
- new mode that mounts the spec iframe instead of application iframe
2020-04-26 16:25:24 -04:00
Zach Bloomquist b6703aaec7 Add support for sameSite in cookie-related commands (#6828)
* add experimental feature for sameSite

* allow experimental descriptions to render markdown

* sameSite support mostly working

* also strip sameSite from setCookie yielded value

* don't use `unspecified` - let browser set default

* add tests

* decaffeinate: Rename cdp_automation_spec.coffee from .coffee to .js

* decaffeinate: Convert cdp_automation_spec.coffee to JS

* decaffeinate: Run post-processing cleanups on cdp_automation_spec.coffee

* cleanup cdp_automation_spec.ts

* update unit tests

* update settings_spec to not render as markdown

* user-friendly error for insecure SameSite=None

* fix styling

* fix markdown renderer

* update types + schema

* use renderInline

* update experiment summary

* bind renderFn to md
2020-03-27 10:04:50 -04:00
Gleb Bahmutov ffd4331aa5 Support experimental features (#6265)
* add packages/server experiments

* show experiments in desktop GUI

* add intro experiments text

* conditional message

* add experiments record to start of the headless run

* keep experiments in the config, remove duplicate logic

* small tweaks

* remove experimentalComponentTesting for now, separate PR

* rearrange settings spec into sections per panel

* do not crash if there are no experiments

* return component testing experiment

* work on styling of experiments panel + adding basic tests

* update settings spec text

* add unit tests for experimental features in cypress run output

* Add styling for 'non-enabled' status sign.

* add more experiments and key whitelist in experiments GUI

* add message when there are no experiments

* fix coffeelint

* fix merge in settings spec

* trailing whitespace

* make experiments info all live in one place

* add ts lint exception

* update unit test

* update run spec

* do not show experiments panel at all without experiments

* add more comments

* Update style of ON/OFF status for experimental features.

* remove empty messaging from experiments panel (since panel is no longer shown when empty)

* remove check for 'isEmpty' when showing list

* update lock file

Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2020-03-16 21:10:08 +06:30