// the find
tj/should.js
BDD style assertions for node.js -- test framework agnostic
BDD-style assertion library for Node.js that extends Object.prototype with a non-enumerable `.should` getter, so any value gets a fluent assertion chain. It's test-framework agnostic (works fine with Mocha, Jasmine, whatever) and also ships a static `should(obj)` API and a browser build.
The Object.prototype extension is done properly via a non-enumerable getter, so it doesn't leak into for-in/JSON.stringify like naive monkey-patching would. The deep-equality assertions are genuinely differentiated — `.eql` for strict structural equality, `.containDeep` for subsequence/subset matching, `.containEql` for shallow containment — rather than one fuzzy 'equals' doing everything. It also maps cleanly onto Node's `assert` module (documented 1:1 equivalents), so migrating an existing test suite is mechanical rather than a rewrite.
Last push is December 2015 — this is a decade-dead repo, and the README's own banner says it moved to shouldjs/should.js, which itself has seen little activity since. No TypeScript definitions ship with it, and the ecosystem has largely consolidated around Chai or built-in expect() in Jest/Vitest, so this is a niche choice today with no expectation of upstream fixes. Extending Object.prototype, however carefully, is still global mutation that can collide with other libraries or polyfills doing the same thing — the README even links out to a 'Known Bugs' wiki page instead of fixing them in-repo.