38 lines
1.9 KiB
TypeScript
38 lines
1.9 KiB
TypeScript
import { expect, test } from '@playwright/test'
|
|
|
|
test.beforeEach(async ({ page }) => {
|
|
await page.goto('/')
|
|
await page.evaluate(() => localStorage.clear())
|
|
await page.reload()
|
|
})
|
|
|
|
test('core planning journey persists after reload', async ({ page }) => {
|
|
await expect(page.getByRole('heading', { name: /good progress starts/i })).toBeVisible()
|
|
await page.getByRole('button', { name: 'Learning goals' }).click()
|
|
await page.getByRole('button', { name: 'New goal' }).click()
|
|
await page.getByLabel('Goal title').fill('Research progressive enhancement')
|
|
await page.getByLabel('Category').fill('Web platform')
|
|
await page.getByLabel('Target date').fill('2026-12-01')
|
|
await page.getByRole('button', { name: 'Save goal' }).click()
|
|
await expect(page.getByRole('heading', { name: 'Research progressive enhancement' })).toBeVisible()
|
|
await page.reload()
|
|
await page.getByRole('button', { name: 'Learning goals' }).click()
|
|
await expect(page.getByRole('heading', { name: 'Research progressive enhancement' })).toBeVisible()
|
|
})
|
|
|
|
test('task search and status interaction work', async ({ page }) => {
|
|
await page.getByLabel('Primary navigation').getByRole('button', { name: /All tasks/ }).click()
|
|
await page.getByLabel('Search tasks').fill('Firefox')
|
|
const task = page.locator('.task-row').filter({ hasText: 'Run Firefox regression suite' })
|
|
await expect(task).toBeVisible()
|
|
await task.getByRole('button', { name: /complete run firefox/i }).click()
|
|
await expect(task).toHaveClass(/complete/)
|
|
})
|
|
|
|
test('required viewport has no page-level horizontal overflow', async ({ page }) => {
|
|
const dimensions = await page.evaluate(() => ({ scrollWidth: document.documentElement.scrollWidth, clientWidth: document.documentElement.clientWidth }))
|
|
expect(dimensions.scrollWidth).toBeLessThanOrEqual(dimensions.clientWidth)
|
|
await expect(page.locator('.topbar')).toBeVisible()
|
|
await expect(page.locator('.dashboard-grid')).toBeVisible()
|
|
})
|