import {VetproviehBinding} from '../../lib'; function buildTestObject() { return { name: 'Test', }; } describe('value', () => { test('should get name from object', () => { const testObj = buildTestObject(); const binding: VetproviehBinding = new VetproviehBinding( testObj, 'name'); expect(binding.value).toBe('Test'); }); test('should do nothing', () => { const testObj = buildTestObject(); const binding: VetproviehBinding = new VetproviehBinding( testObj, 'name'); binding.value = 'Test'; expect(binding.value).toBe('Test'); }); test('should set name for object', () => { const testObj = buildTestObject(); const expectedValue = 'Something different'; const binding: VetproviehBinding = new VetproviehBinding( testObj, 'name'); binding.value = expectedValue; expect(binding.value).toBe(expectedValue); }); }); describe('addBinding', () => { const inputElement = document.createElement('input'); test('should add binding', () => { const testObj = buildTestObject(); const binding: VetproviehBinding = new VetproviehBinding( testObj, 'name'); binding.addBinding(inputElement, 'value', 'change'); expect(inputElement.value).toBe('Test'); expect(binding['_bindings'].length).toBe(1); }); test('should have attached listener', () => { const testObj = buildTestObject(); const expectedValue = 'Test2'; const binding: VetproviehBinding = new VetproviehBinding( testObj, 'name'); binding.addBinding(inputElement, 'value', 'change'); inputElement.value = expectedValue; inputElement.dispatchEvent(new Event('change')); expect(testObj.name).toBe(expectedValue); }); });