@ribajs/core
Version:
Core module of Riba.js
65 lines (54 loc) • 1.65 kB
text/typescript
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);
});
});
});
});