test: Added VButtonGroup test file

This commit is contained in:
Paul Valerie GOMA 2025-07-21 09:58:47 +02:00
parent 60cdf35007
commit 9b5019c602

46
test/VButtonGroup.spec.ts Normal file
View File

@ -0,0 +1,46 @@
import { mount } from "@vue/test-utils";
import VButtonGroup from '../src/components/button/VButtonGroup.vue';
import {test, expect, describe, vi} from 'vitest';
const buttons = [
{title: 'button 1', label: 'label 1', onClick: vi.fn()},
{title: 'button 2', label: 'label 2', onClick: vi.fn()}
]
describe('VButtonGroup', () => {
test('Displays all buttons passed as props', () => {
const wrapper = mount(VButtonGroup, {
props: {
buttons,
title: 'button group',
}
})
const buttonElements = wrapper.findAll('button')
expect(buttonElements).toHaveLength(2)
expect(buttonElements[0].text()).toContain('label 1')
expect(buttonElements[1].text()).toContain('label 2')
})
test('applies the inline class when inlineLayoutWhen is “always”', () => {
const wrapper = mount(VButtonGroup, {
props: {
buttons,
title: 'button group',
inlineLayoutWhen: 'always',
}
})
expect(wrapper.classes()).toContain('btns-group--inline')
})
test('clicked button', async () => {
const onClick = vi.fn()
const wrapper = mount(VButtonGroup, {
props: {
buttons: [{title: 'button 1', label: 'label 1', onClick}],
title: 'button group',
}
})
await wrapper.find('button').trigger('click')
expect(onClick).toHaveBeenCalled()
})
})