@datametria/vue-components
Version:
DATAMETRIA Vue.js 3 Component Library with Multi-Brand Theming - 51 components + 10 composables with theming support, WCAG 2.2 AA, dark mode, responsive system
49 lines (41 loc) • 1.38 kB
JavaScript
import { describe, it, expect, vi } from 'vitest'
import { mount } from '@vue/test-utils'
import DatametriaToast from '../DatametriaToast.vue'
describe('DatametriaToast', () => {
it('renders with primary variant', () => {
// Create body element for Teleport
const body = document.createElement('div')
document.body.appendChild(body)
const wrapper = mount(DatametriaToast, {
props: {
message: 'Test message',
variant: 'primary',
modelValue: true
},
attachTo: body
})
// Check if toast exists in document body
const toast = document.querySelector('.dm-toast')
expect(toast).toBeTruthy()
expect(toast.classList.contains('dm-toast--primary')).toBe(true)
wrapper.unmount()
document.body.removeChild(body)
})
it('validates invalid variant in development', () => {
const consoleSpy = vi.spyOn(console, 'warn').mockImplementation(() => {})
const originalEnv = process.env.NODE_ENV
process.env.NODE_ENV = 'development'
mount(DatametriaToast, {
props: {
message: 'Test',
variant: 'invalid',
modelValue: true
}
})
expect(consoleSpy).toHaveBeenCalledWith(
expect.stringContaining('[DatametriaToast] Invalid variant "invalid"')
)
process.env.NODE_ENV = originalEnv
consoleSpy.mockRestore()
})
})