mirror of
https://github.com/IT4Change/gradido.git
synced 2026-02-06 09:56:05 +00:00
84 lines
2.4 KiB
JavaScript
84 lines
2.4 KiB
JavaScript
// Test written by ChatGPT 3.5
|
|
import { mount } from '@vue/test-utils'
|
|
import EditableLabel from './EditableLabel.vue'
|
|
|
|
const localVue = global.localVue
|
|
const value = 'test label value'
|
|
|
|
describe('EditableLabel', () => {
|
|
let wrapper
|
|
|
|
const createWrapper = (propsData) => {
|
|
return mount(EditableLabel, {
|
|
localVue,
|
|
propsData,
|
|
})
|
|
}
|
|
|
|
it('renders the label when not editing', () => {
|
|
wrapper = createWrapper({ value, allowEdit: true })
|
|
|
|
expect(wrapper.find('label').text()).toBe(value)
|
|
})
|
|
|
|
it('renders the input when editing', async () => {
|
|
wrapper = createWrapper({ value, allowEdit: true })
|
|
|
|
await wrapper.find('button').trigger('click')
|
|
|
|
expect(wrapper.find('input').exists()).toBe(true)
|
|
})
|
|
|
|
it('emits save event when clicking save button', async () => {
|
|
wrapper = createWrapper({ value, allowEdit: true })
|
|
|
|
await wrapper.find('button').trigger('click')
|
|
await wrapper.setData({ inputValue: 'New Value' })
|
|
await wrapper.find('button').trigger('click')
|
|
|
|
expect(wrapper.emitted().save).toBeTruthy()
|
|
expect(wrapper.emitted().save[0][0]).toBe('New Value')
|
|
})
|
|
|
|
it('disables save button when value is not changed', async () => {
|
|
wrapper = createWrapper({ value, allowEdit: true })
|
|
|
|
await wrapper.find('button').trigger('click')
|
|
|
|
expect(wrapper.find('button').attributes('disabled')).toBe('disabled')
|
|
})
|
|
|
|
it('enables save button when value is changed', async () => {
|
|
wrapper = createWrapper({ value, allowEdit: true })
|
|
|
|
await wrapper.find('button').trigger('click')
|
|
await wrapper.setData({ inputValue: 'New Value' })
|
|
|
|
expect(wrapper.find('button').attributes('disabled')).toBeFalsy()
|
|
})
|
|
|
|
it('updates originalValue when saving changes', async () => {
|
|
wrapper = createWrapper({ value, allowEdit: true })
|
|
|
|
await wrapper.find('button').trigger('click')
|
|
await wrapper.setData({ inputValue: 'New Value' })
|
|
await wrapper.find('button').trigger('click')
|
|
|
|
expect(wrapper.vm.originalValue).toBe('New Value')
|
|
})
|
|
|
|
it('changes variant to success when editing', async () => {
|
|
wrapper = createWrapper({ value, allowEdit: true })
|
|
|
|
await wrapper.find('button').trigger('click')
|
|
|
|
expect(wrapper.vm.variant).toBe('success')
|
|
})
|
|
|
|
it('changes variant to prime when not editing', async () => {
|
|
wrapper = createWrapper({ value, allowEdit: true })
|
|
|
|
expect(wrapper.vm.variant).toBe('prime')
|
|
})
|
|
})
|