@rxx/testing
Version:
Testing module for rxx.
98 lines • 6.74 kB
JavaScript
;
/**
* 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=