Sign inSign up

Take targeted snapshots with Cypress

By default, Chromatic takes a snapshot at the end of every Cypress test, whether it passes or fails. However, you can also choose to programmatically take snapshots at specific points in your tests using the takeSnapshot function inside your test runs.

takeSnapshot is especially useful for capturing a snapshot of your UI’s appearance when your UI reaches a specific state mid-test:

describe("My First Test", () => {
  it("Visits the Kitchen Sink", () => {
    // 👇 Navigate to target page
    cy.visit("https://example.cypress.io");

    // 📸 Tell Chromatic to take a snapshot of the initial page state
    cy.takeSnapshot();

    // 👇 Finish the test by opening the dropdown menu
    cy.get(".dropdown:first-of-type > .dropdown-toggle").click();

    // You can call takeSnapshot multiple times if necessary.
    // To help disambiguate, you can give the snapshot a name, 
    // which is passed as an argument to cy.takeSnapshot.
    cy.takeSnapshot("After opening dropdown");

    cy.contains("Files").click();

    // 📸 Chromatic automatically takes a snapshot here, at the end of the test. 
  });
});