mirror of
https://github.com/hanzoai/vitest.git
synced 2026-10-30 14:46:34 +00:00
32 lines
1.3 KiB
TypeScript
32 lines
1.3 KiB
TypeScript
import { expect, test } from 'vitest'
|
|
import { page, userEvent } from 'vitest/browser'
|
|
import Blog from '../../src/blog-app/blog'
|
|
|
|
test('renders blog posts', async () => {
|
|
const screen = await page.render(<Blog />)
|
|
|
|
await expect.element(screen.getByRole('heading', { name: 'Blog' })).toBeInTheDocument()
|
|
|
|
const posts = screen.getByRole('listitem').all()
|
|
|
|
expect(posts).toHaveLength(4)
|
|
|
|
const [firstPost, secondPost] = posts
|
|
|
|
expect(firstPost.element()).toMatchTextContent(/molestiae ut ut quas/)
|
|
expect(firstPost.getByRole('heading').element()).toMatchTextContent(/occaecati excepturi/)
|
|
|
|
await expect.element(secondPost.getByRole('heading')).toMatchTextContent('qui est esse')
|
|
|
|
await userEvent.click(secondPost.getByRole('button', { name: 'Delete' }))
|
|
|
|
expect(screen.getByRole('listitem').all()).toHaveLength(3)
|
|
|
|
expect(screen.getByRole('listitem').nth(0).element()).toMatchTextContent(/molestiae ut ut quas/)
|
|
await expect.element(screen.getByRole('listitem').nth(666)).not.toBeInTheDocument()
|
|
expect(screen.getByRole('listitem').first().element()).toMatchTextContent(/molestiae ut ut quas/)
|
|
expect(screen.getByRole('listitem').last().element()).toMatchTextContent(/eum et est/)
|
|
|
|
expect(screen.getByPlaceholder('non-existing').query()).not.toBeInTheDocument()
|
|
})
|