37 lines
987 B
TypeScript
37 lines
987 B
TypeScript
import { mount } from '@vue/test-utils'
|
|
import VLink from '../src/components/button/VLink.vue'
|
|
import {test, expect, describe} from 'vitest'
|
|
|
|
describe('VLink', () => {
|
|
test('renders the label correctly', () => {
|
|
const wrapper = mount(VLink, {
|
|
props: {
|
|
label: 'Link'
|
|
}
|
|
})
|
|
expect(wrapper.text()).toContain('Link');
|
|
})
|
|
|
|
test('renders as an anchor tag when `href` is provided', () => {
|
|
const wrapper = mount(VLink, {
|
|
props: {label: 'External', href: 'https://example.com' }
|
|
});
|
|
|
|
const a = wrapper.find('a')
|
|
expect(a.exists()).toBe(true);
|
|
expect(a.attributes('href')).toBe('https://example.com');
|
|
})
|
|
|
|
test('disables the link when `disabled` is true', () => {
|
|
const wrapper = mount(VLink, {
|
|
props: {label: 'Disabled', disabled: true }
|
|
})
|
|
|
|
const button = wrapper.find('.p-button');
|
|
expect(button.classes()).toContain('disabled');
|
|
expect(button.attributes('aria-disabled')).toBe('true');
|
|
});
|
|
|
|
|
|
})
|