UNPKG

@rxx/testing

Version:
98 lines 6.74 kB
"use strict"; /** * The MIT License (MIT) * Copyright (c) Taketoshi Aono * * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * @fileoverview * @author Taketoshi Aono */ var _this = this; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); require("core-js"); var core_1 = require("@rxx/core"); var operators_1 = require("rxjs/operators"); var prepare_1 = require("../prepare"); var chai_1 = require("chai"); var AIntent = /** @class */ (function () { function AIntent() { } Object.defineProperty(AIntent.prototype, "test", { get: function () { return this.intent.for('a::a').pipe(operators_1.share()); }, enumerable: true, configurable: true }); AIntent = tslib_1.__decorate([ core_1.intent ], AIntent); return AIntent; }()); var AStore = /** @class */ (function () { function AStore() { } AStore.prototype.initialize = function () { return { view: { test: (this.intent || this.aIntent).test.pipe(operators_1.mapTo(1), operators_1.startWith(0)), }, }; }; AStore = tslib_1.__decorate([ core_1.store ], AStore); return AStore; }()); function factory(observable, initialState) { return { view: observable.pipe(operators_1.filter(function (args) { return args.type === 'test'; }), operators_1.mapTo(1)), }; } describe('prepare()', function () { it('should prepare store and mocked intent', function (done) { var _a = prepare_1.prepareTest(AIntent, AStore), store = _a.store, mock = _a.mock; var test = store.initialize().view.test; test.pipe(operators_1.skip(1)).subscribe(function (v) { chai_1.expect(v).to.be.eq(1); done(); }); mock.send('test'); }); it('should prepare store and multi mocked intent', function (done) { var _a = prepare_1.prepareTest({ aIntent: AIntent }, AStore, { multiIntent: true, }), store = _a.store, mock = _a.mock; var test = store.initialize().view.test; test.pipe(operators_1.skip(1)).subscribe(function (v) { chai_1.expect(v).to.be.eq(1); done(); }); mock.aIntent.send('test'); }); }); describe('interrupt', function () { it('should prepare store mock', function (done) { var _a = prepare_1.initAppTester(factory, 1), input = _a.input, output = _a.output; var sub = prepare_1.safeSubscribe(output.view, function (state) { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { chai_1.expect(state).to.be.eq(1); sub.unsubscribe(); return [2 /*return*/]; }); }); }, done); input('test'); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZS5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL19fdGVzdHNfXy9wcmVwYXJlLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUVILGlCQTRGQTs7O0FBNUZBLG1CQUFpQjtBQUNqQixrQ0FPbUI7QUFFbkIsNENBQTRFO0FBQzVFLHNDQUF1RTtBQUN2RSw2QkFBOEI7QUFHOUI7SUFBQTtJQU1BLENBQUM7SUFIQyxzQkFBVyx5QkFBSTthQUFmO1lBQ0UsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQUssRUFBRSxDQUFDLENBQUM7UUFDL0MsQ0FBQzs7O09BQUE7SUFMRyxPQUFPO1FBRFosYUFBTTtPQUNELE9BQU8sQ0FNWjtJQUFELGNBQUM7Q0FBQSxBQU5ELElBTUM7QUFHRDtJQUFBO0lBY0EsQ0FBQztJQVZRLDJCQUFVLEdBQWpCO1FBQ0UsT0FBTztZQUNMLElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUMzQyxpQkFBSyxDQUFDLENBQUMsQ0FBQyxFQUNSLHFCQUFTLENBQUMsQ0FBQyxDQUFDLENBQ2I7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBYkcsTUFBTTtRQURYLFlBQUs7T0FDQSxNQUFNLENBY1g7SUFBRCxhQUFDO0NBQUEsQUFkRCxJQWNDO0FBRUQsU0FBUyxPQUFPLENBQ2QsVUFBd0QsRUFDeEQsWUFBb0I7SUFFcEIsT0FBTztRQUNMLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSSxDQUNuQixrQkFBTSxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQXBCLENBQW9CLENBQUMsRUFDcEMsaUJBQUssQ0FBQyxDQUFDLENBQUMsQ0FDVDtLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsUUFBUSxDQUFDLFdBQVcsRUFBRTtJQUNwQixFQUFFLENBQUMsd0NBQXdDLEVBQUUsVUFBQSxJQUFJO1FBQ3pDLElBQUEsMkNBQThDLEVBQTVDLGdCQUFLLEVBQUUsY0FBcUMsQ0FBQztRQUM3QyxJQUFBLG1DQUFJLENBQThCO1FBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxVQUFBLENBQUM7WUFDNUIsYUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLElBQUksRUFBRSxDQUFDO1FBQ1QsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDhDQUE4QyxFQUFFLFVBQUEsSUFBSTtRQUMvQyxJQUFBOztVQUVKLEVBRk0sZ0JBQUssRUFBRSxjQUViLENBQUM7UUFDSyxJQUFBLG1DQUFJLENBQThCO1FBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxVQUFBLENBQUM7WUFDNUIsYUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLElBQUksRUFBRSxDQUFDO1FBQ1QsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsUUFBUSxDQUFDLFdBQVcsRUFBRTtJQUNwQixFQUFFLENBQUMsMkJBQTJCLEVBQUUsVUFBQSxJQUFJO1FBQzVCLElBQUEsd0NBQTZDLEVBQTNDLGdCQUFLLEVBQUUsa0JBQW9DLENBQUM7UUFFcEQsSUFBTSxHQUFHLEdBQUcsdUJBQWEsQ0FDdkIsTUFBTSxDQUFDLElBQUksRUFDWCxVQUFNLEtBQUs7O2dCQUNULGFBQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDMUIsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDOzs7YUFDbkIsRUFDRCxJQUFJLENBQ0wsQ0FBQztRQUNGLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=