UNPKG

@ribajs/core

Version:

Core module of Riba.js

65 lines (54 loc) 1.65 kB
import { Riba } from "../riba.js"; import { DisabledBinder } from "./disabled.binder.js"; import { dotAdapter } from "../adapters/dot.adapter.js"; import { Adapters } from "../types/index.js"; const riba = new Riba(); riba.module.adapter.register(dotAdapter); riba.module.binder.register(DisabledBinder); describe("riba.binders", () => { let button: HTMLButtonElement; beforeEach(() => { riba.configure({ adapters: ({ subscribe: () => { /**/ }, unsubscribe: () => { /**/ }, read: () => { /**/ }, publish: () => { /**/ }, } as unknown) as Adapters, }); button = document.createElement("button"); document.body.appendChild(button); }); afterEach(() => { if (!button.parentNode) { throw new Error("button.parentNode is not defined!"); } button.parentNode.removeChild(button); }); describe("disabled", () => { describe("with a truthy value", () => { it("disables the element", () => { button.setAttribute("rv-disabled", "true"); const disabledBinder = riba.bind(button).bindings[0] as DisabledBinder; disabledBinder.routine(button, true); expect(button.disabled).toEqual(true); }); }); describe("with a falsey value", () => { it("enables the element", () => { button.setAttribute("rv-disabled", "true"); const disabledBinder = riba.bind(button).bindings[0] as DisabledBinder; disabledBinder.routine(button, false); expect(button.disabled).toEqual(false); }); }); }); });