UNPKG

expect

Version:
45 lines (32 loc) 1.24 kB
'use strict'; exports.__esModule = true; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _isRegexp = require('is-regexp'); var _isRegexp2 = _interopRequireDefault(_isRegexp); var _isFunction = require('./isFunction'); var _isFunction2 = _interopRequireDefault(_isFunction); /** * Returns true if the given function throws the given value * when invoked. The value may be: * * - undefined, to merely assert there was a throw * - a constructor function, for comparing using instanceof * - a regular expression, to compare with the error message * - a string, to find in the error message */ function functionThrows(fn, context, args, value) { try { fn.apply(context, args); } catch (error) { if (value == null) return true; if (_isFunction2['default'](value) && error instanceof value) return true; var message = error.message || error; if (typeof message === 'string') { if (_isRegexp2['default'](value) && value.test(error.message)) return true; if (typeof value === 'string' && message.indexOf(value) !== -1) return true; } } return false; } exports['default'] = functionThrows; module.exports = exports['default'];