Implement solve(op, ...args) for a minimal snapshot system:
| Op | Args | Description |
|---|---|---|
'serialize' | (value) | Returns a deterministic string representation of value (objects, arrays, primitives). |
'save' | (name, value) | Stores the serialized snapshot under name. Returns 'saved'. |
'match' | (name, value) | Compares serialized value to the stored snapshot. Returns { pass, diff }. diff is null on pass, or { expected, received } on fail. |
'has' | (name) | Returns true if snapshot exists. |
'delete' | (name) | Removes snapshot. Returns true if it existed. |
Serialization rules:
JSON.stringify(value)[ item1, item2 ] (one item per line, indented 2 spaces){ key: value } (sorted keys, indented 2 spaces)solve('save', 'user', { name: 'Alice', age: 30 })
solve('match', 'user', { name: 'Alice', age: 30 }) // { pass: true, diff: null }
solve('match', 'user', { name: 'Bob', age: 30 })
// { pass: false, diff: { expected: '...Alice...', received: '...Bob...' } }Sample tests