Security News
Input Validation Vulnerabilities Dominate MITRE's 2024 CWE Top 25 List
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
@pactflow/pact-cypress-adaptor
Advanced tools
Generate pact contracts from cypress test.
npm i -D @pactflow/pact-cypress-adaptor
yarn add -D @pactflow/pact-cypress-adaptor
Then, setup your cypress plugin at cypress/plugins/index.js
const pactCypressPlugin = require('@pactflow/pact-cypress-adaptor/dist/plugin')
const fs = require('fs')
module.exports = (on, config) => {
pactCypressPlugin(on, config, fs)
}
Finally, update cypress/support/index.js file to include cypress-pact commands via adding:
import '@pactflow/pact-cypress-adaptor'
By default, this plugin omits most cypress auto-generated HTTP headers.
To exclude other headers in your pact, add them as a list of strings in cypress.json
under key env.headersBlocklist
. Eg. in your cypress.json
{
...otherCypressConfig,
"env": {
"headersBlocklist": ["ignore-me-globally"]
}
}
Note: Header blocklist can be set up at test level. Check command cy.setupPactHeaderBlocklist
To stop cypress auto-generated HTTP headers being omitted by the plugin, set env.ignoreDefaultBlocklist
in your cypress.json
. Eg. in your cypress.json
{
...otherCypressConfig,
"env": {
"headersBlocklist": ["ignore-me-globally"],
"ignoreDefaultBlocklist": true
}
}
Configure your consumer and provider name
Example
before(() => {
cy.setupPact('ui-consumer', 'api-provider')
})
Listen to aliased cy.intercept
network call(s), record network request and response to a pact file.
Usage and example about cy.intercept
Example
before(() => {
cy.setupPact('ui-consumer', 'api-provider')
cy.intercept('GET', '/users').as('getAllUsers')
})
//... cypress test
after(() => {
cy.usePactWait(['getAllUsers'])
})
Add a list of headers that will be excluded in a pact at test case level
before(() => {
cy.setupPact('ui-consumer', 'api-provider')
cy.intercept('GET', '/users', headers: {'ignore-me': 'ignore me please'}).as('getAllUsers')
cy.setupPactHeaderBlocklist(['ignore-me'])
})
//... cypress test
after(() => {
cy.usePactWait(['getAllUsers'])
})
Use cy.usePactRequest
to initiate network calls and use cy.usePactGet
to record network request and response to a pact file.
Example
before(() => {
cy.setupPact('ui-consumer', 'api-provider')
cy.usePactRequest('GET', '/users').as('getAllUsers')
})
//... cypress test
after(() => {
cy.usePactGet(['getAllUsers'])
})
Check out a simple react app example project at /example/todo-example
FAQs
A cypress adaptor for pact
The npm package @pactflow/pact-cypress-adaptor receives a total of 0 weekly downloads. As such, @pactflow/pact-cypress-adaptor popularity was classified as not popular.
We found that @pactflow/pact-cypress-adaptor demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.