diff --git a/src/core/mockup-parser.test.js b/src/core/mockup-parser.test.js index a9efa61a8..ca23c216c 100644 --- a/src/core/mockup-parser.test.js +++ b/src/core/mockup-parser.test.js @@ -1,38 +1,45 @@ -import $ from "jquery"; import mockupParser from "./mockup-parser"; describe("The mockup-parser", function () { it("parses the data attribute of a single node", function () { - const $el = $(` - - mockup parser test - `); - const options = mockupParser.getOptions($el, "testpattern"); + const el = document.createElement("div"); + el.setAttribute("data-pat-testpattern", "option1: value1; option2: value2"); + + const options = mockupParser.getOptions(el, "testpattern"); + expect(options.option1).toBe("value1"); expect(options.option2).toBe("value2"); }); + it("parses the data attribute of nested nodes", function () { - const $el = $(` -
- - nested mockup parser test - -
`); - const options = mockupParser.getOptions($(".pat-testpattern", $el), "testpattern"); + const el = document.createElement("div"); + el.setAttribute( + "data-pat-testpattern", + "parentOption1: value1; parentOption2: value2" + ); + const el2 = document.createElement("span"); + el2.setAttribute( + "data-pat-testpattern", + "option1: subvalue1; option2: subvalue2" + ); + el.appendChild(el2); + + const options = mockupParser.getOptions(el2, "testpattern"); + expect(options.parentOption1).toBe("value1"); expect(options.parentOption2).toBe("value2"); expect(options.option1).toBe("subvalue1"); expect(options.option2).toBe("subvalue2"); }); + it("parses the data attribute of a single node and preserves injected options", function () { - const $el = $(` - - mockup parser test - - `); - const options = mockupParser.getOptions($el, "testpattern", { + const el = document.createElement("div"); + el.setAttribute("data-pat-testpattern", "option1: value1; option2: value2"); + + const options = mockupParser.getOptions(el, "testpattern", { injectedOption: "injectedValue", }); + expect(options.option1).toBe("value1"); expect(options.option2).toBe("value2"); expect(options.injectedOption).toBe("injectedValue");