UNPKG

@ribajs/core

Version:

Core module of Riba.js

111 lines 10.4 kB
import { Riba } from "../riba.js"; import { UncheckedBinder } from "./unchecked.binder.js"; import { dotAdapter } from "../adapters/dot.adapter.js"; const riba = new Riba(); riba.module.adapter.register(dotAdapter); riba.module.binder.register(UncheckedBinder); describe("riba.binders", () => { let trueRadioInput; let falseRadioInput; let checkboxInput; let checkboxInputWithBinder; const createInputElement = (type, value) => { const elem = document.createElement("input"); elem.setAttribute("type", type); if (value !== undefined) { elem.setAttribute("value", value); } document.body.appendChild(elem); return elem; }; beforeEach(() => { riba.configure({ adapters: { subscribe: () => { }, unsubscribe: () => { }, read: () => { }, publish: () => { }, }, }); trueRadioInput = createInputElement("radio", "true"); falseRadioInput = createInputElement("radio", "false"); checkboxInput = createInputElement("checkbox"); checkboxInputWithBinder = createInputElement("checkbox"); checkboxInputWithBinder.setAttribute("rv-unchecked", "true"); }); afterEach(() => { if (!trueRadioInput.parentNode) { throw new Error("trueRadioInput.parentNode is not defined!"); } if (!falseRadioInput.parentNode) { throw new Error("falseRadioInput.parentNode is not defined!"); } if (!checkboxInput.parentNode) { throw new Error("checkboxInput.parentNode is not defined!"); } trueRadioInput.parentNode.removeChild(trueRadioInput); falseRadioInput.parentNode.removeChild(falseRadioInput); checkboxInput.parentNode.removeChild(checkboxInput); }); describe("unchecked", () => { describe("with a checkbox input", () => { describe("and a truthy value", () => { it("checks the checkbox input", () => { const view = riba.bind(checkboxInputWithBinder); const uncheckedBinder = view.bindings[0]; uncheckedBinder.routine(checkboxInput, true); expect(checkboxInput.checked).toEqual(false); }); }); describe("with a falsey value", () => { it("unchecks the checkbox input", () => { const view = riba.bind(checkboxInputWithBinder); const uncheckedBinder = view.bindings[0]; uncheckedBinder.routine(checkboxInput, false); expect(checkboxInput.checked).toEqual(true); }); }); }); describe('with a radio input with value="true"', () => { describe("and a truthy value", () => { it("checks the radio input", () => { const view = riba.bind(checkboxInputWithBinder); const uncheckedBinder = view.bindings[0]; uncheckedBinder.routine(trueRadioInput, true); expect(trueRadioInput.checked).toEqual(false); }); }); describe("with a falsey value", () => { it("unchecks the radio input", () => { const view = riba.bind(checkboxInputWithBinder); const uncheckedBinder = view.bindings[0]; uncheckedBinder.routine(trueRadioInput, false); expect(trueRadioInput.checked).toEqual(true); }); }); }); describe('with a radio input with value="false"', () => { describe("and a truthy value", () => { it("checks the radio input", () => { const view = riba.bind(checkboxInputWithBinder); const uncheckedBinder = view.bindings[0]; uncheckedBinder.routine(falseRadioInput, true); expect(falseRadioInput.checked).toEqual(true); }); }); describe("with a falsey value", () => { it("unchecks the radio input", () => { const view = riba.bind(checkboxInputWithBinder); const uncheckedBinder = view.bindings[0]; uncheckedBinder.routine(falseRadioInput, false); expect(falseRadioInput.checked).toEqual(false); }); }); }); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5jaGVja2VkLmJpbmRlci5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpbmRlcnMvdW5jaGVja2VkLmJpbmRlci5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUd4RCxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7QUFFN0MsUUFBUSxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUU7SUFDNUIsSUFBSSxjQUFnQyxDQUFDO0lBQ3JDLElBQUksZUFBaUMsQ0FBQztJQUN0QyxJQUFJLGFBQStCLENBQUM7SUFDcEMsSUFBSSx1QkFBeUMsQ0FBQztJQUU5QyxNQUFNLGtCQUFrQixHQUFHLENBQUMsSUFBWSxFQUFFLEtBQWMsRUFBRSxFQUFFO1FBQzFELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEMsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUNELFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0lBRUYsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDYixRQUFRLEVBQUc7Z0JBQ1QsU0FBUyxFQUFFLEdBQUcsRUFBRTtnQkFFaEIsQ0FBQztnQkFDRCxXQUFXLEVBQUUsR0FBRyxFQUFFO2dCQUVsQixDQUFDO2dCQUNELElBQUksRUFBRSxHQUFHLEVBQUU7Z0JBRVgsQ0FBQztnQkFDRCxPQUFPLEVBQUUsR0FBRyxFQUFFO2dCQUVkLENBQUM7YUFDc0I7U0FDMUIsQ0FBQyxDQUFDO1FBR0gsY0FBYyxHQUFHLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUdyRCxlQUFlLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBR3ZELGFBQWEsR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUvQyx1QkFBdUIsR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6RCx1QkFBdUIsQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQy9ELENBQUMsQ0FBQyxDQUFDO0lBRUgsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUNELGNBQWMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RELGVBQWUsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3hELGFBQWEsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RELENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUU7UUFDekIsUUFBUSxDQUFDLHVCQUF1QixFQUFFLEdBQUcsRUFBRTtZQUNyQyxRQUFRLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFO2dCQUNsQyxFQUFFLENBQUMsMkJBQTJCLEVBQUUsR0FBRyxFQUFFO29CQUNuQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7b0JBQ2hELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFvQixDQUFDO29CQUM1RCxlQUFlLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDN0MsTUFBTSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQy9DLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFFSCxRQUFRLENBQUMscUJBQXFCLEVBQUUsR0FBRyxFQUFFO2dCQUNuQyxFQUFFLENBQUMsNkJBQTZCLEVBQUUsR0FBRyxFQUFFO29CQUNyQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7b0JBQ2hELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFvQixDQUFDO29CQUM1RCxlQUFlLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDOUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzlDLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILFFBQVEsQ0FBQyxzQ0FBc0MsRUFBRSxHQUFHLEVBQUU7WUFDcEQsUUFBUSxDQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBRTtnQkFDbEMsRUFBRSxDQUFDLHdCQUF3QixFQUFFLEdBQUcsRUFBRTtvQkFDaEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO29CQUNoRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBb0IsQ0FBQztvQkFDNUQsZUFBZSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQzlDLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNoRCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1lBRUgsUUFBUSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsRUFBRTtnQkFDbkMsRUFBRSxDQUFDLDBCQUEwQixFQUFFLEdBQUcsRUFBRTtvQkFDbEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO29CQUNoRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBb0IsQ0FBQztvQkFDNUQsZUFBZSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQy9DLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMvQyxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxRQUFRLENBQUMsdUNBQXVDLEVBQUUsR0FBRyxFQUFFO1lBQ3JELFFBQVEsQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUU7Z0JBQ2xDLEVBQUUsQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLEVBQUU7b0JBQ2hDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztvQkFDaEQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQW9CLENBQUM7b0JBQzVELGVBQWUsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUMvQyxNQUFNLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDaEQsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztZQUVILFFBQVEsQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLEVBQUU7Z0JBQ25DLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxHQUFHLEVBQUU7b0JBQ2xDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztvQkFDaEQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQW9CLENBQUM7b0JBQzVELGVBQWUsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUNoRCxNQUFNLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDakQsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyJ9