{"id":15062115,"url":"https://github.com/dword-design/expect-mocha-image-snapshot","last_synced_at":"2025-04-10T09:54:54.550Z","repository":{"id":40579305,"uuid":"342736927","full_name":"dword-design/expect-mocha-image-snapshot","owner":"dword-design","description":"A wrapper around jest-image-snapshot that makes it compatible to Mocha.","archived":false,"fork":false,"pushed_at":"2025-04-03T05:03:51.000Z","size":1516,"stargazers_count":5,"open_issues_count":10,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-03T06:19:59.227Z","etag":null,"topics":["expect","frontend","javascript","jest","jest-image-snapshot","mocha","puppeteer","snapshot-testing","test-driven-development","testing","webdevelopment"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dword-design.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":["buymeacoffee.com/dword","paypal.me/SebastianLandwehr"],"github":"dword-design","patreon":"dworddesign"}},"created_at":"2021-02-27T00:41:07.000Z","updated_at":"2025-04-03T05:03:55.000Z","dependencies_parsed_at":"2024-02-28T06:23:46.029Z","dependency_job_id":"b84dff4c-ec99-4f30-8486-ded38e7bb2b0","html_url":"https://github.com/dword-design/expect-mocha-image-snapshot","commit_stats":{"total_commits":157,"total_committers":8,"mean_commits":19.625,"dds":0.7197452229299364,"last_synced_commit":"3ca0f149b698f123237dbda6d88001e4e788f7f9"},"previous_names":[],"tags_count":46,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dword-design%2Fexpect-mocha-image-snapshot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dword-design%2Fexpect-mocha-image-snapshot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dword-design%2Fexpect-mocha-image-snapshot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dword-design%2Fexpect-mocha-image-snapshot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dword-design","download_url":"https://codeload.github.com/dword-design/expect-mocha-image-snapshot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248198843,"owners_count":21063626,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["expect","frontend","javascript","jest","jest-image-snapshot","mocha","puppeteer","snapshot-testing","test-driven-development","testing","webdevelopment"],"created_at":"2024-09-24T23:30:33.866Z","updated_at":"2025-04-10T09:54:54.525Z","avatar_url":"https://github.com/dword-design.png","language":"JavaScript","funding_links":["buymeacoffee.com/dword","paypal.me/SebastianLandwehr","https://github.com/sponsors/dword-design","https://patreon.com/dworddesign","https://www.buymeacoffee.com/dword","https://paypal.me/SebastianLandwehr","https://www.patreon.com/dworddesign"],"categories":[],"sub_categories":[],"readme":"\u003c!-- TITLE/ --\u003e\n# expect-mocha-image-snapshot\n\u003c!-- /TITLE --\u003e\n\n\u003c!-- BADGES/ --\u003e\n  \u003cp\u003e\n    \u003ca href=\"https://npmjs.org/package/expect-mocha-image-snapshot\"\u003e\n      \u003cimg\n        src=\"https://img.shields.io/npm/v/expect-mocha-image-snapshot.svg\"\n        alt=\"npm version\"\n      \u003e\n    \u003c/a\u003e\u003cimg src=\"https://img.shields.io/badge/os-linux%20%7C%C2%A0macos%20%7C%C2%A0windows-blue\" alt=\"Linux macOS Windows compatible\"\u003e\u003ca href=\"https://github.com/dword-design/expect-mocha-image-snapshot/actions\"\u003e\n      \u003cimg\n        src=\"https://github.com/dword-design/expect-mocha-image-snapshot/workflows/build/badge.svg\"\n        alt=\"Build status\"\n      \u003e\n    \u003c/a\u003e\u003ca href=\"https://codecov.io/gh/dword-design/expect-mocha-image-snapshot\"\u003e\n      \u003cimg\n        src=\"https://codecov.io/gh/dword-design/expect-mocha-image-snapshot/branch/master/graph/badge.svg\"\n        alt=\"Coverage status\"\n      \u003e\n    \u003c/a\u003e\u003ca href=\"https://david-dm.org/dword-design/expect-mocha-image-snapshot\"\u003e\n      \u003cimg src=\"https://img.shields.io/david/dword-design/expect-mocha-image-snapshot\" alt=\"Dependency status\"\u003e\n    \u003c/a\u003e\u003cimg src=\"https://img.shields.io/badge/renovate-enabled-brightgreen\" alt=\"Renovate enabled\"\u003e\u003cbr/\u003e\u003ca href=\"https://gitpod.io/#https://github.com/dword-design/expect-mocha-image-snapshot\"\u003e\n      \u003cimg\n        src=\"https://gitpod.io/button/open-in-gitpod.svg\"\n        alt=\"Open in Gitpod\"\n        width=\"114\"\n      \u003e\n    \u003c/a\u003e\u003ca href=\"https://www.buymeacoffee.com/dword\"\u003e\n      \u003cimg\n        src=\"https://www.buymeacoffee.com/assets/img/guidelines/download-assets-sm-2.svg\"\n        alt=\"Buy Me a Coffee\"\n        width=\"114\"\n      \u003e\n    \u003c/a\u003e\u003ca href=\"https://paypal.me/SebastianLandwehr\"\u003e\n      \u003cimg\n        src=\"https://sebastianlandwehr.com/images/paypal.svg\"\n        alt=\"PayPal\"\n        width=\"163\"\n      \u003e\n    \u003c/a\u003e\u003ca href=\"https://www.patreon.com/dworddesign\"\u003e\n      \u003cimg\n        src=\"https://sebastianlandwehr.com/images/patreon.svg\"\n        alt=\"Patreon\"\n        width=\"163\"\n      \u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\u003c!-- /BADGES --\u003e\n\n\u003c!-- DESCRIPTION/ --\u003e\nA wrapper around jest-image-snapshot that makes it compatible to Mocha.\n\u003c!-- /DESCRIPTION --\u003e\n\nSnapshot testing is very Jest-centered. There are not too many solutions for other testing frameworks to test against snapshots. Even less for image snapshots. There is [expect-mocha-snapshot](https://www.npmjs.com/package/expect-mocha-snapshot) that enables snapshot testing with Mocha and [expect](https://www.npmjs.com/package/expect).\n\nThis package uses a similar approach to make [jest-image-snapshot](https://www.npmjs.com/package/jest-image-snapshot) Mocha compatible, allowing Mocha users to do image snapshot testing.\n\n\u003c!-- INSTALL/ --\u003e\n## Install\n\n```bash\n# npm\n$ npm install expect-mocha-image-snapshot\n\n# Yarn\n$ yarn add expect-mocha-image-snapshot\n```\n\u003c!-- /INSTALL --\u003e\n\n## Usage\n\n```js\nimport expect from 'expect'\nimport { toMatchImageSnapshot } from 'expect-mocha-image-snapshot'\n\nexpect.extend({ toMatchImageSnapshot })\n\nit('works', async function () {\n  ...\n  const screenshot = await puppeteer.screenshot()\n  expect(screenshot).toMatchImageSnapshot(this) // this is important here\n});\n```\n\nNote that it is important to pass `this` to the matcher because it contains the test metadata.\n\nNow you can run `mocha` as usual:\n\n```bash\n$ mocha\n```\n\nTo update existing snapshots, pass the environment variable `SNAPSHOT_UPDATE` into the process:\n\n```bash\n$ SNAPSHOT_UPDATE=true mocha\n```\n\nAdditional options can be passed as a second argument (see [jest-image-snapshot docs](https://www.npmjs.com/package/jest-image-snapshot)):\n\n```js\nexpect(screenshot).toMatchImageSnapshot(this, { dumpDiffToConsole: true })\n```\n\nIt is also possible to configure default options (see [jest-image-snapshot docs](https://www.npmjs.com/package/jest-image-snapshot)):\n\n```js\nimport { configureToMatchImageSnapshot } from 'expect-mocha-image-snapshot'\n\nexpect.extend({\n  toMatchImageSnapshot: configureToMatchImageSnapshot({\n    customSnapshotsDir: '__foo_image_snapshots__',\n  }),\n})\n```\n\n\u003c!-- LICENSE/ --\u003e\n## Contribute\n\nAre you missing something or want to contribute? Feel free to file an [issue](https://github.com/dword-design/expect-mocha-image-snapshot/issues) or a [pull request](https://github.com/dword-design/expect-mocha-image-snapshot/pulls)! ⚙️\n\n## Support\n\nHey, I am Sebastian Landwehr, a freelance web developer, and I love developing web apps and open source packages. If you want to support me so that I can keep packages up to date and build more helpful tools, you can donate here:\n\n\u003cp\u003e\n  \u003ca href=\"https://www.buymeacoffee.com/dword\"\u003e\n    \u003cimg\n      src=\"https://www.buymeacoffee.com/assets/img/guidelines/download-assets-sm-2.svg\"\n      alt=\"Buy Me a Coffee\"\n      width=\"114\"\n    \u003e\n  \u003c/a\u003e\u0026nbsp;If you want to send me a one time donation. The coffee is pretty good 😊.\u003cbr/\u003e\n  \u003ca href=\"https://paypal.me/SebastianLandwehr\"\u003e\n    \u003cimg\n      src=\"https://sebastianlandwehr.com/images/paypal.svg\"\n      alt=\"PayPal\"\n      width=\"163\"\n    \u003e\n  \u003c/a\u003e\u0026nbsp;Also for one time donations if you like PayPal.\u003cbr/\u003e\n  \u003ca href=\"https://www.patreon.com/dworddesign\"\u003e\n    \u003cimg\n      src=\"https://sebastianlandwehr.com/images/patreon.svg\"\n      alt=\"Patreon\"\n      width=\"163\"\n    \u003e\n  \u003c/a\u003e\u0026nbsp;Here you can support me regularly, which is great so I can steadily work on projects.\n\u003c/p\u003e\n\nThanks a lot for your support! ❤️\n\n## See also\n\n* [output-files](https://github.com/dword-design/output-files): Output a tree of files and directories by providing an object. Especially useful for testing with real files.\n* [with-local-tmp-dir](https://github.com/dword-design/with-local-tmp-dir): Creates a temporary folder inside cwd, cds inside the folder, runs a function, and removes the folder. Especially useful for testing.\n* [jest-image-matcher](https://github.com/dword-design/jest-image-matcher): A Jest matcher for image comparisons based on pixelmatch. Can also be used with Mocha. Useful for visual regression testing.\n* [unify-mocha-output](https://github.com/dword-design/unify-mocha-output): Adjusts a Mocha output so that it is consistent across platforms and can be used for snapshot testing. Basically adjusts the checkmark symbol and removes time values.\n* [mock-argv](https://github.com/dword-design/mock-argv): Temporarily overrides the command line arguments. This is useful for testing.\n\n## License\n\n[MIT License](https://opensource.org/licenses/MIT) © [Sebastian Landwehr](https://sebastianlandwehr.com)\n\u003c!-- /LICENSE --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdword-design%2Fexpect-mocha-image-snapshot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdword-design%2Fexpect-mocha-image-snapshot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdword-design%2Fexpect-mocha-image-snapshot/lists"}