@ribajs/core
Version:
Core module of Riba.js
41 lines • 4.22 kB
JavaScript
import { Riba } from "../riba.js";
import { StyleStarBinder } from "./style-css-property.binder.js";
import { dotAdapter } from "../adapters/dot.adapter.js";
const riba = new Riba();
riba.module.adapter.register(dotAdapter);
riba.module.binder.register(StyleStarBinder);
describe("riba.binders", () => {
let element;
let fragment;
let model = {};
beforeEach(() => {
fragment = document.createDocumentFragment();
element = document.createElement("div");
fragment.appendChild(element);
model = {
style: {
paddingTop: "100px",
backgroundColor: "",
},
};
});
describe("css-*", () => {
it("Adds / removes a style property to the element", () => {
element.className = "foobar";
expect(element.getAttribute("style")).toBeNull();
element.setAttribute("rv-style-padding-top", "style.paddingTop");
element.setAttribute("rv-style-background-color", "style.backgroundColor");
riba.bind(fragment, model);
expect(element.getAttribute("style")).toEqual("padding-top: 100px;");
model.style.paddingTop = "0px";
expect(element.getAttribute("style")).toEqual("padding-top: 0px;");
model.style.backgroundColor = "black";
expect(element.getAttribute("style")).toEqual("padding-top: 0px; background-color: black;");
model.style.paddingTop = undefined;
expect(element.getAttribute("style")).toEqual("background-color: black;");
model.style.backgroundColor = undefined;
expect(element.getAttribute("style")).toEqual("");
});
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUtY3NzLXByb3BlcnR5LmJpbmRlci5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpbmRlcnMvc3R5bGUtY3NzLXByb3BlcnR5LmJpbmRlci5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFbEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWpFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV4RCxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7QUFFN0MsUUFBUSxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUU7SUFDNUIsSUFBSSxPQUF1QixDQUFDO0lBQzVCLElBQUksUUFBMEIsQ0FBQztJQUMvQixJQUFJLEtBQUssR0FBUSxFQUFFLENBQUM7SUFFcEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLFFBQVEsR0FBRyxRQUFRLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM3QyxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxRQUFRLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTlCLEtBQUssR0FBRztZQUNOLEtBQUssRUFBRTtnQkFDTCxVQUFVLEVBQUUsT0FBTztnQkFDbkIsZUFBZSxFQUFFLEVBQUU7YUFDcEI7U0FDRixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNyQixFQUFFLENBQUMsZ0RBQWdELEVBQUUsR0FBRyxFQUFFO1lBQ3hELE9BQU8sQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1lBRTdCLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFFakQsT0FBTyxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1lBQ2pFLE9BQU8sQ0FBQyxZQUFZLENBQ2xCLDJCQUEyQixFQUMzQix1QkFBdUIsQ0FDeEIsQ0FBQztZQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRTNCLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFFckUsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQy9CLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFFbkUsS0FBSyxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUMzQyw0Q0FBNEMsQ0FDN0MsQ0FBQztZQUVGLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztZQUNuQyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1lBRTFFLEtBQUssQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQztZQUN4QyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==