UNPKG

28.2 kBJavaScriptView Raw
1(function (global, factory) {
2 typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('rxjs'), require('@ngrx/store'), require('@angular/core/testing')) :
3 typeof define === 'function' && define.amd ? define('@ngrx/store/testing', ['exports', '@angular/core', 'rxjs', '@ngrx/store', '@angular/core/testing'], factory) :
4 (global = global || self, factory((global.ngrx = global.ngrx || {}, global.ngrx.store = global.ngrx.store || {}, global.ngrx.store.testing = {}), global.ng.core, global.rxjs, global.ngrx.store, global.ng.core.testing));
5}(this, (function (exports, core, rxjs, store, testing) { 'use strict';
6
7 /*! *****************************************************************************
8 Copyright (c) Microsoft Corporation.
9
10 Permission to use, copy, modify, and/or distribute this software for any
11 purpose with or without fee is hereby granted.
12
13 THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
14 REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
15 AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
16 INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
17 LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
18 OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 PERFORMANCE OF THIS SOFTWARE.
20 ***************************************************************************** */
21 /* global Reflect, Promise */
22 var extendStatics = function (d, b) {
23 extendStatics = Object.setPrototypeOf ||
24 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
25 function (d, b) { for (var p in b)
26 if (b.hasOwnProperty(p))
27 d[p] = b[p]; };
28 return extendStatics(d, b);
29 };
30 function __extends(d, b) {
31 extendStatics(d, b);
32 function __() { this.constructor = d; }
33 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
34 }
35 var __assign = function () {
36 __assign = Object.assign || function __assign(t) {
37 for (var s, i = 1, n = arguments.length; i < n; i++) {
38 s = arguments[i];
39 for (var p in s)
40 if (Object.prototype.hasOwnProperty.call(s, p))
41 t[p] = s[p];
42 }
43 return t;
44 };
45 return __assign.apply(this, arguments);
46 };
47 function __rest(s, e) {
48 var t = {};
49 for (var p in s)
50 if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
51 t[p] = s[p];
52 if (s != null && typeof Object.getOwnPropertySymbols === "function")
53 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
54 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
55 t[p[i]] = s[p[i]];
56 }
57 return t;
58 }
59 function __decorate(decorators, target, key, desc) {
60 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
61 if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
62 r = Reflect.decorate(decorators, target, key, desc);
63 else
64 for (var i = decorators.length - 1; i >= 0; i--)
65 if (d = decorators[i])
66 r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
67 return c > 3 && r && Object.defineProperty(target, key, r), r;
68 }
69 function __param(paramIndex, decorator) {
70 return function (target, key) { decorator(target, key, paramIndex); };
71 }
72 function __metadata(metadataKey, metadataValue) {
73 if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
74 return Reflect.metadata(metadataKey, metadataValue);
75 }
76 function __awaiter(thisArg, _arguments, P, generator) {
77 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
78 return new (P || (P = Promise))(function (resolve, reject) {
79 function fulfilled(value) { try {
80 step(generator.next(value));
81 }
82 catch (e) {
83 reject(e);
84 } }
85 function rejected(value) { try {
86 step(generator["throw"](value));
87 }
88 catch (e) {
89 reject(e);
90 } }
91 function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
92 step((generator = generator.apply(thisArg, _arguments || [])).next());
93 });
94 }
95 function __generator(thisArg, body) {
96 var _ = { label: 0, sent: function () { if (t[0] & 1)
97 throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
98 return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g;
99 function verb(n) { return function (v) { return step([n, v]); }; }
100 function step(op) {
101 if (f)
102 throw new TypeError("Generator is already executing.");
103 while (_)
104 try {
105 if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
106 return t;
107 if (y = 0, t)
108 op = [op[0] & 2, t.value];
109 switch (op[0]) {
110 case 0:
111 case 1:
112 t = op;
113 break;
114 case 4:
115 _.label++;
116 return { value: op[1], done: false };
117 case 5:
118 _.label++;
119 y = op[1];
120 op = [0];
121 continue;
122 case 7:
123 op = _.ops.pop();
124 _.trys.pop();
125 continue;
126 default:
127 if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
128 _ = 0;
129 continue;
130 }
131 if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {
132 _.label = op[1];
133 break;
134 }
135 if (op[0] === 6 && _.label < t[1]) {
136 _.label = t[1];
137 t = op;
138 break;
139 }
140 if (t && _.label < t[2]) {
141 _.label = t[2];
142 _.ops.push(op);
143 break;
144 }
145 if (t[2])
146 _.ops.pop();
147 _.trys.pop();
148 continue;
149 }
150 op = body.call(thisArg, _);
151 }
152 catch (e) {
153 op = [6, e];
154 y = 0;
155 }
156 finally {
157 f = t = 0;
158 }
159 if (op[0] & 5)
160 throw op[1];
161 return { value: op[0] ? op[1] : void 0, done: true };
162 }
163 }
164 var __createBinding = Object.create ? (function (o, m, k, k2) {
165 if (k2 === undefined)
166 k2 = k;
167 Object.defineProperty(o, k2, { enumerable: true, get: function () { return m[k]; } });
168 }) : (function (o, m, k, k2) {
169 if (k2 === undefined)
170 k2 = k;
171 o[k2] = m[k];
172 });
173 function __exportStar(m, exports) {
174 for (var p in m)
175 if (p !== "default" && !exports.hasOwnProperty(p))
176 __createBinding(exports, m, p);
177 }
178 function __values(o) {
179 var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
180 if (m)
181 return m.call(o);
182 if (o && typeof o.length === "number")
183 return {
184 next: function () {
185 if (o && i >= o.length)
186 o = void 0;
187 return { value: o && o[i++], done: !o };
188 }
189 };
190 throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
191 }
192 function __read(o, n) {
193 var m = typeof Symbol === "function" && o[Symbol.iterator];
194 if (!m)
195 return o;
196 var i = m.call(o), r, ar = [], e;
197 try {
198 while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
199 ar.push(r.value);
200 }
201 catch (error) {
202 e = { error: error };
203 }
204 finally {
205 try {
206 if (r && !r.done && (m = i["return"]))
207 m.call(i);
208 }
209 finally {
210 if (e)
211 throw e.error;
212 }
213 }
214 return ar;
215 }
216 function __spread() {
217 for (var ar = [], i = 0; i < arguments.length; i++)
218 ar = ar.concat(__read(arguments[i]));
219 return ar;
220 }
221 function __spreadArrays() {
222 for (var s = 0, i = 0, il = arguments.length; i < il; i++)
223 s += arguments[i].length;
224 for (var r = Array(s), k = 0, i = 0; i < il; i++)
225 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
226 r[k] = a[j];
227 return r;
228 }
229 ;
230 function __await(v) {
231 return this instanceof __await ? (this.v = v, this) : new __await(v);
232 }
233 function __asyncGenerator(thisArg, _arguments, generator) {
234 if (!Symbol.asyncIterator)
235 throw new TypeError("Symbol.asyncIterator is not defined.");
236 var g = generator.apply(thisArg, _arguments || []), i, q = [];
237 return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
238 function verb(n) { if (g[n])
239 i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
240 function resume(n, v) { try {
241 step(g[n](v));
242 }
243 catch (e) {
244 settle(q[0][3], e);
245 } }
246 function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
247 function fulfill(value) { resume("next", value); }
248 function reject(value) { resume("throw", value); }
249 function settle(f, v) { if (f(v), q.shift(), q.length)
250 resume(q[0][0], q[0][1]); }
251 }
252 function __asyncDelegator(o) {
253 var i, p;
254 return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
255 function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
256 }
257 function __asyncValues(o) {
258 if (!Symbol.asyncIterator)
259 throw new TypeError("Symbol.asyncIterator is not defined.");
260 var m = o[Symbol.asyncIterator], i;
261 return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
262 function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
263 function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); }
264 }
265 function __makeTemplateObject(cooked, raw) {
266 if (Object.defineProperty) {
267 Object.defineProperty(cooked, "raw", { value: raw });
268 }
269 else {
270 cooked.raw = raw;
271 }
272 return cooked;
273 }
274 ;
275 var __setModuleDefault = Object.create ? (function (o, v) {
276 Object.defineProperty(o, "default", { enumerable: true, value: v });
277 }) : function (o, v) {
278 o["default"] = v;
279 };
280 function __importStar(mod) {
281 if (mod && mod.__esModule)
282 return mod;
283 var result = {};
284 if (mod != null)
285 for (var k in mod)
286 if (Object.hasOwnProperty.call(mod, k))
287 __createBinding(result, mod, k);
288 __setModuleDefault(result, mod);
289 return result;
290 }
291 function __importDefault(mod) {
292 return (mod && mod.__esModule) ? mod : { default: mod };
293 }
294 function __classPrivateFieldGet(receiver, privateMap) {
295 if (!privateMap.has(receiver)) {
296 throw new TypeError("attempted to get private field on non-instance");
297 }
298 return privateMap.get(receiver);
299 }
300 function __classPrivateFieldSet(receiver, privateMap, value) {
301 if (!privateMap.has(receiver)) {
302 throw new TypeError("attempted to set private field on non-instance");
303 }
304 privateMap.set(receiver, value);
305 return value;
306 }
307
308 /**
309 * @template T
310 */
311 var MockState = /** @class */ (function (_super) {
312 __extends(MockState, _super);
313 function MockState() {
314 return _super.call(this, ( /** @type {?} */({}))) || this;
315 }
316 return MockState;
317 }(rxjs.BehaviorSubject));
318 MockState.decorators = [
319 { type: core.Injectable }
320 ];
321 /** @nocollapse */
322 MockState.ctorParameters = function () { return []; };
323
324 /**
325 * @fileoverview added by tsickle
326 * Generated from: tokens.ts
327 * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
328 */
329 /** @type {?} */
330 var MOCK_SELECTORS = new core.InjectionToken('@ngrx/store Mock Selectors');
331
332 if (typeof afterEach === 'function') {
333 afterEach(( /**
334 * @return {?}
335 */function () {
336 try {
337 /** @type {?} */
338 var mockStore = testing.TestBed.inject(MockStore);
339 if (mockStore) {
340 mockStore.resetSelectors();
341 }
342 }
343 catch (_a) { }
344 }));
345 }
346 /**
347 * @template T
348 */
349 var MockStore = /** @class */ (function (_super) {
350 __extends(MockStore, _super);
351 /**
352 * @param {?} state$
353 * @param {?} actionsObserver
354 * @param {?} reducerManager
355 * @param {?} initialState
356 * @param {?=} mockSelectors
357 */
358 function MockStore(state$, actionsObserver, reducerManager, initialState, mockSelectors) {
359 var e_1, _b;
360 if (mockSelectors === void 0) { mockSelectors = []; }
361 var _this = _super.call(this, state$, actionsObserver, reducerManager) || this;
362 _this.state$ = state$;
363 _this.initialState = initialState;
364 _this.selectors = new Map();
365 _this.resetSelectors();
366 _this.setState(_this.initialState);
367 _this.scannedActions$ = actionsObserver.asObservable();
368 try {
369 for (var mockSelectors_1 = __values(mockSelectors), mockSelectors_1_1 = mockSelectors_1.next(); !mockSelectors_1_1.done; mockSelectors_1_1 = mockSelectors_1.next()) {
370 var mockSelector = mockSelectors_1_1.value;
371 _this.overrideSelector(mockSelector.selector, mockSelector.value);
372 }
373 }
374 catch (e_1_1) { e_1 = { error: e_1_1 }; }
375 finally {
376 try {
377 if (mockSelectors_1_1 && !mockSelectors_1_1.done && (_b = mockSelectors_1.return)) _b.call(mockSelectors_1);
378 }
379 finally { if (e_1) throw e_1.error; }
380 }
381 return _this;
382 }
383 /**
384 * @param {?} nextState
385 * @return {?}
386 */
387 MockStore.prototype.setState = function (nextState) {
388 this.state$.next(nextState);
389 this.lastState = nextState;
390 };
391 /**
392 * @template Selector, Value, Result
393 * @param {?} selector
394 * @param {?} value
395 * @return {?}
396 */
397 MockStore.prototype.overrideSelector = function (selector, value) {
398 this.selectors.set(selector, value);
399 /** @type {?} */
400 var resultSelector = typeof selector === 'string'
401 ? store.createSelector(( /**
402 * @return {?}
403 */function () { }), ( /**
404 * @return {?}
405 */function () { return value; }))
406 : selector;
407 resultSelector.setResult(value);
408 return ( /** @type {?} */(resultSelector));
409 };
410 /**
411 * @return {?}
412 */
413 MockStore.prototype.resetSelectors = function () {
414 var e_2, _b;
415 try {
416 for (var _c = __values(this.selectors.keys()), _d = _c.next(); !_d.done; _d = _c.next()) {
417 var selector = _d.value;
418 if (typeof selector !== 'string') {
419 selector.release();
420 selector.clearResult();
421 }
422 }
423 }
424 catch (e_2_1) { e_2 = { error: e_2_1 }; }
425 finally {
426 try {
427 if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
428 }
429 finally { if (e_2) throw e_2.error; }
430 }
431 this.selectors.clear();
432 };
433 /**
434 * @param {?} selector
435 * @param {?=} prop
436 * @return {?}
437 */
438 MockStore.prototype.select = function (selector, prop) {
439 if (typeof selector === 'string' && this.selectors.has(selector)) {
440 return new rxjs.BehaviorSubject(this.selectors.get(selector)).asObservable();
441 }
442 return _super.prototype.select.call(this, selector, prop);
443 };
444 /**
445 * @return {?}
446 */
447 MockStore.prototype.addReducer = function () {
448 /* noop */
449 };
450 /**
451 * @return {?}
452 */
453 MockStore.prototype.removeReducer = function () {
454 /* noop */
455 };
456 /**
457 * Refreshes the existing state.
458 * @return {?}
459 */
460 MockStore.prototype.refreshState = function () {
461 if (this.lastState)
462 this.setState(Object.assign({}, this.lastState));
463 };
464 return MockStore;
465 }(store.Store));
466 MockStore.decorators = [
467 { type: core.Injectable }
468 ];
469 /** @nocollapse */
470 MockStore.ctorParameters = function () { return [
471 { type: MockState },
472 { type: store.ActionsSubject },
473 { type: store.ReducerManager },
474 { type: undefined, decorators: [{ type: core.Inject, args: [store.INITIAL_STATE,] }] },
475 { type: Array, decorators: [{ type: core.Inject, args: [MOCK_SELECTORS,] }] }
476 ]; };
477 if (false) {
478 /**
479 * @type {?}
480 * @private
481 */
482 MockStore.prototype.selectors;
483 /** @type {?} */
484 MockStore.prototype.scannedActions$;
485 /**
486 * @type {?}
487 * @private
488 */
489 MockStore.prototype.lastState;
490 /**
491 * @type {?}
492 * @private
493 */
494 MockStore.prototype.state$;
495 /**
496 * @type {?}
497 * @private
498 */
499 MockStore.prototype.initialState;
500 }
501
502 var MockReducerManager = /** @class */ (function (_super) {
503 __extends(MockReducerManager, _super);
504 function MockReducerManager() {
505 return _super.call(this, ( /**
506 * @return {?}
507 */function () { return undefined; })) || this;
508 }
509 /**
510 * @param {?} feature
511 * @return {?}
512 */
513 MockReducerManager.prototype.addFeature = function (feature) {
514 /* noop */
515 };
516 /**
517 * @param {?} feature
518 * @return {?}
519 */
520 MockReducerManager.prototype.addFeatures = function (feature) {
521 /* noop */
522 };
523 /**
524 * @param {?} feature
525 * @return {?}
526 */
527 MockReducerManager.prototype.removeFeature = function (feature) {
528 /* noop */
529 };
530 /**
531 * @param {?} features
532 * @return {?}
533 */
534 MockReducerManager.prototype.removeFeatures = function (features) {
535 /* noop */
536 };
537 /**
538 * @param {?} key
539 * @param {?} reducer
540 * @return {?}
541 */
542 MockReducerManager.prototype.addReducer = function (key, reducer) {
543 /* noop */
544 };
545 /**
546 * @param {?} reducers
547 * @return {?}
548 */
549 MockReducerManager.prototype.addReducers = function (reducers) {
550 /* noop */
551 };
552 /**
553 * @param {?} featureKey
554 * @return {?}
555 */
556 MockReducerManager.prototype.removeReducer = function (featureKey) {
557 /* noop */
558 };
559 /**
560 * @param {?} featureKeys
561 * @return {?}
562 */
563 MockReducerManager.prototype.removeReducers = function (featureKeys) {
564 /* noop */
565 };
566 return MockReducerManager;
567 }(rxjs.BehaviorSubject));
568 MockReducerManager.decorators = [
569 { type: core.Injectable }
570 ];
571 /** @nocollapse */
572 MockReducerManager.ctorParameters = function () { return []; };
573
574 /**
575 * @fileoverview added by tsickle
576 * Generated from: testing.ts
577 * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
578 */
579 /**
580 * @record
581 * @template T
582 */
583 function MockStoreConfig() { }
584 if (false) {
585 /** @type {?|undefined} */
586 MockStoreConfig.prototype.initialState;
587 /** @type {?|undefined} */
588 MockStoreConfig.prototype.selectors;
589 }
590 /**
591 * \@description
592 * Creates mock store providers.
593 *
594 * \@usageNotes
595 *
596 * **With `TestBed.configureTestingModule`**
597 *
598 * ```typescript
599 * describe('Books Component', () => {
600 * let store: MockStore;
601 *
602 * beforeEach(() => {
603 * TestBed.configureTestingModule({
604 * providers: [
605 * provideMockStore({
606 * initialState: { books: { entities: [] } },
607 * selectors: [
608 * { selector: selectAllBooks, value: ['Book 1', 'Book 2'] },
609 * { selector: selectVisibleBooks, value: ['Book 1'] },
610 * ],
611 * }),
612 * ],
613 * });
614 *
615 * store = TestBed.inject(MockStore);
616 * });
617 * });
618 * ```
619 *
620 * **With `Injector.create`**
621 *
622 * ```typescript
623 * describe('Counter Component', () => {
624 * let injector: Injector;
625 * let store: MockStore;
626 *
627 * beforeEach(() => {
628 * injector = Injector.create({
629 * providers: [
630 * provideMockStore({ initialState: { counter: 0 } }),
631 * ],
632 * });
633 * store = injector.get(MockStore);
634 * });
635 * });
636 * ```
637 * @template T
638 * @param {?=} config `MockStoreConfig<T>` to provide the values for `INITIAL_STATE` and `MOCK_SELECTORS` tokens.
639 * By default, `initialState` and `selectors` are not defined.
640 * @return {?} Mock store providers that can be used with both `TestBed.configureTestingModule` and `Injector.create`.
641 *
642 */
643 function provideMockStore(config) {
644 if (config === void 0) { config = {}; }
645 store.setNgrxMockEnvironment(true);
646 return [
647 {
648 provide: store.ActionsSubject,
649 useFactory: ( /**
650 * @return {?}
651 */function () { return new store.ActionsSubject(); }),
652 deps: [],
653 },
654 { provide: MockState, useFactory: ( /**
655 * @return {?}
656 */function () { return new MockState(); }), deps: [] },
657 {
658 provide: MockReducerManager,
659 useFactory: ( /**
660 * @return {?}
661 */function () { return new MockReducerManager(); }),
662 deps: [],
663 },
664 { provide: store.INITIAL_STATE, useValue: config.initialState || {} },
665 { provide: MOCK_SELECTORS, useValue: config.selectors },
666 { provide: store.StateObservable, useExisting: MockState },
667 { provide: store.ReducerManager, useExisting: MockReducerManager },
668 {
669 provide: MockStore,
670 useFactory: mockStoreFactory,
671 deps: [
672 MockState,
673 store.ActionsSubject,
674 store.ReducerManager,
675 store.INITIAL_STATE,
676 MOCK_SELECTORS,
677 ],
678 },
679 { provide: store.Store, useExisting: MockStore },
680 ];
681 }
682 /**
683 * @template T
684 * @param {?} mockState
685 * @param {?} actionsSubject
686 * @param {?} reducerManager
687 * @param {?} initialState
688 * @param {?} mockSelectors
689 * @return {?}
690 */
691 function mockStoreFactory(mockState, actionsSubject, reducerManager, initialState, mockSelectors) {
692 return new MockStore(mockState, actionsSubject, reducerManager, initialState, mockSelectors);
693 }
694 /**
695 * \@description
696 * Creates mock store with all necessary dependencies outside of the `TestBed`.
697 *
698 * \@usageNotes
699 *
700 * ```typescript
701 * describe('Books Effects', () => {
702 * let store: MockStore;
703 *
704 * beforeEach(() => {
705 * store = getMockStore({
706 * initialState: { books: { entities: ['Book 1', 'Book 2', 'Book 3'] } },
707 * selectors: [
708 * { selector: selectAllBooks, value: ['Book 1', 'Book 2'] },
709 * { selector: selectVisibleBooks, value: ['Book 1'] },
710 * ],
711 * });
712 * });
713 * });
714 * ```
715 * @template T
716 * @param {?=} config `MockStoreConfig<T>` to provide the values for `INITIAL_STATE` and `MOCK_SELECTORS` tokens.
717 * By default, `initialState` and `selectors` are not defined.
718 * @return {?} `MockStore<T>`
719 *
720 */
721 function getMockStore(config) {
722 if (config === void 0) { config = {}; }
723 /** @type {?} */
724 var injector = core.Injector.create({ providers: provideMockStore(config) });
725 return injector.get(MockStore);
726 }
727
728 /**
729 * @fileoverview added by tsickle
730 * Generated from: public_api.ts
731 * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
732 */
733
734 /**
735 * @fileoverview added by tsickle
736 * Generated from: ngrx-store-testing.ts
737 * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
738 */
739
740 exports.MockReducerManager = MockReducerManager;
741 exports.MockState = MockState;
742 exports.MockStore = MockStore;
743 exports.getMockStore = getMockStore;
744 exports.provideMockStore = provideMockStore;
745 exports.ɵa = MOCK_SELECTORS;
746
747 Object.defineProperty(exports, '__esModule', { value: true });
748
749})));
750//# sourceMappingURL=ngrx-store-testing.umd.js.map