UNPKG

@angular-redux/store

Version:
175 lines 13.5 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; // TODO: See if this linting rule can be enabled with new build process (ng-packagr) // tslint:disable:no-implicit-dependencies // tslint:disable:member-ordering import { NgRedux, } from '@angular-redux/store'; import { MockObservableStore } from './observable-store.mock'; /** * Convenience mock to make it easier to control selector * behaviour in unit tests. * @template T */ var MockNgRedux = /** @class */ (function (_super) { tslib_1.__extends(MockNgRedux, _super); /** @hidden */ function MockNgRedux() { var _this = _super.call(this) || this; // _this.mockRootStore = new MockObservableStore(); _this.configureSubStore = (/** @type {?} */ (_this.mockRootStore.configureSubStore)); _this.dispatch = (/** @type {?} */ (_this.mockRootStore.dispatch)); _this.getState = (/** @type {?} */ (_this.mockRootStore.getState)); _this.subscribe = _this.mockRootStore.subscribe; _this.replaceReducer = _this.mockRootStore.replaceReducer; _this.select = _this.mockRootStore.select; _this.provideStore = function (_) { return undefined; }; _this.configureStore = function (_, __, ___, ____) { return undefined; }; // This hooks the mock up to @select. NgRedux.instance = (/** @type {?} */ (_this)); return _this; } /** * Returns a subject that's connected to any observable returned by the * given selector. You can use this subject to pump values into your * components or services under test; when they call .select or @select * in the context of a unit test, MockNgRedux will give them the values * you pushed onto your stub. */ /** * Returns a subject that's connected to any observable returned by the * given selector. You can use this subject to pump values into your * components or services under test; when they call .select or \@select * in the context of a unit test, MockNgRedux will give them the values * you pushed onto your stub. * @template R, S * @param {?=} selector * @param {?=} comparator * @return {?} */ MockNgRedux.getSelectorStub = /** * Returns a subject that's connected to any observable returned by the * given selector. You can use this subject to pump values into your * components or services under test; when they call .select or \@select * in the context of a unit test, MockNgRedux will give them the values * you pushed onto your stub. * @template R, S * @param {?=} selector * @param {?=} comparator * @return {?} */ function (selector, comparator) { return MockNgRedux.getInstance().mockRootStore.getSelectorStub(selector, comparator); }; /** * Returns a mock substore that allows you to set up selectorStubs for * any 'fractal' stores your app creates with NgRedux.configureSubStore. * * If your app creates deeply nested substores from other substores, * pass the chain of pathSelectors in as ordered arguments to mock * the nested substores out. * @param pathSelectors */ /** * Returns a mock substore that allows you to set up selectorStubs for * any 'fractal' stores your app creates with NgRedux.configureSubStore. * * If your app creates deeply nested substores from other substores, * pass the chain of pathSelectors in as ordered arguments to mock * the nested substores out. * @template S * @param {...?} pathSelectors * @return {?} */ MockNgRedux.getSubStore = /** * Returns a mock substore that allows you to set up selectorStubs for * any 'fractal' stores your app creates with NgRedux.configureSubStore. * * If your app creates deeply nested substores from other substores, * pass the chain of pathSelectors in as ordered arguments to mock * the nested substores out. * @template S * @param {...?} pathSelectors * @return {?} */ function () { var pathSelectors = []; for (var _i = 0; _i < arguments.length; _i++) { pathSelectors[_i] = arguments[_i]; } var _a; return pathSelectors.length ? (_a = MockNgRedux.getInstance().mockRootStore).getSubStore.apply(_a, tslib_1.__spread(pathSelectors)) : MockNgRedux.getInstance().mockRootStore; }; /** * Reset all previously configured stubs. */ /** * Reset all previously configured stubs. * @return {?} */ MockNgRedux.reset = /** * Reset all previously configured stubs. * @return {?} */ function () { MockNgRedux.getInstance().mockRootStore.reset(); NgRedux.instance = (/** @type {?} */ (MockNgRedux.mockInstance)); }; /** * Gets the singleton MockNgRedux instance. Useful for cases where your * tests need to spy on store methods, for example. */ /** * Gets the singleton MockNgRedux instance. Useful for cases where your * tests need to spy on store methods, for example. * @return {?} */ MockNgRedux.getInstance = /** * Gets the singleton MockNgRedux instance. Useful for cases where your * tests need to spy on store methods, for example. * @return {?} */ function () { MockNgRedux.mockInstance = MockNgRedux.mockInstance || new MockNgRedux(); return MockNgRedux.mockInstance; }; /** * @deprecated Use MockNgRedux.getInstance() instead. */ MockNgRedux.mockInstance = undefined; return MockNgRedux; }(NgRedux)); export { MockNgRedux }; if (false) { /** * @deprecated Use MockNgRedux.getInstance() instead. * @type {?} */ MockNgRedux.mockInstance; /** * @type {?} * @private */ MockNgRedux.prototype.mockRootStore; /** @type {?} */ MockNgRedux.prototype.configureSubStore; /** @type {?} */ MockNgRedux.prototype.dispatch; /** @type {?} */ MockNgRedux.prototype.getState; /** @type {?} */ MockNgRedux.prototype.subscribe; /** @type {?} */ MockNgRedux.prototype.replaceReducer; /** @type {?} */ MockNgRedux.prototype.select; /** @type {?} */ MockNgRedux.prototype.provideStore; /** @type {?} */ MockNgRedux.prototype.configureStore; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctcmVkdXgubW9jay5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLXJlZHV4L3N0b3JlL3Rlc3RpbmcvIiwic291cmNlcyI6WyJuZy1yZWR1eC5tb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBR0EsT0FBTyxFQUVMLE9BQU8sR0FHUixNQUFNLHNCQUFzQixDQUFDO0FBVTlCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7QUFLOUQ7SUFBeUMsdUNBQVU7SUFtRWpELGNBQWM7SUFDZDtRQUFBLFlBQ0UsaUJBQU8sU0FHUjs7UUFqQk8sbUJBQWEsR0FBRyxJQUFJLG1CQUFtQixFQUFPLENBQUM7UUFFdkQsdUJBQWlCLEdBQUcsbUJBQUEsS0FBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsRUFBTyxDQUFDO1FBQ2hFLGNBQVEsR0FBRyxtQkFBQSxLQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBaUIsQ0FBQztRQUN4RCxjQUFRLEdBQUcsbUJBQUEsS0FBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQU8sQ0FBQztRQUM5QyxlQUFTLEdBQUcsS0FBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7UUFDekMsb0JBQWMsR0FBRyxLQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQztRQUNuRCxZQUFNLEdBRzBCLEtBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO1FBUzFELGtCQUFZLEdBQUcsVUFBQyxDQUFhLElBQVcsT0FBQSxTQUFTLEVBQVQsQ0FBUyxDQUFDO1FBQ2xELG9CQUFjLEdBQUcsVUFDZixDQUEwQixFQUMxQixFQUFPLEVBQ1AsR0FBa0IsRUFDbEIsSUFBMkIsSUFDbEIsT0FBQSxTQUFTLEVBQVQsQ0FBUyxDQUFDO1FBVm5CLHFDQUFxQztRQUNyQyxPQUFPLENBQUMsUUFBUSxHQUFHLG1CQUFBLEtBQUksRUFBTyxDQUFDOztJQUNqQyxDQUFDO0lBcEVEOzs7Ozs7T0FNRzs7Ozs7Ozs7Ozs7O0lBQ0ksMkJBQWU7Ozs7Ozs7Ozs7O0lBQXRCLFVBQ0UsUUFBeUIsRUFDekIsVUFBdUI7UUFFdkIsT0FBTyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FDNUQsUUFBUSxFQUNSLFVBQVUsQ0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7OztPQVFHOzs7Ozs7Ozs7Ozs7SUFDSSx1QkFBVzs7Ozs7Ozs7Ozs7SUFBbEI7UUFDRSx1QkFBZ0M7YUFBaEMsVUFBZ0MsRUFBaEMscUJBQWdDLEVBQWhDLElBQWdDO1lBQWhDLGtDQUFnQzs7O1FBRWhDLE9BQU8sYUFBYSxDQUFDLE1BQU07WUFDekIsQ0FBQyxDQUFDLENBQUEsS0FBQSxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsYUFBYSxDQUFBLENBQUMsV0FBVyw0QkFBSSxhQUFhLEdBQ3RFLENBQUMsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsYUFBYSxDQUFDO0lBQzlDLENBQUM7SUFFRDs7T0FFRzs7Ozs7SUFDSSxpQkFBSzs7OztJQUFaO1FBQ0UsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoRCxPQUFPLENBQUMsUUFBUSxHQUFHLG1CQUFBLFdBQVcsQ0FBQyxZQUFZLEVBQU8sQ0FBQztJQUNyRCxDQUFDO0lBRUQ7OztPQUdHOzs7Ozs7SUFDSSx1QkFBVzs7Ozs7SUFBbEI7UUFDRSxXQUFXLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQyxZQUFZLElBQUksSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUN6RSxPQUFPLFdBQVcsQ0FBQyxZQUFZLENBQUM7SUFDbEMsQ0FBQzs7OztJQW5ETSx3QkFBWSxHQUFzQixTQUFTLENBQUM7SUErRXJELGtCQUFDO0NBQUEsQUFqRkQsQ0FBeUMsT0FBTyxHQWlGL0M7U0FqRlksV0FBVzs7Ozs7O0lBRXRCLHlCQUFtRDs7Ozs7SUFxRG5ELG9DQUF1RDs7SUFFdkQsd0NBQWdFOztJQUNoRSwrQkFBd0Q7O0lBQ3hELCtCQUE4Qzs7SUFDOUMsZ0NBQXlDOztJQUN6QyxxQ0FBbUQ7O0lBQ25ELDZCQUcwRDs7SUFTMUQsbUNBQWtEOztJQUNsRCxxQ0FLcUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBTZWUgaWYgdGhpcyBsaW50aW5nIHJ1bGUgY2FuIGJlIGVuYWJsZWQgd2l0aCBuZXcgYnVpbGQgcHJvY2VzcyAobmctcGFja2Fncilcbi8vIHRzbGludDpkaXNhYmxlOm5vLWltcGxpY2l0LWRlcGVuZGVuY2llc1xuLy8gdHNsaW50OmRpc2FibGU6bWVtYmVyLW9yZGVyaW5nXG5pbXBvcnQge1xuICBDb21wYXJhdG9yLFxuICBOZ1JlZHV4LFxuICBQYXRoU2VsZWN0b3IsXG4gIFNlbGVjdG9yLFxufSBmcm9tICdAYW5ndWxhci1yZWR1eC9zdG9yZSc7XG5pbXBvcnQge1xuICBBbnlBY3Rpb24sXG4gIERpc3BhdGNoLFxuICBNaWRkbGV3YXJlLFxuICBSZWR1Y2VyLFxuICBTdG9yZSxcbiAgU3RvcmVFbmhhbmNlcixcbn0gZnJvbSAncmVkdXgnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTW9ja09ic2VydmFibGVTdG9yZSB9IGZyb20gJy4vb2JzZXJ2YWJsZS1zdG9yZS5tb2NrJztcbi8qKlxuICogQ29udmVuaWVuY2UgbW9jayB0byBtYWtlIGl0IGVhc2llciB0byBjb250cm9sIHNlbGVjdG9yXG4gKiBiZWhhdmlvdXIgaW4gdW5pdCB0ZXN0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIE1vY2tOZ1JlZHV4PFQgPSB7fT4gZXh0ZW5kcyBOZ1JlZHV4PFQ+IHtcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBNb2NrTmdSZWR1eC5nZXRJbnN0YW5jZSgpIGluc3RlYWQuICovXG4gIHN0YXRpYyBtb2NrSW5zdGFuY2U/OiBNb2NrTmdSZWR1eDxhbnk+ID0gdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3ViamVjdCB0aGF0J3MgY29ubmVjdGVkIHRvIGFueSBvYnNlcnZhYmxlIHJldHVybmVkIGJ5IHRoZVxuICAgKiBnaXZlbiBzZWxlY3Rvci4gWW91IGNhbiB1c2UgdGhpcyBzdWJqZWN0IHRvIHB1bXAgdmFsdWVzIGludG8geW91clxuICAgKiBjb21wb25lbnRzIG9yIHNlcnZpY2VzIHVuZGVyIHRlc3Q7IHdoZW4gdGhleSBjYWxsIC5zZWxlY3Qgb3IgQHNlbGVjdFxuICAgKiBpbiB0aGUgY29udGV4dCBvZiBhIHVuaXQgdGVzdCwgTW9ja05nUmVkdXggd2lsbCBnaXZlIHRoZW0gdGhlIHZhbHVlc1xuICAgKiB5b3UgcHVzaGVkIG9udG8geW91ciBzdHViLlxuICAgKi9cbiAgc3RhdGljIGdldFNlbGVjdG9yU3R1YjxSLCBTPihcbiAgICBzZWxlY3Rvcj86IFNlbGVjdG9yPFIsIFM+LFxuICAgIGNvbXBhcmF0b3I/OiBDb21wYXJhdG9yLFxuICApOiBTdWJqZWN0PFM+IHtcbiAgICByZXR1cm4gTW9ja05nUmVkdXguZ2V0SW5zdGFuY2UoKS5tb2NrUm9vdFN0b3JlLmdldFNlbGVjdG9yU3R1YjxTPihcbiAgICAgIHNlbGVjdG9yLFxuICAgICAgY29tcGFyYXRvcixcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBtb2NrIHN1YnN0b3JlIHRoYXQgYWxsb3dzIHlvdSB0byBzZXQgdXAgc2VsZWN0b3JTdHVicyBmb3JcbiAgICogYW55ICdmcmFjdGFsJyBzdG9yZXMgeW91ciBhcHAgY3JlYXRlcyB3aXRoIE5nUmVkdXguY29uZmlndXJlU3ViU3RvcmUuXG4gICAqXG4gICAqIElmIHlvdXIgYXBwIGNyZWF0ZXMgZGVlcGx5IG5lc3RlZCBzdWJzdG9yZXMgZnJvbSBvdGhlciBzdWJzdG9yZXMsXG4gICAqIHBhc3MgdGhlIGNoYWluIG9mIHBhdGhTZWxlY3RvcnMgaW4gYXMgb3JkZXJlZCBhcmd1bWVudHMgdG8gbW9ja1xuICAgKiB0aGUgbmVzdGVkIHN1YnN0b3JlcyBvdXQuXG4gICAqIEBwYXJhbSBwYXRoU2VsZWN0b3JzXG4gICAqL1xuICBzdGF0aWMgZ2V0U3ViU3RvcmU8Uz4oXG4gICAgLi4ucGF0aFNlbGVjdG9yczogUGF0aFNlbGVjdG9yW11cbiAgKTogTW9ja09ic2VydmFibGVTdG9yZTxTPiB7XG4gICAgcmV0dXJuIHBhdGhTZWxlY3RvcnMubGVuZ3RoXG4gICAgICA/IE1vY2tOZ1JlZHV4LmdldEluc3RhbmNlKCkubW9ja1Jvb3RTdG9yZS5nZXRTdWJTdG9yZSguLi5wYXRoU2VsZWN0b3JzKVxuICAgICAgOiBNb2NrTmdSZWR1eC5nZXRJbnN0YW5jZSgpLm1vY2tSb290U3RvcmU7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgYWxsIHByZXZpb3VzbHkgY29uZmlndXJlZCBzdHVicy5cbiAgICovXG4gIHN0YXRpYyByZXNldCgpOiB2b2lkIHtcbiAgICBNb2NrTmdSZWR1eC5nZXRJbnN0YW5jZSgpLm1vY2tSb290U3RvcmUucmVzZXQoKTtcbiAgICBOZ1JlZHV4Lmluc3RhbmNlID0gTW9ja05nUmVkdXgubW9ja0luc3RhbmNlIGFzIGFueTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBzaW5nbGV0b24gTW9ja05nUmVkdXggaW5zdGFuY2UuIFVzZWZ1bCBmb3IgY2FzZXMgd2hlcmUgeW91clxuICAgKiB0ZXN0cyBuZWVkIHRvIHNweSBvbiBzdG9yZSBtZXRob2RzLCBmb3IgZXhhbXBsZS5cbiAgICovXG4gIHN0YXRpYyBnZXRJbnN0YW5jZSgpIHtcbiAgICBNb2NrTmdSZWR1eC5tb2NrSW5zdGFuY2UgPSBNb2NrTmdSZWR1eC5tb2NrSW5zdGFuY2UgfHwgbmV3IE1vY2tOZ1JlZHV4KCk7XG4gICAgcmV0dXJuIE1vY2tOZ1JlZHV4Lm1vY2tJbnN0YW5jZTtcbiAgfVxuICAvL1xuICBwcml2YXRlIG1vY2tSb290U3RvcmUgPSBuZXcgTW9ja09ic2VydmFibGVTdG9yZTxhbnk+KCk7XG5cbiAgY29uZmlndXJlU3ViU3RvcmUgPSB0aGlzLm1vY2tSb290U3RvcmUuY29uZmlndXJlU3ViU3RvcmUgYXMgYW55O1xuICBkaXNwYXRjaCA9IHRoaXMubW9ja1Jvb3RTdG9yZS5kaXNwYXRjaCBhcyBEaXNwYXRjaDxhbnk+O1xuICBnZXRTdGF0ZSA9IHRoaXMubW9ja1Jvb3RTdG9yZS5nZXRTdGF0ZSBhcyBhbnk7XG4gIHN1YnNjcmliZSA9IHRoaXMubW9ja1Jvb3RTdG9yZS5zdWJzY3JpYmU7XG4gIHJlcGxhY2VSZWR1Y2VyID0gdGhpcy5tb2NrUm9vdFN0b3JlLnJlcGxhY2VSZWR1Y2VyO1xuICBzZWxlY3Q6IDxTZWxlY3RlZFR5cGU+KFxuICAgIHNlbGVjdG9yPzogU2VsZWN0b3I8VCwgU2VsZWN0ZWRUeXBlPixcbiAgICBjb21wYXJhdG9yPzogQ29tcGFyYXRvcixcbiAgKSA9PiBPYnNlcnZhYmxlPFNlbGVjdGVkVHlwZT4gPSB0aGlzLm1vY2tSb290U3RvcmUuc2VsZWN0O1xuXG4gIC8qKiBAaGlkZGVuICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgLy8gVGhpcyBob29rcyB0aGUgbW9jayB1cCB0byBAc2VsZWN0LlxuICAgIE5nUmVkdXguaW5zdGFuY2UgPSB0aGlzIGFzIGFueTtcbiAgfVxuXG4gIHByb3ZpZGVTdG9yZSA9IChfOiBTdG9yZTxhbnk+KTogdm9pZCA9PiB1bmRlZmluZWQ7XG4gIGNvbmZpZ3VyZVN0b3JlID0gKFxuICAgIF86IFJlZHVjZXI8YW55LCBBbnlBY3Rpb24+LFxuICAgIF9fOiBhbnksXG4gICAgX19fPzogTWlkZGxld2FyZVtdLFxuICAgIF9fX18/OiBTdG9yZUVuaGFuY2VyPGFueT5bXSxcbiAgKTogdm9pZCA9PiB1bmRlZmluZWQ7XG59XG4iXX0=