aboutsummaryrefslogtreecommitdiffstats
path: root/vanilla/node_modules/@vitest/snapshot/README.md
diff options
context:
space:
mode:
authorAdam Mathes <adam@adammathes.com>2026-02-13 21:34:48 -0800
committerAdam Mathes <adam@adammathes.com>2026-02-13 21:34:48 -0800
commit76cb9c2a39d477a64824a985ade40507e3bbade1 (patch)
tree41e997aa9c6f538d3a136af61dae9424db2005a9 /vanilla/node_modules/@vitest/snapshot/README.md
parent819a39a21ac992b1393244a4c283bbb125208c69 (diff)
downloadneko-76cb9c2a39d477a64824a985ade40507e3bbade1.tar.gz
neko-76cb9c2a39d477a64824a985ade40507e3bbade1.tar.bz2
neko-76cb9c2a39d477a64824a985ade40507e3bbade1.zip
feat(vanilla): add testing infrastructure and tests (NK-wjnczv)
Diffstat (limited to 'vanilla/node_modules/@vitest/snapshot/README.md')
-rw-r--r--vanilla/node_modules/@vitest/snapshot/README.md84
1 files changed, 84 insertions, 0 deletions
diff --git a/vanilla/node_modules/@vitest/snapshot/README.md b/vanilla/node_modules/@vitest/snapshot/README.md
new file mode 100644
index 0000000..edf0817
--- /dev/null
+++ b/vanilla/node_modules/@vitest/snapshot/README.md
@@ -0,0 +1,84 @@
+# @vitest/snapshot
+
+Lightweight implementation of Jest's snapshots.
+
+## Usage
+
+```js
+import { SnapshotClient } from '@vitest/snapshot'
+import { NodeSnapshotEnvironment } from '@vitest/snapshot/environment'
+import { SnapshotManager } from '@vitest/snapshot/manager'
+
+const client = new SnapshotClient({
+ // you need to provide your own equality check implementation if you use it
+ // this function is called when `.toMatchSnapshot({ property: 1 })` is called
+ isEqual: (received, expected) =>
+ equals(received, expected, [iterableEquality, subsetEquality]),
+})
+
+// class that implements snapshot saving and reading
+// by default uses fs module, but you can provide your own implementation depending on the environment
+const environment = new NodeSnapshotEnvironment()
+
+// you need to implement this yourselves,
+// this depends on your runner
+function getCurrentFilepath() {
+ return '/file.spec.js'
+}
+function getCurrentTestName() {
+ return 'test1'
+}
+
+// example for inline snapshots, nothing is required to support regular snapshots,
+// just call `assert` with `isInline: false`
+function wrapper(received) {
+ function __INLINE_SNAPSHOT__(inlineSnapshot, message) {
+ client.assert({
+ received,
+ message,
+ isInline: true,
+ inlineSnapshot,
+ filepath: getCurrentFilepath(),
+ name: getCurrentTestName(),
+ })
+ }
+ return {
+ // the name is hard-coded, it should be inside another function, so Vitest can find the actual test file where it was called (parses call stack trace + 2)
+ // you can override this behaviour in SnapshotState's `_inferInlineSnapshotStack` method by providing your own SnapshotState to SnapshotClient constructor
+ toMatchInlineSnapshot: (...args) => __INLINE_SNAPSHOT__(...args),
+ }
+}
+
+const options = {
+ updateSnapshot: 'new',
+ snapshotEnvironment: environment,
+}
+
+await client.startCurrentRun(
+ getCurrentFilepath(),
+ getCurrentTestName(),
+ options
+)
+
+// this will save snapshot to a file which is returned by "snapshotEnvironment.resolvePath"
+client.assert({
+ received: 'some text',
+ isInline: false,
+})
+
+// uses "pretty-format", so it requires quotes
+// also naming is hard-coded when parsing test files
+wrapper('text 1').toMatchInlineSnapshot()
+wrapper('text 2').toMatchInlineSnapshot('"text 2"')
+
+const result = await client.finishCurrentRun() // this saves files and returns SnapshotResult
+
+// you can use manager to manage several clients
+const manager = new SnapshotManager(options)
+manager.add(result)
+
+// do something
+// and then read the summary
+
+console.log(manager.summary)
+```