@ribajs/core
Version:
Core module of Riba.js
61 lines (53 loc) • 1.6 kB
text/typescript
import { Riba } from "../riba.js";
import { TextBinder } from "./text.binder.js";
import { dotAdapter } from "../adapters/dot.adapter.js";
import { Adapters } from "../types/index.js";
describe("riba.binders", () => {
let el: HTMLUnknownElement;
const riba = new Riba();
riba.module.adapter.register(dotAdapter);
riba.module.binder.register(TextBinder);
beforeEach(() => {
riba.configure({
adapters: ({
subscribe: () => {
/**/
},
unsubscribe: () => {
/**/
},
read: () => {
/**/
},
publish: () => {
/**/
},
} as unknown) as Adapters,
});
el = document.createElement("div");
el.setAttribute("rv-text", "");
document.body.appendChild(el);
});
afterEach(() => {
if (!el.parentNode) {
throw new Error("el.parentNode is not defined!");
}
el.parentNode.removeChild(el);
});
describe("text", () => {
it("sets the element's text content", () => {
const view = riba.bind(el);
const textBinder = view.bindings[0] as TextBinder;
textBinder.routine(el, "<em>hello</em>");
expect(el.textContent).toEqual("<em>hello</em>");
expect(el.innerHTML).toEqual("<em>hello</em>");
});
it("sets the element's text content to zero when a numeric zero is passed", () => {
const view = riba.bind(el);
const textBinder = view.bindings[0] as TextBinder;
textBinder.routine(el, 0);
expect(el.textContent).toEqual("0");
expect(el.innerHTML).toEqual("0");
});
});
});