@nevware21/tripwire
v0.1.8
Published
Test Support utilities, helpers, tools for testing in JavaScript and TypeScript.
Readme
@nevware21/tripwire
Modern assertion library for testing JavaScript and TypeScript packages across Node.js, Browser, and Web Worker environments.
Why Tripwire?
Cross-Environment Testing
- Works seamlessly in Node.js, browsers, and Web Workers
- Comprehensive support from ES5+ for broad compatibility
- Tested across all three environments
Dual API Design
- Use familiar
assert.*functions for quick checks - Use fluent
expect().to.be.*syntax for readable tests - Mix both styles in the same test suite
Reliable & Lightweight
- Minimal dependencies to prevent build breakages
- Built with TypeScript for full type safety
- No dependency on unstable or unmaintained packages
Installation
npm install @nevware21/tripwire --save-devRecommended version range:
{
"devDependencies": {
"@nevware21/tripwire": ">= 0.1.8 < 2.x"
}
}Quick Start
import { assert, expect } from '@nevware21/tripwire';
// Assert style
assert.equal(1 + 1, 2);
assert.isString("hello");
assert.deepEqual({ a: 1 }, { a: 1 });
// Expect style
expect(1 + 1).to.equal(2);
expect("hello").to.be.a.string;
expect({ a: 1 }).to.deep.equal({ a: 1 });Key Features
- Type Checking -
isObject,isArray,isString,isNumber,isBoolean,isFunction,isNull,isUndefined,isNaN,isFinite,typeOf,instanceOf,exists - Equality -
equal,strictEqual,deepEqual,closeTo(approximate equality) - Comparisons -
above,below,within,atLeast,atMost,operator(generic comparison) - Properties -
property,ownProperty,deepProperty,nestedPropertywith value validation - Collections -
include,keys,memberswith deep equality and ordered comparison - Deep Keys -
hasAnyDeepKeys,hasAllDeepKeysfor Maps/Sets with object keys using deep equality - Size/Length -
lengthOf,sizeOffor arrays, strings, maps, sets - Array Operations -
subsequence,endsWith,oneOfmatching - Change Tracking - Monitor value
changes,increases,decreaseswith delta validation - Error Testing -
throw,throws,doesNotThrow,ifErrorwith type and message validation - Object State -
isExtensible,isSealed,isFrozen,isEmpty
Documentation
Quick Start & Examples: Documentation Guide
API Reference: TypeDoc Documentation
Guides:
Migration Guides:
Repository: github.com/nevware21/tripwire
Browser Support
- Comprehensive support from ES5+ for broad browser compatibility, from IE9+
- Tested in Node.js, Chrome, Firefox, Safari, Edge
- Full Web Worker support
Related Packages
@nevware21/tripwire-chai - Chai.js compatibility shim
Contributing
License
This project is licensed under the MIT License. See the LICENSE file for details.
