From fc42087ced8f561322d2d1d8cb36500a18ed5f4e Mon Sep 17 00:00:00 2001 From: Joshua Date: Tue, 13 Sep 2022 16:02:24 +0200 Subject: [PATCH] updated readme --- .github/assets/updated-mismatch.png | Bin 0 -> 42439 bytes README.md | 156 ++++++++++++++-------------- 2 files changed, 76 insertions(+), 80 deletions(-) create mode 100644 .github/assets/updated-mismatch.png diff --git a/.github/assets/updated-mismatch.png b/.github/assets/updated-mismatch.png new file mode 100644 index 0000000000000000000000000000000000000000..35f33d90e10a452557c540653a9bab7f6b9263e1 GIT binary patch literal 42439 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 **Note** \ +> \ +> Please take a look at a few other Cypress snapshot plugins: +> +> - [cypress-plugin-snapshots](https://github.com/meinaart/cypress-plugin-snapshots) +> - [cypress-image-snapshot](https://github.com/palmerhq/cypress-image-snapshot). ## Install -Requires [Node](https://nodejs.org/en/) version 6 or above. +Requires [Node](https://nodejs.org/en/) version 10 or above. ```sh npm install --save-dev @cypress/snapshot ``` -## Use +## Import After installing, add the following to your `cypress/support/commands.js` file ```js -require('@cypress/snapshot').register() +require("@cypress/snapshot").register(); ``` - This registers a new command to create new snapshot or compare value to old snapshot -```js -describe('my tests', () => { - it('works', () => { - cy.log('first snapshot') - cy.wrap({ foo: 42 }).snapshot() - cy.log('second snapshot') - cy.wrap({ bar: 101 }).snapshot() - }) -}) +and add the following to your `cypress.config.js` -describe('focused input field', () => { - it('is empty and then typed into', () => { - cy.visit('http://todomvc.com/examples/react/') - cy - .focused() - .snapshot('initial') - .type('eat healthy breakfast') - .snapshot('after typing') - }) -}) +```js + e2e: { + setupNodeEvents(on, config) { + require("@cypress/snapshot").tasks(on, config) + }, ``` -By default, the snapshot object can be found in file `snapshots.js`. In the above case it would look something like this +**Note:** `@cypress/snapshot` **requires** the `readFileMaybe` plugin to be included, which can be easily done using the code above + + +# Usage + +Currently, if you want to take more than one snapshot, you need to pass a Step Name to prevent overwrites / test failures ```js -module.exports = { - "focused input field": { - "is empty and then typed into": { - "initial": { - "tagName": "input", - "attributes": { - "class": "new-todo", - "placeholder": "What needs to be done?", - "value": "" - } - }, - "after typing": { - "tagName": "input", - "attributes": { - "class": "new-todo", - "placeholder": "What needs to be done?", - "value": "eat healthy breakfast" - } - } - } - }, - "my tests": { - "works": { - "1": { - "foo": 42 - }, - "2": { - "bar": 101 - } - } - } -} +describe("my tests", () => { + it("works", () => { + cy.log("first snapshot"); + cy.wrap({ foo: 42 }).snapshot("foo"); + cy.log("second snapshot"); + cy.wrap({ bar: 101 }).snapshot("bar"); + }); +}); +``` + +In the above case, you can find the stored snapshot in their own files, mentioned above them + +```json +// cypress/snapshots/my-tests-works-foo.json +{"foo": 42} +// cypress/snapshots/my-tests-works-bar.json +{"bar": 101} ``` If you change the site values, the saved snapshot will no longer match, throwing an error -![Snapshot mismatch](.github/assets/snapshot-mismatch.png) +( picture taken from `cypress/snapshots/Arrays.json`) +![Snapshot mismatch](.github/assets/updated-mismatch.png) Click on the `SNAPSHOT` step in the Command Log to see expected and current value printed in the DevTools. @@ -101,45 +81,61 @@ You can control snapshot comparison and behavior through a few options. ```js cy.get(...).snapshot({ - name: 'human snapshot name', // to use in the snapshot file - json: false // convert DOM elements into JSON - // when storing in the snapshot file + snapshotName: 'Snapshot Name', // to use as a File Name + snapshotPath: 'cypress/not_snapshots', // where to save the Snapshot + json: false // convert DOM elements into JSON +}) // when storing in the snapshot file + +// will save as +// cypress/not_snapshots/Snapshot-Name.json +``` + +You can also pass a "Step Name" to the Function + +```js +cy.get(...).snapshot("Intercepted API Request") +// will save as +// cypress/snapshots/---Intercepted-API-Request.json +// to prevent duplications +``` + +or both + +```js +cy.get(...).snapshot("Intercepted API Request", { + snapshotPath: "cypress/snapshots/api", + snapshotName: "first_intercept" }) + +// will save as +// cypress/snapshots/api/first_intercept.json ``` ### Configuration This module provides some configuration options: -#### useRelativeSnapshots -Set to true in order to store your snapshots for each test run next to the inital test caller rather -than at the base working directory. - -**Note:** requires the `readFileMaybe` plugin to be configured see https://on.cypress.io/task#Read-a-file-that-might-not-exist - -#### snapshotFileName -Set to a string to name your snapshot something other than 'snapshots.js' - -#### Usage -Set the configuration options as part of the Cypress config. -See https://docs.cypress.io/guides/references/configuration.html +#### snapshotPath +Sets the default Path for saving Snapshots (default: `cypress/snapshots`) ## Debugging To debug this module run with environment variable `DEBUG=@cypress/snapshot` +# + ### Small print -Author: Gleb Bahmutov <gleb@cypress.io> © Cypress.io 2017 +Author: Gleb Bahmutov <gleb@cypress.io> & Joshua D. <[cypress@lio.cat](mailto:cypress@lio.cat)> © Cypress.io 2017-2022 +
+License: MIT - do anything with the code, but don't blame us if it does not work. -License: MIT - do anything with the code, but don't blame u if it does not work. - -Support: if you find any problems with this module, email / tweet / +Support: If you find any problems with this module, email / tweet / [open issue](https://github.com/cypress-io/snapshot/issues) on Github ## MIT License -Copyright (c) 2017 Cypress.io <gleb@cypress.io> +Copyright (c) 2017-2022 Cypress.io <hello@cypress.io> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation