import { VetproviehBinding } from '../../lib'; import { DemoBindingArrayElement } from '../mockups/demo-binding-array-element'; import { DemoBindingElement } from '../mockups/demo-binding-element'; describe('ConnectedCallback', () => { var element: DemoBindingElement; let object = { name: "testingSomething", value: "0" }; beforeEach(function () { element = new DemoBindingElement(); element.object = object; element.connectedCallback(); }); afterEach(() => { VetproviehBinding.currentBindings = {}; }) it('it should render template', () => { expect(element.innerHTML).toMatch("

" + object.name + ":"); }) it('should bind input element', () => { let expected = "test1"; let input = element.getElementsByTagName("input")[0] as HTMLInputElement; expect(input.value).toEqual(object.value); input.value = expected; input.dispatchEvent(new Event("change")); expect(object.value).toEqual(expected); }); ; }); describe('bind array element', () => { var element: DemoBindingArrayElement; let object = { name: "testingSomething", values: [{ name: "0" }] }; beforeEach(function () { element = new DemoBindingArrayElement(); element.object = object; element.connectedCallback(); }); it('should bind input element', () => { let expected = "test1"; let input = element.getElementsByTagName("input")[0] as HTMLInputElement; expect(input.value).toEqual(object.values[0].name); input.value = expected; input.dispatchEvent(new Event("change")); expect(object.values[0].name).toEqual(expected); }); });