Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
@spotify/polly-jest-presets
Advanced tools
Readme
An opinionated configuration and wrapper around Polly and setup-polly-jest to have automatic recording and playback of network requests made during your Jest tests.
Note: Polly Jest Presets bundles in all necessary Polly packages to make the setup as easy as possible for a typical Node-based web app. It uses File persister to store recordings locally. Therefore, there's no need to install Polly or Polly Jest bindings separately in your project after including this preset.
Packages included:
"@pollyjs/adapter-node-http": "^2.6.0",
"@pollyjs/core": "^2.6.0",
"@pollyjs/persister-fs": "^2.6.0",
"setup-polly-jest": "^0.5.2",
Install the preset as a dev dependency:
yarn add @spotify/polly-jest-presets -D
Add the preset to your Jest config (by default jest.config.js
), in the setupFilesAfterEnv
:
{
"setupFilesAfterEnv": ["@spotify/polly-jest-presets"]
}
Or import in an individual test.
// ./my.test.js
import '@spotify/polly-jest-presets';
To test it out, make a network request in one of your tests.
import '@spotify/polly-jest-presets';
// `yarn add -D node-fetch` for this demo
import fetch from 'node-fetch';
describe('a dummy test', () => {
it('fetches something', async () => {
const resp = await fetch('https://reqres.in/api/users?page=2');
const payload = await resp.json();
expect(payload.data.length).toBeGreaterThan(1);
});
});
First, you need to run the tests with the POLLY_MODE
environment variable set to record
. This will tell Polly that you intend for all of the requests to record in this test run.
POLLY_MODE="record" jest
You should now see a __recordings__
directory next to your test file. It should contain a .har
file which shows the request we made within the it block.
To test that playback works, disconnect your internet on your machine and run:
POLLY_MODE="replay" jest
The test still passes! Note: the default POLLY_MODE is replay
.
If you want to override Polly configuration, you can add configuration to globals.pollyConfig
in the Jest config:
{
"globals": {
"pollyConfig": {
"expiresIn": "3 months"
}
}
}
See all of the valid Polly options in the Polly documentation.
You may also want to get at the global Polly instance. You can import it:
// if you need access to the pollyContext
import { pollyContext } from '@spotify/polly-jest-presets';
pollyContext.polly.server
.get('/series')
.intercept((req, res) => res.sendStatus(200));
See all of the Polly API methods in the Polly documentation.
This preset has a few opinions baked in. All of these are overridable by setting the globals.pollyConfig
in your Jest config.
We think it's safer to expire recordings frequently. The default expiresIn
is set to "14d"
in this preset. By default, expiryStrategy
is configured to warn
.
recordIf*
)We think it makes more sense to avoid recording in the background for test authoring to avoid unexpected changes to checked in .har files. Because of this, we have set all of the recordIf*
config values to false. This means that your tests will fail when you first write them if you don't override POLLY_MODE
.
See CONTRIBUTING guidelines.
FAQs
Presets for Jest that make Polly.js plug-and-play
The npm package @spotify/polly-jest-presets receives a total of 43 weekly downloads. As such, @spotify/polly-jest-presets popularity was classified as not popular.
We found that @spotify/polly-jest-presets demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 4 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
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.