UNPKG

@rxx/worker

Version:

React MVI micro framework.

122 lines 8.35 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 */ Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var rxjs_1 = require("rxjs"); var power_assert_1 = tslib_1.__importDefault(require("power-assert")); var assert_1 = tslib_1.__importDefault(require("assert")); var provisioning_1 = require("../provisioning"); var state_handler_1 = require("../handler/state-handler"); var store_1 = require("../store/store"); var intent_1 = require("../intent/intent"); var operators_1 = require("rxjs/operators"); var factory_1 = require("../factory"); var TestStore = /** @class */ (function () { function TestStore() { } TestStore.prototype.initialize = function () { return { view: { test: 1, }, }; }; TestStore = tslib_1.__decorate([ store_1.store ], TestStore); return TestStore; }()); var TestIntent = /** @class */ (function () { function TestIntent() { } TestIntent.prototype.getIntent = function () { return this.intent; }; TestIntent.prototype.getHandler = function () { return this.testHandler; }; TestIntent = tslib_1.__decorate([ intent_1.intent ], TestIntent); return TestIntent; }()); var TestHandler = /** @class */ (function (_super) { tslib_1.__extends(TestHandler, _super); function TestHandler() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.subscribed = false; return _this; } TestHandler.prototype.subscribe = function (a) { this.subscribed = true; return new rxjs_1.Subscription(); }; TestHandler.prototype.isSubscribed = function () { return this.subscribed; }; TestHandler.prototype.push = function (k, a) { return new Promise(function (r) { }); }; TestHandler.prototype.clone = function () { return new TestHandler(); }; return TestHandler; }(state_handler_1.StateHandler)); describe('Provisioning', function () { var testHandler = new TestHandler(); beforeAll(function () { state_handler_1.registerHandlers({ testHandler: testHandler, }); }); describe('#prepare', function () { it('should connect store and intent and handler', function () { var p = new provisioning_1.Provisioning({ intent: TestIntent }, [TestStore], undefined, {}); p.prepare(); assert_1.default.deepStrictEqual(p.getState(), { view: { test: 1 }, }); power_assert_1.default.ok(p.getHandlers().testHandler.isSubscribed()); }); it('should accept intent map', function () { var p = new provisioning_1.Provisioning({ test: TestIntent }, [TestStore], undefined, {}); p.prepare(); assert_1.default.deepStrictEqual(p.getState(), { view: { test: 1 }, }); power_assert_1.default.ok(p.getHandlers().testHandler.isSubscribed()); }); it('should accept state factories', function () { var p = new provisioning_1.Provisioning({}, [], factory_1.makeApp({ test: function (observable, state) { return { view: observable.pipe(operators_1.startWith(state)), }; }, }, { test: 1 }), {}); p.prepare(); assert_1.default.deepStrictEqual(p.getState(), { view: { test: 1 }, }); power_assert_1.default.ok(p.getHandlers().testHandler.isSubscribed()); }); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlzaW9uaW5nLnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvX190ZXN0c19fL3Byb3Zpc2lvbmluZy5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7OztBQUVILDZCQUFvQztBQUNwQyxzRUFBa0M7QUFDbEMsMERBQWdDO0FBQ2hDLGdEQUErQztBQUUvQywwREFBMEU7QUFDMUUsd0NBQThDO0FBQzlDLDJDQUFrRDtBQUNsRCw0Q0FBMkM7QUFFM0Msc0NBQXFDO0FBS3JDO0lBQUE7SUFZQSxDQUFDO0lBUFEsOEJBQVUsR0FBakI7UUFDRSxPQUFPO1lBQ0wsSUFBSSxFQUFFO2dCQUNKLElBQUksRUFBRSxDQUFDO2FBQ1I7U0FDRixDQUFDO0lBQ0osQ0FBQztJQVhHLFNBQVM7UUFEZCxhQUFLO09BQ0EsU0FBUyxDQVlkO0lBQUQsZ0JBQUM7Q0FBQSxBQVpELElBWUM7QUFHRDtJQUFBO0lBWUEsQ0FBQztJQVBRLDhCQUFTLEdBQWhCO1FBQ0UsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFTSwrQkFBVSxHQUFqQjtRQUNFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBWEcsVUFBVTtRQURmLGVBQU07T0FDRCxVQUFVLENBWWY7SUFBRCxpQkFBQztDQUFBLEFBWkQsSUFZQztBQUVEO0lBQTBCLHVDQUFZO0lBQXRDO1FBQUEscUVBb0JDO1FBbkJTLGdCQUFVLEdBQUcsS0FBSyxDQUFDOztJQW1CN0IsQ0FBQztJQWpCUSwrQkFBUyxHQUFoQixVQUFpQixDQUFDO1FBQ2hCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBRXZCLE9BQU8sSUFBSSxtQkFBWSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLGtDQUFZLEdBQW5CO1FBQ0UsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFTSww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