UNPKG

unexpected-eventemitter

Version:
125 lines (107 loc) 12 kB
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.unexpectedEventEmitter = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){ module.exports={ "version": "2.4.0" } },{}],2:[function(require,module,exports){ 'use strict'; var ref = require('../package.json'); var version = ref.version; module.exports = { name: 'unexpected-eventemitter', version: version, installInto: function installInto(expect) { expect.addType({ base: 'object', name: 'EventEmitter', identify: function (obj) { return obj !== null && typeof obj === 'object' && typeof obj.emit === 'function' && typeof obj.once === 'function' && typeof obj.on === 'function'; }, }); var toEmitFrom = function (expect, subject, ee, eventName) { var values = [], len = arguments.length - 4; while ( len-- > 0 ) values[ len ] = arguments[ len + 4 ]; var emitted = false; var emittedValues; var onEvent = function () { var values = [], len = arguments.length; while ( len-- ) values[ len ] = arguments[ len ]; emitted = true; emittedValues = values; }; ee.once(eventName, onEvent); return expect .promise(function () { expect.errorMode = 'bubble'; return expect(subject, 'to be fulfilled'); }) .then(function () { expect.errorMode = 'default'; expect(emitted, '[not] to be true'); expect.errorMode = 'nested'; values.forEach(function (value, idx) { expect(emittedValues[idx], '[not] to satisfy', value); }); }) .finally(function () { ee.removeListener(eventName, onEvent); }); }; var toEmitWithErrorFrom = function ( expect, subject, error, ee, eventName ) { var values = [], len = arguments.length - 5; while ( len-- > 0 ) values[ len ] = arguments[ len + 5 ]; var emitted = false; var emittedValues; var onEvent = function () { var values = [], len = arguments.length; while ( len-- ) values[ len ] = arguments[ len ]; emitted = true; emittedValues = values; }; ee.once(eventName, onEvent); return expect .promise(function () { expect.errorMode = 'bubble'; return expect(subject, 'to be rejected with', error); }) .then(function () { expect.errorMode = 'default'; expect(emitted, 'to be true'); expect.errorMode = 'nested'; values.forEach(function (value, idx) { expect(emittedValues[idx], 'to satisfy', value); }); }) .finally(function () { ee.removeListener(eventName, onEvent); }); }; expect .addAssertion( '<function> [not] to emit from <EventEmitter> <string> <any*>', toEmitFrom ) .addAssertion( '<Promise> [not] to emit from <EventEmitter> <string> <any*>', toEmitFrom ) .addAssertion( '<function> to emit with error from <Error> <EventEmitter> <string> <any*>', toEmitWithErrorFrom ) .addAssertion( '<Promise> to emit with error from <Error> <EventEmitter> <string> <any*>', toEmitWithErrorFrom ); }, }; },{"../package.json":1}]},{},[2])(2) }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJwYWNrYWdlLmpzb24iLCIvVXNlcnMvYm9uZXNrdWxsL3Byb2plY3RzL2JvbmVza3VsbC91bmV4cGVjdGVkLWV2ZW50ZW1pdHRlci9zcmMvdW5leHBlY3RlZC1ldmVudGVtaXR0ZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUNBQTtBQUNBO0FBQ0E7O0FDRkEsWUFBWSxDQUFDOztBQUViLE9BQWUsR0FBRyxPQUFPLENBQUMsaUJBQWlCO0FBQXBDLDBCQUFzQzs7QUFFN0MsTUFBTSxDQUFDLE9BQU8sR0FBRztFQUNmLElBQUksRUFBRSx5QkFBeUI7V0FDL0IsT0FBTztFQUNQLGlDQUFXLENBQUMsTUFBTSxFQUFFO0lBQ2xCLE1BQU0sQ0FBQyxPQUFPLENBQUM7TUFDYixJQUFJLEVBQUUsUUFBUTtNQUNkLElBQUksRUFBRSxjQUFjO01BQ3BCLFFBQVEsV0FBRSxDQUFDLEdBQUcsRUFBRSxTQUNkLEdBQUcsS0FBSyxJQUFJO1FBQ1osT0FBTyxHQUFHLEtBQUssUUFBUTtRQUN2QixPQUFPLEdBQUcsQ0FBQyxJQUFJLEtBQUssVUFBVTtRQUM5QixPQUFPLEdBQUcsQ0FBQyxJQUFJLEtBQUssVUFBVTtRQUM5QixPQUFPLEdBQUcsQ0FBQyxFQUFFLEtBQUssYUFBVTtLQUMvQixDQUFDLENBQUM7O0lBRUgsR0FBSyxDQUFDLFVBQVUsWUFBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLFNBQVMsQUFBVyxFQUFFLEFBQUc7OztBQUFDO01BQ2pFLEdBQUcsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO01BQ3BCLEdBQUcsQ0FBQyxhQUFhLENBQUM7O01BRWxCLEdBQUssQ0FBQyxPQUFPLFlBQUcsQ0FBQyxBQUFTLEVBQUUsQUFBRzs7O0FBQUM7UUFDOUIsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNmLGFBQWEsR0FBRyxNQUFNLENBQUM7T0FDeEIsQ0FBQzs7TUFFRixFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQzs7TUFFNUIsT0FBTyxNQUFNO1NBQ1YsT0FBTyxVQUFDLEdBQUcsQUFBRztVQUNiLE1BQU0sQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1VBQzVCLE9BQU8sTUFBTSxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1NBQzNDLENBQUM7U0FDRCxJQUFJLFVBQUMsR0FBRyxBQUFHO1VBQ1YsTUFBTSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7VUFDN0IsTUFBTSxDQUFDLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1VBQ3BDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1VBQzVCLE1BQU0sQ0FBQyxPQUFPLFVBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEFBQUc7WUFDN0IsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLENBQUMsQ0FBQztXQUN2RCxDQUFDLENBQUM7U0FDSixDQUFDO1NBQ0QsT0FBTyxVQUFDLEdBQUcsQUFBRztVQUNiLEVBQUUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ3ZDLENBQUMsQ0FBQztLQUNOLENBQUM7O0lBRUYsR0FBSyxDQUFDLG1CQUFtQixZQUFHO01BQzFCLE1BQU07TUFDTixPQUFPO01BQ1AsS0FBSztNQUNMLEVBQUU7TUFDRixTQUFTLEFBQ0E7TUFDVCxBQUFHOzs7QUFBQztNQUNKLEdBQUcsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO01BQ3BCLEdBQUcsQ0FBQyxhQUFhLENBQUM7O01BRWxCLEdBQUssQ0FBQyxPQUFPLFlBQUcsQ0FBQyxBQUFTLEVBQUUsQUFBRzs7O0FBQUM7UUFDOUIsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNmLGFBQWEsR0FBRyxNQUFNLENBQUM7T0FDeEIsQ0FBQzs7TUFFRixFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQzs7TUFFNUIsT0FBTyxNQUFNO1NBQ1YsT0FBTyxVQUFDLEdBQUcsQUFBRztVQUNiLE1BQU0sQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1VBQzVCLE9BQU8sTUFBTSxDQUFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUN0RCxDQUFDO1NBQ0QsSUFBSSxVQUFDLEdBQUcsQUFBRztVQUNWLE1BQU0sQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1VBQzdCLE1BQU0sQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7VUFDOUIsTUFBTSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7VUFDNUIsTUFBTSxDQUFDLE9BQU8sVUFBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsQUFBRztZQUM3QixNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztXQUNqRCxDQUFDLENBQUM7U0FDSixDQUFDO1NBQ0QsT0FBTyxVQUFDLEdBQUcsQUFBRztVQUNiLEVBQUUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ3ZDLENBQUMsQ0FBQztLQUNOLENBQUM7O0lBRUYsTUFBTTtPQUNILFlBQVk7UUFDWCw4REFBOEQ7UUFDOUQsVUFBVTtPQUNYO09BQ0EsWUFBWTtRQUNYLDZEQUE2RDtRQUM3RCxVQUFVO09BQ1g7T0FDQSxZQUFZO1FBQ1gsMkVBQTJFO1FBQzNFLG1CQUFtQjtPQUNwQjtPQUNBLFlBQVk7UUFDWCwwRUFBMEU7UUFDMUUsbUJBQW1CO09BQ3BCLENBQUM7R0FDTDtDQUNGLENBQUMiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSxuLHQpe2Z1bmN0aW9uIG8oaSxmKXtpZighbltpXSl7aWYoIWVbaV0pe3ZhciBjPVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmU7aWYoIWYmJmMpcmV0dXJuIGMoaSwhMCk7aWYodSlyZXR1cm4gdShpLCEwKTt2YXIgYT1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK2krXCInXCIpO3Rocm93IGEuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixhfXZhciBwPW5baV09e2V4cG9ydHM6e319O2VbaV1bMF0uY2FsbChwLmV4cG9ydHMsZnVuY3Rpb24ocil7dmFyIG49ZVtpXVsxXVtyXTtyZXR1cm4gbyhufHxyKX0scCxwLmV4cG9ydHMscixlLG4sdCl9cmV0dXJuIG5baV0uZXhwb3J0c31mb3IodmFyIHU9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxpPTA7aTx0Lmxlbmd0aDtpKyspbyh0W2ldKTtyZXR1cm4gb31yZXR1cm4gcn0pKCkiLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuNC4wXCJcbn0iLCIndXNlIHN0cmljdCc7XG5cbmNvbnN0IHt2ZXJzaW9ufSA9IHJlcXVpcmUoJy4uL3BhY2thZ2UuanNvbicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbmFtZTogJ3VuZXhwZWN0ZWQtZXZlbnRlbWl0dGVyJyxcbiAgdmVyc2lvbixcbiAgaW5zdGFsbEludG8oZXhwZWN0KSB7XG4gICAgZXhwZWN0LmFkZFR5cGUoe1xuICAgICAgYmFzZTogJ29iamVjdCcsXG4gICAgICBuYW1lOiAnRXZlbnRFbWl0dGVyJyxcbiAgICAgIGlkZW50aWZ5OiAob2JqKSA9PlxuICAgICAgICBvYmogIT09IG51bGwgJiZcbiAgICAgICAgdHlwZW9mIG9iaiA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgdHlwZW9mIG9iai5lbWl0ID09PSAnZnVuY3Rpb24nICYmXG4gICAgICAgIHR5cGVvZiBvYmoub25jZSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgICB0eXBlb2Ygb2JqLm9uID09PSAnZnVuY3Rpb24nLFxuICAgIH0pO1xuXG4gICAgY29uc3QgdG9FbWl0RnJvbSA9IChleHBlY3QsIHN1YmplY3QsIGVlLCBldmVudE5hbWUsIC4uLnZhbHVlcykgPT4ge1xuICAgICAgbGV0IGVtaXR0ZWQgPSBmYWxzZTtcbiAgICAgIGxldCBlbWl0dGVkVmFsdWVzO1xuXG4gICAgICBjb25zdCBvbkV2ZW50ID0gKC4uLnZhbHVlcykgPT4ge1xuICAgICAgICBlbWl0dGVkID0gdHJ1ZTtcbiAgICAgICAgZW1pdHRlZFZhbHVlcyA9IHZhbHVlcztcbiAgICAgIH07XG5cbiAgICAgIGVlLm9uY2UoZXZlbnROYW1lLCBvbkV2ZW50KTtcblxuICAgICAgcmV0dXJuIGV4cGVjdFxuICAgICAgICAucHJvbWlzZSgoKSA9PiB7XG4gICAgICAgICAgZXhwZWN0LmVycm9yTW9kZSA9ICdidWJibGUnO1xuICAgICAgICAgIHJldHVybiBleHBlY3Qoc3ViamVjdCwgJ3RvIGJlIGZ1bGZpbGxlZCcpO1xuICAgICAgICB9KVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgZXhwZWN0LmVycm9yTW9kZSA9ICdkZWZhdWx0JztcbiAgICAgICAgICBleHBlY3QoZW1pdHRlZCwgJ1tub3RdIHRvIGJlIHRydWUnKTtcbiAgICAgICAgICBleHBlY3QuZXJyb3JNb2RlID0gJ25lc3RlZCc7XG4gICAgICAgICAgdmFsdWVzLmZvckVhY2goKHZhbHVlLCBpZHgpID0+IHtcbiAgICAgICAgICAgIGV4cGVjdChlbWl0dGVkVmFsdWVzW2lkeF0sICdbbm90XSB0byBzYXRpc2Z5JywgdmFsdWUpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgICAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICAgICAgZWUucmVtb3ZlTGlzdGVuZXIoZXZlbnROYW1lLCBvbkV2ZW50KTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IHRvRW1pdFdpdGhFcnJvckZyb20gPSAoXG4gICAgICBleHBlY3QsXG4gICAgICBzdWJqZWN0LFxuICAgICAgZXJyb3IsXG4gICAgICBlZSxcbiAgICAgIGV2ZW50TmFtZSxcbiAgICAgIC4uLnZhbHVlc1xuICAgICkgPT4ge1xuICAgICAgbGV0IGVtaXR0ZWQgPSBmYWxzZTtcbiAgICAgIGxldCBlbWl0dGVkVmFsdWVzO1xuXG4gICAgICBjb25zdCBvbkV2ZW50ID0gKC4uLnZhbHVlcykgPT4ge1xuICAgICAgICBlbWl0dGVkID0gdHJ1ZTtcbiAgICAgICAgZW1pdHRlZFZhbHVlcyA9IHZhbHVlcztcbiAgICAgIH07XG5cbiAgICAgIGVlLm9uY2UoZXZlbnROYW1lLCBvbkV2ZW50KTtcblxuICAgICAgcmV0dXJuIGV4cGVjdFxuICAgICAgICAucHJvbWlzZSgoKSA9PiB7XG4gICAgICAgICAgZXhwZWN0LmVycm9yTW9kZSA9ICdidWJibGUnO1xuICAgICAgICAgIHJldHVybiBleHBlY3Qoc3ViamVjdCwgJ3RvIGJlIHJlamVjdGVkIHdpdGgnLCBlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICBleHBlY3QuZXJyb3JNb2RlID0gJ2RlZmF1bHQnO1xuICAgICAgICAgIGV4cGVjdChlbWl0dGVkLCAndG8gYmUgdHJ1ZScpO1xuICAgICAgICAgIGV4cGVjdC5lcnJvck1vZGUgPSAnbmVzdGVkJztcbiAgICAgICAgICB2YWx1ZXMuZm9yRWFjaCgodmFsdWUsIGlkeCkgPT4ge1xuICAgICAgICAgICAgZXhwZWN0KGVtaXR0ZWRWYWx1ZXNbaWR4XSwgJ3RvIHNhdGlzZnknLCB2YWx1ZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICBlZS5yZW1vdmVMaXN0ZW5lcihldmVudE5hbWUsIG9uRXZlbnQpO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgZXhwZWN0XG4gICAgICAuYWRkQXNzZXJ0aW9uKFxuICAgICAgICAnPGZ1bmN0aW9uPiBbbm90XSB0byBlbWl0IGZyb20gPEV2ZW50RW1pdHRlcj4gPHN0cmluZz4gPGFueSo+JyxcbiAgICAgICAgdG9FbWl0RnJvbVxuICAgICAgKVxuICAgICAgLmFkZEFzc2VydGlvbihcbiAgICAgICAgJzxQcm9taXNlPiBbbm90XSB0byBlbWl0IGZyb20gPEV2ZW50RW1pdHRlcj4gPHN0cmluZz4gPGFueSo+JyxcbiAgICAgICAgdG9FbWl0RnJvbVxuICAgICAgKVxuICAgICAgLmFkZEFzc2VydGlvbihcbiAgICAgICAgJzxmdW5jdGlvbj4gdG8gZW1pdCB3aXRoIGVycm9yIGZyb20gPEVycm9yPiA8RXZlbnRFbWl0dGVyPiA8c3RyaW5nPiA8YW55Kj4nLFxuICAgICAgICB0b0VtaXRXaXRoRXJyb3JGcm9tXG4gICAgICApXG4gICAgICAuYWRkQXNzZXJ0aW9uKFxuICAgICAgICAnPFByb21pc2U+IHRvIGVtaXQgd2l0aCBlcnJvciBmcm9tIDxFcnJvcj4gPEV2ZW50RW1pdHRlcj4gPHN0cmluZz4gPGFueSo+JyxcbiAgICAgICAgdG9FbWl0V2l0aEVycm9yRnJvbVxuICAgICAgKTtcbiAgfSxcbn07XG4iXX0=