1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.resetAppContext = 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 |
|
40 |
|
41 | var resetAppContext = exports.resetAppContext = function resetAppContext() {
|
42 | Object.keys(_appContext.appContext).forEach(function (key) {
|
43 | delete _appContext.appContext[key];
|
44 | });
|
45 | };
|
46 |
|
47 | exports.default = function () {
|
48 | for (var _len = arguments.length, contextAndFunc = Array(_len), _key = 0; _key < _len; _key++) {
|
49 | contextAndFunc[_key] = arguments[_key];
|
50 | }
|
51 |
|
52 | return (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee() {
|
53 | var existingKeys, _ref2, _ref3, contextObjOrFunc, testFunc, originalAppContext, context;
|
54 |
|
55 | return _regenerator2.default.wrap(function _callee$(_context) {
|
56 | while (1) {
|
57 | switch (_context.prev = _context.next) {
|
58 | case 0:
|
59 | if (!(recursiveDepth === 0)) {
|
60 | _context.next = 5;
|
61 | break;
|
62 | }
|
63 |
|
64 | existingKeys = Object.keys(_appContext.appContext);
|
65 |
|
66 | if (!existingKeys.length) {
|
67 | _context.next = 5;
|
68 | break;
|
69 | }
|
70 |
|
71 | resetAppContext();
|
72 | 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?');
|
73 |
|
74 | case 5:
|
75 | _ref2 = contextAndFunc.length <= 1 ? [{}].concat(contextAndFunc) : contextAndFunc, _ref3 = (0, _slicedToArray3.default)(_ref2, 2), contextObjOrFunc = _ref3[0], testFunc = _ref3[1];
|
76 | originalAppContext = (0, _extends3.default)({}, _appContext.appContext);
|
77 |
|
78 | recursiveDepth += 1;
|
79 | _context.prev = 8;
|
80 |
|
81 | if (!(typeof contextObjOrFunc === 'function')) {
|
82 | _context.next = 15;
|
83 | break;
|
84 | }
|
85 |
|
86 | _context.next = 12;
|
87 | return contextObjOrFunc();
|
88 |
|
89 | case 12:
|
90 | _context.t0 = _context.sent;
|
91 | _context.next = 16;
|
92 | break;
|
93 |
|
94 | case 15:
|
95 | _context.t0 = contextObjOrFunc;
|
96 |
|
97 | case 16:
|
98 | context = _context.t0;
|
99 |
|
100 | if (context) {
|
101 | Object.assign(_appContext.appContext, context);
|
102 | }
|
103 | _context.next = 20;
|
104 | return testFunc(_appContext.appContext);
|
105 |
|
106 | case 20:
|
107 | return _context.abrupt('return', _context.sent);
|
108 |
|
109 | case 21:
|
110 | _context.prev = 21;
|
111 |
|
112 | recursiveDepth -= 1;
|
113 | resetAppContext();
|
114 | Object.assign(_appContext.appContext, originalAppContext);
|
115 | return _context.finish(21);
|
116 |
|
117 | case 26:
|
118 | case 'end':
|
119 | return _context.stop();
|
120 | }
|
121 | }
|
122 | }, _callee, undefined, [[8,, 21, 26]]);
|
123 | }));
|
124 | }; |
\ | No newline at end of file |