nope-js-node
Version:
NoPE Runtime for Nodejs. For Browser-Support please use nope-browser
132 lines (131 loc) • 5.66 kB
JavaScript
;
/**
* @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);
});
});
});