"use strict";
/**
* Used for simulating actions on stores when testing.
*
*/
exports.simulateAction = simulateAction;
/**
* Used for simulating asynchronous actions on stores when testing.
*
* asyncAction must be one of the following: begin, success or failure.
*
* When simulating the 'begin' action, all arguments after 'begin' will
* be passed to the action handler in the store.
*
* @example
*
* TestUtils.simulateActionAsync(store, 'actionId', 'begin', 'arg1', 'arg2');
* TestUtils.simulateActionAsync(store, 'actionId', 'success', { foo: 'bar' });
* TestUtils.simulateActionAsync(store, 'actionId', 'failure', new Error('action failed'));
*/
exports.simulateActionAsync = simulateActionAsync;
function simulateAction(store, action, body) {
var actionId = ensureActionId(action);
store.handler({ actionId: actionId, body: body });
}function simulateActionAsync(store, action, asyncAction) {
for (var _len = arguments.length, args = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
args[_key - 3] = arguments[_key];
}
var actionId = ensureActionId(action);
var payload = {
actionId: actionId, async: asyncAction
};
switch (asyncAction) {
case "begin":
if (args.length) {
payload.actionArgs = args;
}
break;
case "success":
payload.body = args[0];
break;
case "failure":
payload.error = args[0];
break;
default:
throw new Error("asyncAction must be one of: begin, success or failure");
}
store.handler(payload);
}
function ensureActionId(actionOrActionId) {
return typeof actionOrActionId === "function" ? actionOrActionId._id : actionOrActionId;
}
Object.defineProperty(exports, "__esModule", {
value: true
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGRvbnMvVGVzdFV0aWxzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztRQUlnQixjQUFjLEdBQWQsY0FBYzs7Ozs7Ozs7Ozs7Ozs7Ozs7UUFtQmQsbUJBQW1CLEdBQW5CLG1CQUFtQjtBQW5CNUIsU0FBUyxjQUFjLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7QUFDbEQsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3hDLE9BQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxRQUFRLEVBQVIsUUFBUSxFQUFFLElBQUksRUFBSixJQUFJLEVBQUUsQ0FBQyxDQUFDO0NBQ25DLEFBZ0JNLFNBQVMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQVc7b0NBQU4sSUFBSTtBQUFKLFFBQUk7OztBQUNyRSxNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDeEMsTUFBSSxPQUFPLEdBQUc7QUFDWixZQUFRLEVBQVIsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXO0dBQzdCLENBQUM7O0FBRUYsVUFBTyxXQUFXO0FBQ2hCLFNBQUssT0FBTztBQUNWLFVBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtBQUNmLGVBQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO09BQzNCO0FBQ0QsWUFBTTtBQUFBLEFBQ1IsU0FBSyxTQUFTO0FBQ1osYUFBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkIsWUFBTTtBQUFBLEFBQ1IsU0FBSyxTQUFTO0FBQ1osYUFBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEIsWUFBTTtBQUFBLEFBQ1I7QUFDRSxZQUFNLElBQUksS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUM7QUFBQSxHQUM1RTs7QUFFRCxPQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0NBQ3hCOztBQUVELFNBQVMsY0FBYyxDQUFDLGdCQUFnQixFQUFFO0FBQ3hDLFNBQU8sT0FBTyxnQkFBZ0IsS0FBSyxVQUFVLEdBQ3pDLGdCQUFnQixDQUFDLEdBQUcsR0FDcEIsZ0JBQWdCLENBQUM7Q0FDdEIiLCJmaWxlIjoic3JjL2FkZG9ucy9UZXN0VXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFVzZWQgZm9yIHNpbXVsYXRpbmcgYWN0aW9ucyBvbiBzdG9yZXMgd2hlbiB0ZXN0aW5nLlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNpbXVsYXRlQWN0aW9uKHN0b3JlLCBhY3Rpb24sIGJvZHkpIHtcbiAgY29uc3QgYWN0aW9uSWQgPSBlbnN1cmVBY3Rpb25JZChhY3Rpb24pO1xuICBzdG9yZS5oYW5kbGVyKHsgYWN0aW9uSWQsIGJvZHkgfSk7XG59XG5cbi8qKlxuICogVXNlZCBmb3Igc2ltdWxhdGluZyBhc3luY2hyb25vdXMgYWN0aW9ucyBvbiBzdG9yZXMgd2hlbiB0ZXN0aW5nLlxuICpcbiAqIGFzeW5jQWN0aW9uIG11c3QgYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6IGJlZ2luLCBzdWNjZXNzIG9yIGZhaWx1cmUuXG4gKlxuICogV2hlbiBzaW11bGF0aW5nIHRoZSAnYmVnaW4nIGFjdGlvbiwgYWxsIGFyZ3VtZW50cyBhZnRlciAnYmVnaW4nIHdpbGxcbiAqIGJlIHBhc3NlZCB0byB0aGUgYWN0aW9uIGhhbmRsZXIgaW4gdGhlIHN0b3JlLlxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogVGVzdFV0aWxzLnNpbXVsYXRlQWN0aW9uQXN5bmMoc3RvcmUsICdhY3Rpb25JZCcsICdiZWdpbicsICdhcmcxJywgJ2FyZzInKTtcbiAqIFRlc3RVdGlscy5zaW11bGF0ZUFjdGlvbkFzeW5jKHN0b3JlLCAnYWN0aW9uSWQnLCAnc3VjY2VzcycsIHsgZm9vOiAnYmFyJyB9KTtcbiAqIFRlc3RVdGlscy5zaW11bGF0ZUFjdGlvbkFzeW5jKHN0b3JlLCAnYWN0aW9uSWQnLCAnZmFpbHVyZScsIG5ldyBFcnJvcignYWN0aW9uIGZhaWxlZCcpKTtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNpbXVsYXRlQWN0aW9uQXN5bmMoc3RvcmUsIGFjdGlvbiwgYXN5bmNBY3Rpb24sIC4uLmFyZ3MpIHtcbiAgY29uc3QgYWN0aW9uSWQgPSBlbnN1cmVBY3Rpb25JZChhY3Rpb24pO1xuICBsZXQgcGF5bG9hZCA9IHtcbiAgICBhY3Rpb25JZCwgYXN5bmM6IGFzeW5jQWN0aW9uXG4gIH07XG5cbiAgc3dpdGNoKGFzeW5jQWN0aW9uKSB7XG4gICAgY2FzZSAnYmVnaW4nOlxuICAgICAgaWYgKGFyZ3MubGVuZ3RoKSB7XG4gICAgICAgIHBheWxvYWQuYWN0aW9uQXJncyA9IGFyZ3M7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdzdWNjZXNzJzpcbiAgICAgIHBheWxvYWQuYm9keSA9IGFyZ3NbMF07XG4gICAgICBicmVhaztcbiAgICBjYXNlICdmYWlsdXJlJzpcbiAgICAgIHBheWxvYWQuZXJyb3IgPSBhcmdzWzBdO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcignYXN5bmNBY3Rpb24gbXVzdCBiZSBvbmUgb2Y6IGJlZ2luLCBzdWNjZXNzIG9yIGZhaWx1cmUnKTtcbiAgfVxuXG4gIHN0b3JlLmhhbmRsZXIocGF5bG9hZCk7XG59XG5cbmZ1bmN0aW9uIGVuc3VyZUFjdGlvbklkKGFjdGlvbk9yQWN0aW9uSWQpIHtcbiAgcmV0dXJuIHR5cGVvZiBhY3Rpb25PckFjdGlvbklkID09PSAnZnVuY3Rpb24nXG4gICAgPyBhY3Rpb25PckFjdGlvbklkLl9pZFxuICAgIDogYWN0aW9uT3JBY3Rpb25JZDtcbn1cbiJdfQ== |