UNPKG

nope-js-node

Version:

NoPE Runtime for Nodejs. For Browser-Support please use nope-browser

132 lines (131 loc) 5.66 kB
"use strict"; /** * @author Martin Karkowski * @email m.karkowski@zema.de * @create date 2022-01-04 10:03:41 * @modify date 2022-01-10 14:12:20 * @desc [description] */ Object.defineProperty(exports, "__esModule", { value: true }); const chai_1 = require("chai"); const mocha_1 = require("mocha"); require("reflect-metadata"); const getLayer_nodejs_1 = require("../../communication/getLayer.nodejs"); const eventEmitter_1 = require("../../eventEmitter"); const nopeObservable_1 = require("../../observables/nopeObservable"); const NopeCore_1 = require("./NopeCore"); (0, mocha_1.describe)("NopeCore", function () { // Describe the required Test: let core = new NopeCore_1.NopeCore({ communicator: (0, getLayer_nodejs_1.getLayer)("event", "", false), logger: false, }, () => new eventEmitter_1.NopeEventEmitter(), () => new nopeObservable_1.NopeObservable(), "first"); (0, mocha_1.describe)("Configuration", function () { let communicator = (0, getLayer_nodejs_1.getLayer)("event", "", false); (0, mocha_1.beforeEach)(() => { core.dispose(); communicator = (0, getLayer_nodejs_1.getLayer)("event", "", false); // Create a new Core core = new NopeCore_1.NopeCore({ communicator: (0, getLayer_nodejs_1.getLayer)("event", "", false), logger: false, }, () => new eventEmitter_1.NopeEventEmitter(), () => new nopeObservable_1.NopeObservable(), "first"); }); (0, mocha_1.it)("dispose", async () => { // Remove the Old Timer await core.ready.waitFor(); await core.dispose(); }); }); (0, mocha_1.describe)("Events", function () { let communicator = (0, getLayer_nodejs_1.getLayer)("event", "", false); let remote = new NopeCore_1.NopeCore({ communicator, logger: false, }, () => new eventEmitter_1.NopeEventEmitter(), () => new nopeObservable_1.NopeObservable(), "second"); (0, mocha_1.beforeEach)(() => { core.dispose(); remote.dispose(); communicator = (0, getLayer_nodejs_1.getLayer)("event", "", false); // Create a new Core core = new NopeCore_1.NopeCore({ communicator, logger: false, }, () => new eventEmitter_1.NopeEventEmitter(), () => new nopeObservable_1.NopeObservable(), "first"); remote = new NopeCore_1.NopeCore({ communicator, logger: false, }, () => new eventEmitter_1.NopeEventEmitter(), () => new nopeObservable_1.NopeObservable(), "second"); }); (0, mocha_1.it)("subscribe", (done) => { let sub = null; sub = remote.eventDistributor.registerSubscription("test", (data) => { (0, chai_1.expect)(data).to.equal("test"); sub.unsubscribe(); core.dispose(); remote.dispose(); done(); }); setTimeout(() => { core.eventDistributor.emit("test", "test", { forced: true, }); }, 20); }); }); (0, mocha_1.describe)("Properties", function () { let communicator = (0, getLayer_nodejs_1.getLayer)("event", "", false); let remote = new NopeCore_1.NopeCore({ communicator, logger: false, }, () => new eventEmitter_1.NopeEventEmitter(), () => new nopeObservable_1.NopeObservable(), "second"); (0, mocha_1.beforeEach)(() => { core.dispose(); remote.dispose(); communicator = (0, getLayer_nodejs_1.getLayer)("event", "", false); // Create a new Core core = new NopeCore_1.NopeCore({ communicator, logger: false, }, () => new eventEmitter_1.NopeEventEmitter(), () => new nopeObservable_1.NopeObservable(), "first"); remote = new NopeCore_1.NopeCore({ communicator, logger: false, }, () => new eventEmitter_1.NopeEventEmitter(), () => new nopeObservable_1.NopeObservable(), "second"); }); (0, mocha_1.it)("subscribe - clean", (done) => { let sub = null; sub = remote.dataDistributor.registerSubscription("test", (data, opts) => { if (data !== undefined) { (0, chai_1.expect)(data).to.equal("test"); done(); } }); setTimeout(() => { core.dataDistributor.emit("test", "test", { forced: true, }); }, 50); }); (0, mocha_1.it)("subscribe - dirty data", (done) => { let sub = null; let first = true; remote.dataDistributor.pushData("test", "not-clean"); sub = remote.dataDistributor.registerSubscription("test", (data, opts) => { if (first) { first = false; (0, chai_1.expect)(data).to.equal("not-clean"); } else { (0, chai_1.expect)(data).to.equal("test"); done(); } }); setTimeout(() => { core.dataDistributor.emit("test", "test", { forced: true, }); }, 50); }); }); });