
Research
/Security News
9 Malicious NuGet Packages Deliver Time-Delayed Destructive Payloads
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.
@proof-ui/image-snapshot-plugin
Advanced tools
Provides Proof with visual regression testing capabilities by porting over functionality from (jest-image-snapshot)[https://github.com/americanexpress/jest-image-snapshot].
Provides Proof with visual regression testing capabilities by porting over functionality from (jest-image-snapshot)[https://github.com/americanexpress/jest-image-snapshot].
yarn add -D @proof-ui/image-snapshot-plugin
// proof.config.js
import ImageSnapshotPlugin from '@proof-ui/image-snapshot-plugin';
export default {
plugins: [
new ImageSnapshotPlugin({
// Configuration
})
]
};
The image snapshot plugin closely mimics the normal react/jest snapshot testing workflow.
Start by writing a proof snapshot test for your story. The plugin provides a method on the browser object that will create a snapshot for you.
const proofs = proofsOf('Button');
proofs.add('Basic Usage', async ({ browser }) => {
await browser.matchImageSnapshot();
});
Multipe snapshots can be taken per test.
const proofs = proofsOf('Button');
proofs.add('Basic Usage', async ({ browser }) => {
await browser.matchImageSnapshot();
const button = await browser.$('button');
await button.click();
await browser.matchImageSnapshot();
});
The matchImageSnapshot method can be configured individually by passing an options parameters to the functions. It takes all the same options available to (jest-image-snapshot)[https://github.com/americanexpress/jest-image-snapshot].
await browser.matchImageSnapshot({
failureThresholdType: 'percent',
failureThreshold: 0.01
});
It can also be configured globally:
// proof.config.js
export default {
plugins: [
new ImageSnapshotPlugin({
globalMatchOptions: {
failureThreshold: 0.01,
diffDirection: 'horizontal'
}
})
]
};
In addition to all the options from jest-image-snapshot. This library adds a couple more to help with proof. It adds windowHeight, windowWidth, and augments the customSnapshotIdentifier function for more nuanced snapshot naming.
await browser.matchImageSnapshot({
windowHeight: 714,
windowWidth: 1214,
customSnapshotIdentifier({ currentTestName, counter }) {
return `${this.browserName}-${currentTestName}-${this.windowWidth}x${this.windowHeight}-${counter}`;
}
});
After adding snapshot tests you can run your proof test suite as normal.
# Command Line Usage
proof
To update your snapshot baseline images add the updateSnapshots flag.
# Command Line Usage
proof --updateSnapshots
You can configure the ImageSnapshotPlugin through some options in it's constructor:
| Property | Description | Type | Default |
|---|---|---|---|
getSnapshotsDir | A function that returns a string path that tells the plugin where to save image snapshots. | function | () => components/${kind}/src/__image_snapshots__ |
globalMatchOptions | (jest-image-snapshot)[https://github.com/americanexpress/jest-image-snapshot] options that will be applied globally. | ImageSnapshotArgs |
For ideas on how to incorporate this into your CI flow. Check out (this article)[https://baseweb.design/blog/visual-regression-testing/].
FAQs
Provides Proof with visual regression testing capabilities by porting over functionality from (jest-image-snapshot)[https://github.com/americanexpress/jest-image-snapshot].
We found that @proof-ui/image-snapshot-plugin demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 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 discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.

Security News
Socket CTO Ahmad Nassri discusses why supply chain attacks now target developer machines and what AI means for the future of enterprise security.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.