UNPKG

@ribajs/core

Version:

Core module of Riba.js

60 lines (45 loc) 1.66 kB
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: HTMLDivElement; let fragment: DocumentFragment; let model: any = {}; 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(""); }); }); });