Disable snapshots for specific tests
By default, Chromatic captures snapshots for all your UI components, whether you’re testing with Storybook, Playwright or Cypress, ensuring your UI remains consistent at all times. However, you can disable specific tests that are irrelevant or cause false positives.
With Storybook
If you’re running tests with Storybook, you can enable the disableSnapshot
option to configure Chromatic to ignore stories and prevent them from being snapshotted. This is useful if you’re adopting Chromatic incrementally and want to turn off snapshotting for specific stories or work with components that could contain dynamic content or animations that may trigger unwanted visual changes.
// Adjust this import to match your framework (e.g., nextjs, vue3-vite)
import type { Meta, StoryObj } from "@storybook/your-framework";
/*
* Replace the @storybook/test package with the following if you are using a version of Storybook earlier than 8.0:
* import { within } from "@storybook/testing-library";
* import { expect } from "@storybook/jest";
*/
import { expect, within } from "@storybook/test";
import { NotFound } from "./NotFound";
const meta: Meta<typeof NotFound> = {
component: NotFound,
title: "NotFound",
parameters: {
// Disables Chromatic's snapshotting on a component level
chromatic: { disableSnapshot: true },
},
};
export default meta;
type Story = StoryObj<typeof NotFound>;
export const Default: Story = {
play: async ({ canvasElement }) => {
const canvas = within(canvasElement);
await expect(canvas.getByText("Page not found")).toBeInTheDocument();
},
};
chromatic.disableSnapshot
parameter can be set at story,
component, and project levels. This enables you to set project wide
defaults and override them for specific components and/or stories. Learn more » With Playwright or Cypress
By default, Chromatic’s Playwright and Cypress integrations run tests and captures a snapshot at the end of each E2E test; either it passes or fails. However, if you’ve enabled targeted snapshots with Playwright or Cypress to pinpoint visual changes when the test reaches a specific point, you can opt out of the automated snapshotting process by enabling the disableAutoSnapshot
configuration option. This is useful when capturing snapshots at specific points in your test, such as when a particular element is visible or when a specific action is performed.
import { expect, takeSnapshot, test } from "@chromatic-com/playwright";
test.describe("Not found", () => {
test.use({
disableAutoSnapshot: true, // Disables the automated snapshot generated at the end of the test
})
test("should show a 404 page", async ({ page }, testInfo) => {
await page.goto("/404");
await expect(page).toHaveTitle("Page not found");
await takeSnapshot(page, 'Initial 404 page', testInfo);
// Interacts with the page by clicking the "Go back" button
await page.getByRole("button", { name: "Go back" }).click();
await takeSnapshot(page, 'Home page loaded', testInfo);
});
});
disableAutoSnapshot
configuration option can be set at the
project level or the test level. This enables you to set project wide
defaults and override them for specific tests. Learn more » describe("Not found", () => {
it("should show a 404 page", { env: {
disableAutoSnapshot: true // Disables the automated snapshot generated at the end of the test
}}, () => {
cy.visit("/404");
cy.title().should("equal", "Page not found");
cy.takeSnapshot('Initial 404 page');
// Interacts with the page by clicking the "Go back" button
cy.get("button").contains("Go back").click()
cy.takeSnapshot('Home page loaded');
});
});
disableAutoSnapshot
configuration option can be set at the
project level or the test level. This enables you to set project wide
defaults and override them for specific tests. Learn more » Frequently asked questions
Why are disabled stories still listed?
If you enable the disabledSnapshot
configuration option to prevent your stories from being snapshotted, Chromatic will continue to index them and display them in the Library view. However, the “Snapshot” tab will no longer be visible in the UI for these stories. To remove the story altogether, you will need to delete it from your Storybook.