@ribajs/core
Version:
Core module of Riba.js
56 lines (44 loc) • 1.51 kB
text/typescript
import { Riba } from "../riba.js";
import { dotAdapter } from "../adapters/dot.adapter.js";
import { SrcsetSizeBinder } from "./srcset-size.binder.js";
describe("riba.binders", () => {
let el: HTMLDivElement;
let fragment: DocumentFragment;
let model: any = {};
const riba = new Riba();
riba.module.adapter.register(dotAdapter);
riba.module.binder.register(SrcsetSizeBinder);
beforeEach(() => {
fragment = document.createDocumentFragment();
el = document.createElement("div");
fragment.appendChild(el);
model = {
small: "//placehold.it/100x",
middle: "//placehold.it/200x",
big: "//placehold.it/300x",
};
});
afterEach(() => {
if (!el.parentNode) {
throw new Error("el.parentNode is not defined!");
}
el.parentNode.removeChild(el);
});
describe("srcset-size", () => {
it("Adds a url + size string to the srcset attribute by a value string in the model", () => {
// tslint:disable:quotemark
el.setAttribute("rv-srcset-100w", "small");
el.setAttribute("rv-srcset-200w", "middle");
el.setAttribute("rv-srcset-300w", "big");
riba.bind(fragment, model);
expect(el.getAttribute("srcset")).toEqual(
"//placehold.it/100x 100w, //placehold.it/200x 200w, //placehold.it/300x 300w"
);
// Removes url for size
model.middle = "";
expect(el.getAttribute("srcset")).toEqual(
"//placehold.it/100x 100w, //placehold.it/300x 300w"
);
});
});
});