feat: build Learning Planner evidence project
This commit is contained in:
36
src/App.test.tsx
Normal file
36
src/App.test.tsx
Normal file
@@ -0,0 +1,36 @@
|
||||
import { render, screen } from '@testing-library/react'
|
||||
import userEvent from '@testing-library/user-event'
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import App from './App'
|
||||
|
||||
describe('Learning Planner', () => {
|
||||
it('renders a useful seeded dashboard', () => {
|
||||
render(<App />)
|
||||
expect(screen.getByRole('heading', { name: /good progress starts/i })).toBeInTheDocument()
|
||||
expect(screen.getAllByText('Master practical TypeScript patterns').length).toBeGreaterThan(0)
|
||||
expect(screen.getByText('Due this week')).toBeInTheDocument()
|
||||
})
|
||||
|
||||
it('validates and creates a goal', async () => {
|
||||
const user = userEvent.setup()
|
||||
render(<App />)
|
||||
await user.click(screen.getByRole('button', { name: 'Learning goals' }))
|
||||
await user.click(screen.getByRole('button', { name: 'New goal' }))
|
||||
await user.click(screen.getByRole('button', { name: 'Save goal' }))
|
||||
expect(screen.getByText('Enter a goal title.')).toBeInTheDocument()
|
||||
await user.type(screen.getByLabelText(/Goal title/), 'Learn browser APIs')
|
||||
await user.type(screen.getByLabelText(/Category/), 'Web platform')
|
||||
await user.type(screen.getByLabelText(/Target date/), '2026-12-01')
|
||||
await user.click(screen.getByRole('button', { name: 'Save goal' }))
|
||||
expect(screen.getByRole('heading', { name: 'Learn browser APIs' })).toBeInTheDocument()
|
||||
})
|
||||
|
||||
it('filters the task library', async () => {
|
||||
const user = userEvent.setup()
|
||||
render(<App />)
|
||||
await user.click(screen.getByRole('button', { name: 'All tasks' }))
|
||||
await user.type(screen.getByLabelText('Search tasks'), 'Firefox')
|
||||
expect(screen.getByRole('heading', { name: 'Run Firefox regression suite' })).toBeInTheDocument()
|
||||
expect(screen.queryByRole('heading', { name: 'Add safe import validation' })).not.toBeInTheDocument()
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user