suitest-js-api
Version:
Suitest is a test automation and device manipulation tool for living room devices and web browsers.
43 lines (38 loc) • 1.76 kB
JavaScript
/* istanbul ignore file */
const {curry} = require('ramda');
const assert = require('assert');
const assertThrowsAsync = require('../assertThrowsAsync');
const SuitestError = require('../SuitestError');
const commonTestInputError = curry((asserter, fn, args = [], expect = {}, msg) => {
return asserter(fn.bind(fn, ...args), {
type: SuitestError.type,
code: SuitestError.INVALID_INPUT,
...expect,
}, msg || `Invalid error if ${args.length ? args.map(JSON.stringify).join(', ') : 'no args'}`);
});
const suitestInvalidInputError = (message) => {
return new SuitestError(message, SuitestError.INVALID_INPUT);
};
/**
* @deprecated use assert.rejects and suitestInvalidInputError https://nodejs.org/api/assert.html#assertrejectsasyncfn-error-message
* @example
* // Before:
* await testInputErrorAsync(testingFunc, ['some arg']);
* await testInputErrorAsync(testingFunc, ['some arg'] {message: 'Error message'});
* // After:
* await assert.rejects(() => testingFunc('some arg'));
* await assert.rejects(() => testingFunc('some arg'), suitestInvalidInputError('Error message'));
*/
module.exports.testInputErrorAsync = commonTestInputError(assertThrowsAsync);
/**
* @deprecated use assert.throws instead https://nodejs.org/api/assert.html#assertthrowsfn-error-message
* @example
* // Before:
* await testInputErrorSync(testingFunc, ['some arg']);
* await testInputErrorSync(testingFunc, ['some arg'], {message: 'Error message'});
* // After:
* await assert.throws(() => testingFunc('some arg'));
* await assert.throws(() => testingFunc('some arg'), suitestInvalidInputError('Error message'));
*/
module.exports.testInputErrorSync = commonTestInputError(assert.throws);
module.exports.suitestInvalidInputError = suitestInvalidInputError;