Current collected state Current
Observed since 20 Oct, 22:04 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
@0bdx/are
Utilities for unit testing 0bdx apps, libraries and websites.
Synchronous utilities for unit testing apps, libraries and websites.
⨂ Version: 0.0.8
⨂ NPM: https://www.npmjs.com/package/@0bdx/are
⨂ Repo: https://github.com/0bdx/are
⨂ Homepage: https://0bdx.com/are
TODO add an overview
Example scripts can be found in the 'examples/' directory.
You can run Example 1, for example, using:
node examples/example-1.js
import { isDeeplyLike as isLike } from '@0bdx/are';
// Compare two numbers.
console.log(isLike(0, -0, 'Zero and minus-zero are alike.'));
// PASS: Zero and minus-zero are alike.
// : `actually` is `0` as expected
// Compare two booleans.
try { isLike(true, false, 'true and false are not alike.');
} catch (err) { console.log(err.message) }
// FAIL: true and false are not alike.
// : `actually` is `true`
// : `expected` is `false`
// Compare two plain objects.
console.log(isLike({a:1}, {a:1}, 'Similar objects are alike.'));
// PASS: Similar objects are alike.
// : `actually` is `{ a:1 }` as expected
import { bind1, isDeeplyLike } from '@0bdx/are';
// Create a test suite with a title, and bind one function to it.
const [ isLike, testSuite ] = bind1(isDeeplyLike, 'fact()');
// Or a test suite from a previous test could be passed in instead.
// const [ isLike ] = bind1(isDeeplyLike, testSuite);
// Optionally, begin a new section.
testSuite.addSection('Check that fact() works');
// Run the tests. The third argument, `notes`, is optional.
isLike(fact(0), 1);
isLike(fact(5), 120,
['`fact(5)` 5! = 5 * 4 * 3 * 2 * 1']);
// Output a test results summary to the console, as plain text.
console.log(testSuite.render());
// Calculates the factorial of a given integer.
function fact(n) {
if (n === 0 || n === 1) return 1;
for (let i=n-1; i>0; i--) n *= i;
return n;
}
import { bind2, isDeeplyLike, throwsError } from '@0bdx/are';
// Create a test suite with a title, and bind two functions to it.
const [ isLike, throws, testSuite ] = bind2(isDeeplyLike, throwsError, 'fact()');
// Or a test suite from a previous test could be passed in instead.
// const [ isLike, throws ] = bind2(isDeeplyLike, throwsError, testSuite);
// Optionally, begin a new section.
testSuite.addSection('Check that fact() works');
// Run the tests. The third argument, `notes`, is optional.
throws(()=>fact(), "`n` is not type 'number'");
throws(()=>fact(NaN), '`n` is NaN!',
['`fact(NaN)` cannot factorialise the special `NaN` number']);
isLike(fact(0), 1);
isLike(fact(5), 120,
['`fact(5)` 5! = 5 * 4 * 3 * 2 * 1']);
// Output a test results summary to the console, as plain text.
console.log(testSuite.render());
// Calculates the factorial of a given integer.
function fact(n) {
if (typeof n !== 'number') throw Error("`n` is not type 'number'");
if (isNaN(n)) throw Error('`n` is NaN!');
if (n === 0 || n === 1) return 1;
for (let i=n-1; i>0; i--) n *= i;
return n;
}
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
@0bdx/aintaEnvironment{
"local_name": "@0bdx/ainta",
"alias": false,
"peer_metadata": null
} | ^0.0.19 | runtime |
@0bdx/build-helpersEnvironment{
"local_name": "@0bdx/build-helpers",
"alias": false,
"peer_metadata": null
} | ^0.0.4 | development |
rollupEnvironment{
"local_name": "rollup",
"alias": false,
"peer_metadata": null
} | ^3.15.0 | development |
Source distribution
{
"integrity": "sha512-HOF2t2fSjTYXdZp1FvqOk+liGyySYbnPuW1TEGiwj+2RackWWpQzmkDe2VD0bZyOZ9fUCS2ns4fH/8hcNGv0cg==",
"shasum": "39ee34e8f9fa16e622948aeddce45e3c8e2a1213",
"tarball": "https://registry.npmjs.org/@0bdx/are/-/are-0.0.3.tgz",
"fileCount": 5,
"unpackedSize": 83270,
"signatures": [
{
"keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA",
"sig": "MEQCIFImWpZMUVFl2U1Z3HYNEUuxSkxFGLmjR53oljlt9BT7AiB8uHggAZsg7ZwEpVhzX+2UiwPjLdpEw2fJNYZHbmHXFA=="
}
]
}Observed since 20 Oct, 22:04 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:60fdaa1f23b8d028c9ae1b52c25a93b3cfade2f4d86e145201f90c5823a71837