mirror of
https://github.com/cypress-io/cypress.git
synced 2026-02-09 08:40:32 -06:00
* 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>
proxy
This package contains the code for Cypress's HTTP interception proxy.
HTTP interception
./lib/http contains the code that intercepts HTTP requests. The bulk of the proxy's behavior is in three files:
request-middleware.tscontains code that manipulates HTTP requests from the browserresponse-middleware.tscontains code that manipulates HTTP responses to the browsererror-middleware.tshandles errors that occur in the request/response cycle
Building
Note: you should not ever need to build the .js files manually. @packages/ts provides require-time transpilation when in development.
yarn workspace @packages/proxy build-prod
Testing
Tests are located in ./test
To run tests:
yarn workspace @packages/proxy test
Additionally, the server package contains tests that use the proxy.
Debug Logs
High level logs are available in the DEBUG=cypress:proxy:* namespace.
Detailed per-request logs are available in DEBUG=cypress-verbose:proxy:http.