1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.mockAppContext = undefined;
|
7 |
|
8 | var _regenerator = require('babel-runtime/regenerator');
|
9 |
|
10 | var _regenerator2 = _interopRequireDefault(_regenerator);
|
11 |
|
12 | var _extends2 = require('babel-runtime/helpers/extends');
|
13 |
|
14 | var _extends3 = _interopRequireDefault(_extends2);
|
15 |
|
16 | var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray');
|
17 |
|
18 | var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);
|
19 |
|
20 | var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
|
21 |
|
22 | var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
|
23 |
|
24 | var _appContext = require('./appContext');
|
25 |
|
26 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
27 |
|
28 | var recursiveDepth = 0;
|
29 |
|
30 |
|
31 |
|
32 |
|
33 |
|
34 |
|
35 |
|
36 |
|
37 |
|
38 |
|
39 | var clearAppContext = function clearAppContext() {
|
40 | Object.keys(_appContext.appContext).forEach(function (key) {
|
41 | delete _appContext.appContext[key];
|
42 | });
|
43 | };
|
44 |
|
45 | var mockAppContext = exports.mockAppContext = function mockAppContext() {
|
46 | for (var _len = arguments.length, contextAndFunc = Array(_len), _key = 0; _key < _len; _key++) {
|
47 | contextAndFunc[_key] = arguments[_key];
|
48 | }
|
49 |
|
50 | return (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee() {
|
51 | var existingKeys, _ref2, _ref3, contextObjOrFunc, func, originalAppContext, context;
|
52 |
|
53 | return _regenerator2.default.wrap(function _callee$(_context) {
|
54 | while (1) {
|
55 | switch (_context.prev = _context.next) {
|
56 | case 0:
|
57 | if (!(recursiveDepth === 0)) {
|
58 | _context.next = 5;
|
59 | break;
|
60 | }
|
61 |
|
62 | existingKeys = Object.keys(_appContext.appContext);
|
63 |
|
64 | if (!existingKeys.length) {
|
65 | _context.next = 5;
|
66 | break;
|
67 | }
|
68 |
|
69 | clearAppContext();
|
70 | throw new Error('appContext appears to have objects leftover from a previous test: ' + existingKeys + '\n' + 'Did you forget to use mockAppContext() around code that modified the context?');
|
71 |
|
72 | case 5:
|
73 | _ref2 = contextAndFunc.length <= 1 ? [{}].concat(contextAndFunc) : contextAndFunc, _ref3 = (0, _slicedToArray3.default)(_ref2, 2), contextObjOrFunc = _ref3[0], func = _ref3[1];
|
74 | originalAppContext = (0, _extends3.default)({}, _appContext.appContext);
|
75 |
|
76 | recursiveDepth += 1;
|
77 | _context.prev = 8;
|
78 | context = typeof contextObjOrFunc === 'function' ? contextObjOrFunc() : contextObjOrFunc;
|
79 |
|
80 | if (context) {
|
81 | Object.assign(_appContext.appContext, context);
|
82 | }
|
83 | _context.next = 13;
|
84 | return func(_appContext.appContext);
|
85 |
|
86 | case 13:
|
87 | return _context.abrupt('return', _context.sent);
|
88 |
|
89 | case 14:
|
90 | _context.prev = 14;
|
91 |
|
92 | recursiveDepth -= 1;
|
93 | clearAppContext();
|
94 | Object.assign(_appContext.appContext, originalAppContext);
|
95 | return _context.finish(14);
|
96 |
|
97 | case 19:
|
98 | case 'end':
|
99 | return _context.stop();
|
100 | }
|
101 | }
|
102 | }, _callee, undefined, [[8,, 14, 19]]);
|
103 | }));
|
104 | }; |
\ | No newline at end of file |