assertron v11.5.2
assertron
A supplementary assertion library that runs on both NodeJS and browser.
Install
# npm
npm install assertron
# yarn
yarn add assertron
# pnpm
pnpm install assertron
#rush
rush add -p assertronUsage
assertron provides a collection of assertion methods:
assertron.false(value): asserts the provided value is false.assertron.falsy(value): asserts the provided value is falsy.assertron.isInstanceof(value, ClassType): assertsvalue instanceof ClassType.assertron.pathEqual(actual, expected): asserts the two paths are equal regardless of operating system differences.assertron.rejects(promise): asserts the promise rejects.assertron.repeat(fn, times): repeat the specified function n times and return the last result.\ If the result is a promise, it will run the function sequentially.assertron.resolves(promise): asserts the promise resolves.assertron.satisfies(actual, expected): checks ifactualmeets the requirements specified byexpected.\ Each property inexpectedcan be a value, aRegExp, or a predicate function.\ It usessatisfierinternally to check for validity.\ Check outsatisfierfor more detail.
import a from 'assertron' // assertron is also exported as default.
// these passes
a.satisfies({ a: 1, b: 2 }, { a: 1 })
a.satisfies({ a: 'foo', b: 'boo' }, { a: /foo/ })
a.satisfies({ a: 1, b, 2 }, { a: n => n === 1 })
// these fails
a.satisfies({ a: 1 }, { a: 2 })
a.satisfies({ a: 1 }, { a: 1, b: 2 })
a.satisfies({ a: 'foo' }, { a: /boo/ })
a.satisfies({ a: 1 }, { a: () => false })assertron.throws(...): asserts the promise, function, or async function throws (or rejects) an error.
import { assertron } from 'assertron'
await assertron.throws(Promise.reject(new Error('foo')))
assertron.throws(() => { throw new Error('foo') })
await assertron.throws(() => Promise.reject(new Error('foo')))
const e1 = await assertron.throws(Promise.reject(new SpecificError('foo')), SpecificError)
const e2 = assertron.throws(() => { throw new SpecificError('foo') }, SpecificError)
const e3 = await assertron.throws(() => Promise.reject(new SpecificError('foo')), SpecificError)assertron.true(value): asserts the provided value is true.assertron.truthy(value): asserts the provided value is truthy.
AssertOrder
Assert the code is executed in the expected order.
order.once(step: number): asserts the stepstepexecuted once.
import { AssertOrder } from 'assertron'
const o = new AssertOrder()
function foo() {
o.once(1)
}
foo()
foo() // throwsimport { AssertOrder } from 'assertron'
const o = new AssertOrder()
function foo() {
o.once(1)
}
function boo() {
o.once(2)
}
foo()
boo()order.atLeastOnce(step: number): assert thestepexecuted at least once.
import { AssertOrder } from 'assertron'
const o = new AssertOrder()
for (let i = 0; i < 10; i++)
o.atLeastOnce(1)
o.once(2)order.exactly(step: number, times: number): asserts the stepstepexecuted exactly n times
import { AssertOrder } from 'assertron'
const o = new AssertOrder()
for (let i = 0; i < 4; i++)
o.exactly(1, 3) // throws at i === 3order.any(steps: number[], handler?: (step: number) => void): asserts any of the stepsstepsexecuted.
import { AssertOrder } from 'assertron'
const o = new AssertOrder()
for (let i = 1; i <= 4; i++) {
if (i % 2)
o.any([1, 3])
else
o.any([2, 4])
}There are other methods available. Use TypeScript to discover them!
Contribute
yarn
# start making changes
git checkout -b <branch>
yarn watch
# after making change(s)
git commit -m "<commit message>"
git push
# create PRNPM Commands
There are a few useful commands you can use during development.
yarn test
yarn watch
yarn verify1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago