"use strict"; const expect = require("chai").expect; const merge = require("../../../../../../client/js/libs/handlebars/ircmessageparser/merge"); describe("merge", () => { it("should split style information", () => { const textParts = [{ start: 0, end: 10, flag1: true, }, { start: 10, end: 20, flag2: true, }]; const styleFragments = [{ start: 0, end: 5, text: "01234", }, { start: 5, end: 15, text: "5678901234", }, { start: 15, end: 20, text: "56789", }]; const expected = [{ start: 0, end: 10, flag1: true, fragments: [{ start: 0, end: 5, text: "01234", }, { start: 5, end: 10, text: "56789", }], }, { start: 10, end: 20, flag2: true, fragments: [{ start: 10, end: 15, text: "01234", }, { start: 15, end: 20, text: "56789", }], }]; const actual = merge(textParts, styleFragments, styleFragments.map((fragment) => fragment.text).join("")); expect(actual).to.deep.equal(expected); }); it("should not drop clean text", () => { const textParts = [{ start: 0, end: 52, link: "https://github.com/xPaw/PHP-Source-Query/runs/175079", }]; const styleFragments = [{ bold: false, textColor: undefined, bgColor: undefined, hexColor: undefined, hexBgColor: undefined, italic: false, underline: false, strikethrough: false, monospace: false, text: "https://github.com/xPaw/PHP-Source-Query/runs/175079 here's some text", start: 0, end: 69, }]; const expected = [{ link: "https://github.com/xPaw/PHP-Source-Query/runs/175079", start: 0, end: 52, fragments: [{ bold: false, textColor: undefined, bgColor: undefined, hexColor: undefined, hexBgColor: undefined, italic: false, underline: false, strikethrough: false, monospace: false, text: "https://github.com/xPaw/PHP-Source-Query/runs/175079", start: 0, end: 52, }], }, { start: 52, end: 69, fragments: [{ bold: false, textColor: undefined, bgColor: undefined, hexColor: undefined, hexBgColor: undefined, italic: false, underline: false, strikethrough: false, monospace: false, text: " here's some text", start: 52, end: 69, }], }]; const actual = merge(textParts, styleFragments, styleFragments.map((fragment) => fragment.text).join("")); expect(actual).to.deep.equal(expected); }); });