UNPKG

@ribajs/core

Version:

Core module of Riba.js

62 lines (47 loc) 1.47 kB
import { Riba } from "../riba.js"; import { AssignBinder } from "./assign.binder.js"; import { dotAdapter } from "../adapters/dot.adapter.js"; const riba = new Riba(); riba.module.adapter.register(dotAdapter); riba.module.binder.register(AssignBinder); describe("riba.binders", () => { let element: HTMLDivElement; let fragment: DocumentFragment; let model: any = {}; beforeEach(() => { fragment = document.createDocumentFragment(); element = document.createElement("div"); fragment.appendChild(element); model = { value: "world", setMeToValue: { value: "hey man!", }, }; }); describe("assign", () => { it("Set's a value to the model given as json string", () => { element.setAttribute("rv-assign", '{"newValue": "hello"}'); expect(model).toEqual({ value: "world", setMeToValue: { value: "hey man!" }, }); riba.bind(fragment, model); expect(model).toEqual({ $root: {}, // Added on riba.bind value: "world", newValue: "hello", setMeToValue: { value: "hey man!" }, }); }); it("Overwrites a value to the model given as keypath", () => { element.setAttribute("rv-assign", "setMeToValue"); expect(model).toEqual({ value: "world", setMeToValue: { value: "hey man!" }, }); riba.bind(fragment, model); expect(model.value).toEqual("hey man!"); }); }); });