import { beforeEach, expect, test } from 'vitest'
import { page } from 'vitest/browser'
beforeEach(() => {
document.body.innerHTML = ''
})
test('expect.element pass', async () => {
document.body.innerHTML = ''
await expect.element(page.getByRole('button')).toHaveTextContent('Hello')
})
test('expect.element fail', async () => {
document.body.innerHTML = ''
await expect.element(page.getByRole('button'), { timeout: 100 }).toHaveTextContent('World')
})
test('failure', async () => {
document.body.innerHTML = ''
throw new Error('Test failure')
})
test('click', async () => {
document.body.innerHTML = ''
await page.getByRole('button').click()
})
test('click fail', async () => {
document.body.innerHTML = ''
try {
await page.getByRole('button', { name: 'Missing' }).click({ timeout: 100 })
}
catch (e) {
// error messages are different by providers.
// this is irrelevant since this is a test for action trace metadata
e.message = 'Click failed (normalized)'
throw e
}
})