UNPKG

nope-js-node

Version:

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

199 lines (198 loc) 8.41 kB
"use strict"; /** * @author Martin Karkowski * @email m.karkowski@zema.de * @desc [description] */ Object.defineProperty(exports, "__esModule", { value: true }); const chai_1 = require("chai"); const mocha_1 = require("mocha"); const mapMethods_1 = require("./mapMethods"); const mergedData_1 = require("./mergedData"); (0, mocha_1.describe)("mergedData", function () { // Describe the required Test: (0, mocha_1.it)("data subscription", function (done) { const m = new Map(); const d = new mergedData_1.MergeData(m, (m) => (0, mapMethods_1.extractUniqueValues)(m)); m.set("a", "b"); m.set("b", "b"); d.update(); d.data.subscribe((result) => { chai_1.assert.isTrue(result.length === 1, "Exactly one element different data has been added"); chai_1.assert.isTrue([...result][0] === "b", "Element is element"); done(); }); }); (0, mocha_1.it)("data subscription. Update called twice", function (done) { const m = new Map(); const d = new mergedData_1.MergeData(m, (m) => (0, mapMethods_1.extractUniqueValues)(m)); m.set("a", "b"); m.set("b", "b"); d.update(m); d.data.subscribe((result) => { chai_1.assert.isTrue(result.length === 1, "Exactly one element different data has been added"); chai_1.assert.isTrue([...result][0] === "b", "Element is element"); done(); }); d.update(m); }); (0, mocha_1.it)("onchange subscription: added", function (done) { const m = new Map(); const d = new mergedData_1.MergeData(m, (m) => (0, mapMethods_1.extractUniqueValues)(m)); m.set("a", "b"); m.set("b", "b"); d.onChange.subscribe((result) => { chai_1.assert.isTrue(result.added.length === 1, "Exactly one element has been added"); chai_1.assert.isTrue([...result.added][0] === "b", "Element is element"); done(); }); d.update(m); }); (0, mocha_1.it)("onchange subscription: removed", function (done) { const m = new Map(); const d = new mergedData_1.MergeData(m, (m) => (0, mapMethods_1.extractUniqueValues)(m)); m.set("a", "b"); m.set("b", "b"); d.onChange.subscribe((result) => { chai_1.assert.isTrue(result.removed.length === 0, "No element has been removed!"); done(); }); d.update(m); }); }); (0, mocha_1.describe)("MapBasedMergeData", function () { // Describe the required Test: (0, mocha_1.it)("data handeling - flat data", function (done) { const m = new Map(); const d = new mergedData_1.MapBasedMergeData(m); m.set("a", "b"); m.set("b", "b"); d.update(); (0, chai_1.expect)([...d.keyMappingReverse.keys()]).contains("b"); done(); }); (0, mocha_1.it)("data handeling - multiple data array", function (done) { const m = new Map(); const d = new mergedData_1.MapBasedMergeData(m, "+"); m.set("a", ["a", "b"]); m.set("b", ["c", "b"]); d.update(); (0, chai_1.expect)([...d.keyMappingReverse.keys()]).contains("b"); done(); }); // Describe the required Test: (0, mocha_1.it)("data subscription - simple data", function (done) { const m = new Map(); const d = new mergedData_1.MapBasedMergeData(m); m.set("a", "b"); m.set("b", "b"); d.update(); d.data.subscribe((result) => { chai_1.assert.isTrue(result.length === 1, "Exactly one element different data has been added"); chai_1.assert.isTrue([...result][0] === "b", "Element is element"); done(); }); }); (0, mocha_1.it)("data subscription - array data", function (done) { const m = new Map(); const d = new mergedData_1.MapBasedMergeData(m, "+"); m.set("a", ["a", "b"]); m.set("b", ["c", "b"]); d.update(); d.data.subscribe((result) => { chai_1.assert.isTrue(result.length === 3, "The Element contains 3 different items."); (0, chai_1.expect)([...result]).to.contain("a"); (0, chai_1.expect)([...result]).to.contain("b"); (0, chai_1.expect)([...result]).to.contain("c"); done(); }); }); (0, mocha_1.it)("data subscription - nested data", function (done) { const m = new Map(); const d_1 = new mergedData_1.MapBasedMergeData(m, "", "key"); m.set("a", { key: "keyA", data: "dataA" }); m.set("b", { key: "keyB", data: "dataB" }); d_1.update(); chai_1.assert.isTrue(d_1.amountOf.size === 2, "The Element contains 3 different items."); (0, chai_1.expect)([...d_1.keyMapping.keys()]).to.contain("a"); (0, chai_1.expect)([...d_1.keyMappingReverse.keys()]).to.contain("keyA"); (0, chai_1.expect)([...d_1.simplified.keys()]).to.contain("keyA"); const d_2 = new mergedData_1.MapBasedMergeData(m, "data", "key"); d_2.update(); (0, chai_1.expect)([...d_2.keyMapping.keys()]).to.contain("a"); (0, chai_1.expect)([...d_2.keyMappingReverse.keys()]).to.contain("keyA"); (0, chai_1.expect)([...d_2.simplified.keys()]).to.contain("keyA"); done(); }); // it("data subscription - nested data array", function (done) { // const m = new Map<string, { key: string; data: string }[]>(); // const d_1 = new MapBasedMergeData< // string, // { key: string; data: string }[], // string, // { key: string; data: string } // >(m, "", "key"); // m.set("a", [ // { key: "keyA", data: "dataA" }, // { key: "keyB", data: "dataB" }, // ]); // m.set("b", [{ key: "keyC", data: "dataC" }]); // d_1.update(); // assert.isTrue( // d_1.amountOf.size === 2, // "The Element contains 3 different items." // ); // expect([...d_1.keyMapping.keys()]).to.contain("a"); // expect([...d_1.keyMappingReverse.keys()]).to.contain("keyA"); // expect([...d_1.simplified.keys()]).to.contain("keyA"); // expect([...d_1.keyMappingReverse.values()]).to.contain("keyA"); // const d_2 = new MapBasedMergeData< // string, // { key: string; data: string }, // string, // string // >(m, "data", "key"); // d_2.update(); // expect([...d_1.keyMapping.keys()]).to.contain("a"); // expect([...d_1.keyMappingReverse.keys()]).to.contain("keyA"); // expect([...d_1.simplified.keys()]).to.contain("keyA"); // expect([...d_1.keyMappingReverse.keys()]).to.contain("dataB"); // done(); // }); (0, mocha_1.it)("data subscription. Update called twice", function (done) { const m = new Map(); const d = new mergedData_1.MapBasedMergeData(m); m.set("a", "b"); m.set("b", "b"); d.update(m); d.data.subscribe((result) => { chai_1.assert.isTrue(result.length === 1, "Exactly one element different data has been added"); chai_1.assert.isTrue([...result][0] === "b", "Element is element"); done(); }); d.update(m); }); (0, mocha_1.it)("onchange subscription: added", function (done) { const m = new Map(); const d = new mergedData_1.MapBasedMergeData(m); m.set("a", "b"); m.set("b", "b"); d.onChange.subscribe((result) => { chai_1.assert.isTrue(result.added.length === 1, "Exactly one element has been added"); chai_1.assert.isTrue([...result.added][0] === "b", "Element is element"); done(); }); d.update(m); }); (0, mocha_1.it)("onchange subscription: removed", function (done) { const m = new Map(); const d = new mergedData_1.MapBasedMergeData(m); m.set("a", "b"); m.set("b", "b"); d.onChange.subscribe((result) => { chai_1.assert.isTrue(result.removed.length === 0, "No element has been removed!"); done(); }); d.update(m); }); });