Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
@pact-foundation/karma-pact
Advanced tools
Implementation of a Karma Plugin to launch a Pact Mock Server before executing your Pact tests on the browser.
From the Pact website:
The Pact family of frameworks provide support for Consumer Driven Contracts testing.
A Contract is a collection of agreements between a client (Consumer) and an API (Provider) that describes the interactions that can take place between them.
Consumer Driven Contracts is a pattern that drives the development of the Provider from its Consumers point of view.
Pact is a testing tool that guarantees those Contracts are satisfied.
Read Getting started with Pact for more information on how to get going.
First install the package from NPM:
npm install --save-dev @pact-foundation/karma-pact @pact-foundation/pact-node
Pact-node must be installed as a peer dependency of karma-pact, as to allow developers to have more freedom to use any version of pact-node. Then, on your Karma Configuration file, add the below:
module.exports = function (config) {
config.set({
// in here we are simply telling to use Jasmine with Pact
frameworks: ['jasmine', 'pact'],
// the Pact options will go here, you can start
// as many providers as you need
pact: [{
port: 1234,
consumer: "some-consumer",
provider: "some-provider",
dir: "pact/files/go/here",
log: "log/files/go/here"
}],
// ensure Pact and default karma plugins are loaded
plugins: [
'karma-*',
'@pact-foundation/karma-pact',
],
});
};
The pact
option can be configured using a single object to spin up a single service, or can be passed an array of objects which will spin up multiple pact services, representing each of your various provider services.
Please be sure not to have the same port number between options as they will conflict with each other. All options are passed directly into Pact Node, which has the full list of available options.
It is recommended, however, to specify the port number, consumer and provider at a minimum to prevent common issues.
Check the karma
folder under Pact JS for examples with Mocha and Jasmine.
In some situations it may be useful to run multiple Pact Mock Servers. For instance, when running tests with karma, if a consumer defines contracts for several providers, the generated Pact contracts may be mixed up. A solution to solve this is to run one Pact Mock Server per provider.
git checkout -b my-new-feature
)git commit -am 'Add some feature'
)git push origin my-new-feature
)The vision is to have a compatible Pact
implementation in all the commonly used languages, your help would be greatly appreciated!
Please search for potential answers or post question on our official Pact StackOverflow, or join us on Slack
FAQs
Launches a Pact Mock Server for Karma
The npm package @pact-foundation/karma-pact receives a total of 422 weekly downloads. As such, @pact-foundation/karma-pact popularity was classified as not popular.
We found that @pact-foundation/karma-pact demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 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.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.