CodeVetter · Repo Unpack · Testing signals
immerjs/immer
Tests and CI were inspected, not executed; test existence is not a passing result. The inspected suite uses Vitest in Node, repeats core behavior across configuration combinations, and has a separate production-CJS test configuration. Coverage includes structural sharing, manual lifecycles, patch replay, collection behavior, and array regressions, but inspected scripts and configurations leave specific verification limits.
- Source tests use Vitest with Node environment, global test APIs, and __tests__ JavaScript/TypeScript discovery; coverage uses V8 with text and LCOV outputs, but no execution or coverage result was obtained.
- __tests__/base.js repeats its core suite across auto-freeze, strict-copy, and listener booleans, with one additional array-plugin configuration rather than a full plugin/configuration cross-product.
- Core assertions check unchanged-root identity, structural sharing, deep-change propagation, plugin no-op identity, and reorder-then-mutate preservation with patch replay/reversal.
- Patch fixtures assert exact patches, replay, and inverse restoration; dedicated cases assert that __proto__ traversal through objects and arrays throws without polluting unrelated objects.
- Manual-draft tests exercise argument errors, immutable results, repeated finish rejection, and patch listeners; post-finish mutation checks are conditional on non-production mode, while plugins.js tests missing-plugin errors.
- Production tests alias public source imports to the production CJS build, define USES_BUILD and production NODE_ENV, and use separate snapshots; their custom reporter can reset exitCode when its failure predicate and errors array are empty.
- TypeScript fixtures use compile-time assert signatures whose runtime body is an identity function; inspected Yarn/Vitest configuration does not explicitly enable checking those fixtures with tsc, while two reconciliation identity tests are explicitly skipped.
- Inspected CI runs Node 24 with frozen-lockfile install, yarn test, coverage, performance workloads, and Coveralls; this is one configured Node version, and the separate Mitata package is not invoked by those listed test steps.