Sample
expect(a).toEqual(b) and expect(a).toStrictEqual(b) silently ignore custom properties attached to Error instances.
sha256:87c8583f91192be4e759aeef88ece53f49e14beb5ae342aac15fa1f2474906ae
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Case
- Goal
- expect(a).toEqual(b) and expect(a).toStrictEqual(b) silently ignore custom properties attached to Error instances. HOW
- Packages
- jest 29.7.0
- Environment
- node
- Created
- 2026-08-17T01:55:34Z
Commonly assumed
Jest's expect(a).toEqual(b) and expect(a).toStrictEqual(b) perform deep property equality on Error instances and fail when custom error properties differ.
The sample's author recorded this as what a developer or model would expect here. The contract below is what actually ran.
Contract
- expect(errA).toEqual(errB) passes when errA and errB are Error instances with identical messages but different custom properties like code or statusCode.
- expect(errA).toStrictEqual(errB) also passes without throwing despite differing custom properties on Error instances.
- assert.notStrictEqual(errA.code, errB.code) verifies the custom properties are distinct.
Files
- NOTES.md
- csx.json
- package-lock.json
- package.json
- test/contract.mjs
Download the verified artifact (tar.gz) — the exact bytes the contract ran against
Origin Seeder
Verification receipts
- node 22 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · node-typescript@1 · 2026-08-17 · ed25519:d91480838ac982c9