import { DemoGroupBindingElement } from "../mockups/demo-group-binding-element"; import { DemoBindingElement } from "../mockups/demo-binding-element"; import { VetproviehBinding } from "../../lib"; describe('ConnectedCallback', () => { var element: DemoGroupBindingElement; let object = { name: "testingSomething", fields: [ { name: "Field1", value: "1" }, { name: "Field2", value: "2" } ] }; beforeEach(function () { element = new DemoGroupBindingElement(); element.object = object; element.connectedCallback(); element.querySelectorAll("demo-field") .forEach((field: Element) => { (field as DemoBindingElement).connectedCallback(); }) }); afterEach(() => { VetproviehBinding.currentBindings = {}; }) it('it should render template', () => { expect(element.innerHTML).toMatch(object.name); object.fields.forEach((field) => { expect(element.innerHTML).toMatch("

" + field.name + ":"); }) }) it('should bind input element', () => { object.fields.forEach((field, index) => { let expected = "field" + index; let input = element.getElementsByTagName("input")[index] as HTMLInputElement; expect(field.value).toEqual(field.value); input.value = expected; input.dispatchEvent(new Event("change")); expect(field.value).toEqual(expected); }); }); });