142 lines
4.5 KiB
JavaScript
142 lines
4.5 KiB
JavaScript
|
'use strict';
|
||
|
/**
|
||
|
* @module Errors
|
||
|
*/
|
||
|
/**
|
||
|
* Factory functions to create throwable error objects
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* Creates an error object to be thrown when no files to be tested could be found using specified pattern.
|
||
|
*
|
||
|
* @public
|
||
|
* @param {string} message - Error message to be displayed.
|
||
|
* @param {string} pattern - User-specified argument value.
|
||
|
* @returns {Error} instance detailing the error condition
|
||
|
*/
|
||
|
function createNoFilesMatchPatternError(message, pattern) {
|
||
|
var err = new Error(message);
|
||
|
err.code = 'ERR_MOCHA_NO_FILES_MATCH_PATTERN';
|
||
|
err.pattern = pattern;
|
||
|
return err;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Creates an error object to be thrown when the reporter specified in the options was not found.
|
||
|
*
|
||
|
* @public
|
||
|
* @param {string} message - Error message to be displayed.
|
||
|
* @param {string} reporter - User-specified reporter value.
|
||
|
* @returns {Error} instance detailing the error condition
|
||
|
*/
|
||
|
function createInvalidReporterError(message, reporter) {
|
||
|
var err = new TypeError(message);
|
||
|
err.code = 'ERR_MOCHA_INVALID_REPORTER';
|
||
|
err.reporter = reporter;
|
||
|
return err;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Creates an error object to be thrown when the interface specified in the options was not found.
|
||
|
*
|
||
|
* @public
|
||
|
* @param {string} message - Error message to be displayed.
|
||
|
* @param {string} ui - User-specified interface value.
|
||
|
* @returns {Error} instance detailing the error condition
|
||
|
*/
|
||
|
function createInvalidInterfaceError(message, ui) {
|
||
|
var err = new Error(message);
|
||
|
err.code = 'ERR_MOCHA_INVALID_INTERFACE';
|
||
|
err.interface = ui;
|
||
|
return err;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Creates an error object to be thrown when a behavior, option, or parameter is unsupported.
|
||
|
*
|
||
|
* @public
|
||
|
* @param {string} message - Error message to be displayed.
|
||
|
* @returns {Error} instance detailing the error condition
|
||
|
*/
|
||
|
function createUnsupportedError(message) {
|
||
|
var err = new Error(message);
|
||
|
err.code = 'ERR_MOCHA_UNSUPPORTED';
|
||
|
return err;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Creates an error object to be thrown when an argument is missing.
|
||
|
*
|
||
|
* @public
|
||
|
* @param {string} message - Error message to be displayed.
|
||
|
* @param {string} argument - Argument name.
|
||
|
* @param {string} expected - Expected argument datatype.
|
||
|
* @returns {Error} instance detailing the error condition
|
||
|
*/
|
||
|
function createMissingArgumentError(message, argument, expected) {
|
||
|
return createInvalidArgumentTypeError(message, argument, expected);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Creates an error object to be thrown when an argument did not use the supported type
|
||
|
*
|
||
|
* @public
|
||
|
* @param {string} message - Error message to be displayed.
|
||
|
* @param {string} argument - Argument name.
|
||
|
* @param {string} expected - Expected argument datatype.
|
||
|
* @returns {Error} instance detailing the error condition
|
||
|
*/
|
||
|
function createInvalidArgumentTypeError(message, argument, expected) {
|
||
|
var err = new TypeError(message);
|
||
|
err.code = 'ERR_MOCHA_INVALID_ARG_TYPE';
|
||
|
err.argument = argument;
|
||
|
err.expected = expected;
|
||
|
err.actual = typeof argument;
|
||
|
return err;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Creates an error object to be thrown when an argument did not use the supported value
|
||
|
*
|
||
|
* @public
|
||
|
* @param {string} message - Error message to be displayed.
|
||
|
* @param {string} argument - Argument name.
|
||
|
* @param {string} value - Argument value.
|
||
|
* @param {string} [reason] - Why value is invalid.
|
||
|
* @returns {Error} instance detailing the error condition
|
||
|
*/
|
||
|
function createInvalidArgumentValueError(message, argument, value, reason) {
|
||
|
var err = new TypeError(message);
|
||
|
err.code = 'ERR_MOCHA_INVALID_ARG_VALUE';
|
||
|
err.argument = argument;
|
||
|
err.value = value;
|
||
|
err.reason = typeof reason !== 'undefined' ? reason : 'is invalid';
|
||
|
return err;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Creates an error object to be thrown when an exception was caught, but the `Error` is falsy or undefined.
|
||
|
*
|
||
|
* @public
|
||
|
* @param {string} message - Error message to be displayed.
|
||
|
* @returns {Error} instance detailing the error condition
|
||
|
*/
|
||
|
function createInvalidExceptionError(message, value) {
|
||
|
var err = new Error(message);
|
||
|
err.code = 'ERR_MOCHA_INVALID_EXCEPTION';
|
||
|
err.valueType = typeof value;
|
||
|
err.value = value;
|
||
|
return err;
|
||
|
}
|
||
|
|
||
|
module.exports = {
|
||
|
createInvalidArgumentTypeError: createInvalidArgumentTypeError,
|
||
|
createInvalidArgumentValueError: createInvalidArgumentValueError,
|
||
|
createInvalidExceptionError: createInvalidExceptionError,
|
||
|
createInvalidInterfaceError: createInvalidInterfaceError,
|
||
|
createInvalidReporterError: createInvalidReporterError,
|
||
|
createMissingArgumentError: createMissingArgumentError,
|
||
|
createNoFilesMatchPatternError: createNoFilesMatchPatternError,
|
||
|
createUnsupportedError: createUnsupportedError
|
||
|
};
|