diff --git a/frontend/src/components/Inputs/InputHour.spec.js b/frontend/src/components/Inputs/InputHour.spec.js index 2c2eb8f33..1b0bcb4bd 100644 --- a/frontend/src/components/Inputs/InputHour.spec.js +++ b/frontend/src/components/Inputs/InputHour.spec.js @@ -1,5 +1,6 @@ import { mount } from '@vue/test-utils' import InputHour from './InputHour' +import flushPromises from 'flush-promises' const localVue = global.localVue @@ -17,12 +18,12 @@ describe('InputHour', () => { }, } - describe('mount in a InputHour', () => { + describe('mount', () => { const propsData = { rules: {}, - name: '', - label: '', - placeholder: '', + name: 'input-field-name', + label: 'input-field-label', + placeholder: 'input-field-placeholder', value: 500, validMaxTime: 25, } @@ -37,10 +38,52 @@ describe('InputHour', () => { beforeEach(() => { wrapper = Wrapper() + // await wrapper.setData({ currentValue: 15 }) }) it('renders the component input-hour', () => { expect(wrapper.find('div.input-hour').exists()).toBe(true) }) + + it('has an input field', () => { + expect(wrapper.find('input').exists()).toBeTruthy() + }) + + describe('properties', () => { + it('has the id "input-field-name-input-field"', () => { + expect(wrapper.find('input').attributes('id')).toEqual('input-field-name-input-field') + }) + + it('has the placeholder "input-field-placeholder"', () => { + expect(wrapper.find('input').attributes('placeholder')).toEqual('input-field-placeholder') + }) + + it('has the value 0', () => { + expect(wrapper.vm.currentValue).toEqual(0) + }) + + it('has the label "input-field-label"', () => { + expect(wrapper.find('label').text()).toEqual('input-field-label') + }) + + it('has the label for "input-field-name-input-field"', () => { + expect(wrapper.find('label').attributes('for')).toEqual('input-field-name-input-field') + }) + }) + + describe('input value changes', () => { + it('emits input with new value', async () => { + await wrapper.find('input').setValue('12') + expect(wrapper.emitted('input')).toBeTruthy() + expect(wrapper.emitted('input')).toEqual([['12']]) + }) + }) + + describe('value property changes', () => { + it('updates data model', async () => { + await wrapper.setProps({ value: 15 }) + expect(wrapper.vm.currentValue).toEqual(15) + }) + }) }) })