mirror of
https://github.com/gchq/CyberChef
synced 2024-12-29 14:03:10 +00:00
60 lines
1.1 KiB
JavaScript
60 lines
1.1 KiB
JavaScript
/**
|
|
* assertionHandler.mjs
|
|
*
|
|
* Pair native node assertions with a description for
|
|
* the benefit of the TestRegister.
|
|
*
|
|
* @author d98762625 [d98762625@gmail.com]
|
|
* @copyright Crown Copyright 2019
|
|
* @license Apache-2.0
|
|
*/
|
|
|
|
/* eslint no-console: 0 */
|
|
|
|
|
|
/**
|
|
* Print useful stack on error
|
|
*/
|
|
const wrapRun = (run) => async () => {
|
|
try {
|
|
await run();
|
|
} catch (e) {
|
|
console.dir(e);
|
|
throw e;
|
|
}
|
|
};
|
|
|
|
|
|
/**
|
|
* it - wrapper for assertions to provide a helpful description
|
|
* to the TestRegister
|
|
* @namespace ApiTests
|
|
* @param {String} description - The description of the test
|
|
* @param {Function} assertion - The test
|
|
*
|
|
* @example
|
|
* // One assertion
|
|
* it("should run one assertion", () => assert.equal(1,1))
|
|
*
|
|
* @example
|
|
* // multiple assertions
|
|
* it("should handle multiple assertions", () => {
|
|
* assert.equal(1,1)
|
|
* assert.notEqual(3,4)
|
|
* })
|
|
*
|
|
* @example
|
|
* // async assertions
|
|
* it("should handle async", async () => {
|
|
* let r = await asyncFunc()
|
|
* assert(r)
|
|
* })
|
|
*/
|
|
export function it(name, run) {
|
|
return {
|
|
name: `Node API: ${name}`,
|
|
run: wrapRun(run),
|
|
};
|
|
}
|
|
|
|
export default it;
|