UNPKG

nope-js-node

Version:

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

179 lines (178 loc) 6.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /** * @author Martin Karkowski * @email m.karkowski@zema.de */ const chai_1 = require("chai"); const mocha_1 = require("mocha"); const nopeObservable_1 = require("./nopeObservable"); (0, mocha_1.describe)("NopeObservable", function () { // Describe the required Test: (0, mocha_1.describe)("NopeObservable, with default behavior", function () { let emitter = new nopeObservable_1.NopeObservable(); (0, mocha_1.beforeEach)(() => { emitter = new nopeObservable_1.NopeObservable(); }); (0, mocha_1.it)("subscribe callback without inital value", (done) => { try { const subscriber = emitter.subscribe({ next: (data) => { done(); }, }); subscriber.pause(); emitter.setContent("Hello"); subscriber.unpause(); emitter.setContent("World!"); } catch (e) { throw Error("Something went wrong"); } }); (0, mocha_1.it)("subscribe callback with inital value", (done) => { try { emitter.setContent("This is a Test."); const subscriber = emitter.subscribe({ next: (data) => { done(); }, }); subscriber.pause(); emitter.setContent("Hello"); } catch (e) { throw Error("Something went wrong"); } }); (0, mocha_1.it)("subscribe callback with setter", (done) => { try { emitter.setter = (data) => { return { valid: true, data: "Hello " + data, }; }; emitter.setContent("World!"); emitter.subscribe({ next: (data) => { try { chai_1.assert.strictEqual(data, "Hello World!"); done(); } catch (e) { done(e); } }, }); } catch (e) { throw Error("Something went wrong"); } }); (0, mocha_1.it)("subscribe callback with getter", (done) => { try { emitter.getter = (data) => { return data + "!"; }; emitter.setContent("Hello World"); emitter.subscribe({ next: (data) => { try { chai_1.assert.strictEqual(data, "Hello World!"); done(); } catch (e) { done(e); } }, }); } catch (e) { throw Error("Something went wrong"); } }); (0, mocha_1.it)("subscribe callback with inital value", (done) => { try { emitter.emit("This is a Test."); const subscriber = emitter.subscribe({ next: (data) => { done(); }, }, { skipCurrent: true, }); subscriber.pause(); emitter.emit("Hello"); subscriber.unpause(); emitter.emit("World!"); } catch (e) { throw Error("Something went wrong"); } }); (0, mocha_1.it)("subscribe check order", (done) => { const items = []; try { emitter.setContent("0"); const subscriber = emitter.subscribe({ next: (data) => { items.push(data); if (items.length === 4) { try { chai_1.assert.deepEqual(items, ["0", "1", "2", "3"]); done(); } catch (e) { done(e); } } }, }); for (let i = 1; i <= 3; i++) { emitter.setContent(i.toString()); } } catch (e) { throw Error("Something went wrong"); } }); }); (0, mocha_1.describe)("NopeObservable with record", function () { let emitter = new nopeObservable_1.NopeObservable({ showCurrent: true, playHistory: true, }); (0, mocha_1.beforeEach)(() => { emitter = new nopeObservable_1.NopeObservable({ showCurrent: true, playHistory: true, }); }); (0, mocha_1.it)("subscribe check order", (done) => { const items = []; try { emitter.emit("0"); emitter.emit("1"); const subscriber = emitter.subscribe({ next: (data) => { items.push(data); if (items.length === 3) { try { chai_1.assert.deepEqual(items, ["0", "1", "2"]); done(); } catch (e) { done(e); } } }, }); emitter.emit("2"); } catch (e) { throw Error("Something went wrong"); } }); }); });