import { elementUpdated, fixture, html } from '@open-wc/testing-helpers'
import type { LitElement } from 'lit'
import { describe, expect, it } from 'vitest'
import type { IValidMessageProps } from './model/IValidMessageProps'
import './validMessage'
type ItTestUsValidMessage = LitElement & IValidMessageProps
describe('UsValidMessage', () => {
let el: ItTestUsValidMessage
beforeEach(async () => {
el = await fixture(html`Text`)
})
it('should have default props', () => {
// Assert
expect(el.isError).toBeFalsy()
expect(el.dataTestId).toBe('message_valid')
})
it('should display default slot', () => {
// Assert
expect(el.innerText).toContain('Text')
})
it('should render with default classes when no attributes are set', async () => {
// Act
const validMessage = el.shadowRoot?.querySelector('.valid-message')
// Assert
expect(validMessage?.className).not.toContain('message_error')
})
it('should render with error class when isError is set', async () => {
// Arrange
el.isError = true
// Act
await elementUpdated(el)
const validMessage = el.shadowRoot?.querySelector('.valid-message')
// Assert
expect(validMessage?.className).toContain('message_error')
})
})