1.0.5 • Published 3 years ago
@gozala/subtest v1.0.5
subtest
Native ES test system that simply runs tests that were exported by your modules.
Format
subtest will run functions exported by a name starting with test
// You can use camel case naming
/** @type {import('subtest').Test} */
export const testSum = (assert) => {
assert.equal(1 + 1, 2)
}
// You can also use snake case naming
/** @type {import('subtest').Test} */
export const test_multiply = (assert) => {
assert.equal(2 * 2, 4)
}
// Or just use name `test`
/** @type {import('subtest').Test} */
export const test = (assert) => {
assert.throws(() => new Error('boom'))
}It will also run exported test suites, which are objects (with test functions) exported by name starting with test.
Test suites can contain nested suites with arbitrary names.
export test = {
'multiply': (assert) => {
assert.equal(2 * 2, 4)
},
'range check': (assert) => {
assert.throws(() => new Uint8Array().set([1, 2]), /out of bound/)
}
}Usage
You can run all the tests in the test folder by running
subtest testAlternatively you can create node script e.g. mytest.js that runs tests
import test from 'subtest'
import * testMath from './test/math.js'
import * testString from './test/string.js'
test({ testMath, testString })node ./mytest.js