docs: 交付文档、维护指引与端到端回归
补齐 README、开发计划、维护交接与 E2E 用例,执行最终验收。
This commit is contained in:
1 parent
5be5ca3376
commit
308332eb94
216 files changed
+37038
No files matched your search
@@ -0,0 +1,45 @@
|
||||
import { test, expect, expectNoNewA11yViolations, InboxPage } from '@e2e'
|
||||
|
||||
// Serious and critical axe findings, per screen, held to a baseline
|
||||
// (a11y-baseline/): today's known issues pass, anything new fails, and the
|
||||
// baseline shrinks as they are fixed. The widget is checked in both themes.
|
||||
|
||||
test.describe('accessibility', () => {
|
||||
test('sign-in page @a11y', async ({ anonymousPage }) => {
|
||||
await anonymousPage.goto('/login')
|
||||
await expect(anonymousPage.getByRole('button', { name: /sign in/i })).toBeVisible()
|
||||
await expectNoNewA11yViolations(anonymousPage, 'login')
|
||||
})
|
||||
|
||||
// The dashboard is dark unless the user picks light (stored as cm-theme); both are checked.
|
||||
for (const scheme of ['dark', 'light'] as const) {
|
||||
const suffix = scheme === 'dark' ? '' : '-light'
|
||||
|
||||
test(`dashboard screens, ${scheme} theme @a11y`, async ({ page, agent, agentsPage, aiConfigPage, ticketsPage, peoplePage }) => {
|
||||
// An agent of its own, so the agents screen is the list (with a card to check), not first-run setup.
|
||||
expect(agent.id).toBeTruthy()
|
||||
await page.addInitScript((theme) => localStorage.setItem('cm-theme', theme), scheme)
|
||||
await new InboxPage(page).goto()
|
||||
expect(await page.evaluate(() => document.documentElement.dataset.theme)).toBe(scheme)
|
||||
await expectNoNewA11yViolations(page, `inbox${suffix}`)
|
||||
await agentsPage.goto()
|
||||
await expectNoNewA11yViolations(page, `ai-agents${suffix}`)
|
||||
await aiConfigPage.goto()
|
||||
await expectNoNewA11yViolations(page, `ai-config${suffix}`)
|
||||
await ticketsPage.goto()
|
||||
await expectNoNewA11yViolations(page, `tickets${suffix}`)
|
||||
await peoplePage.goto()
|
||||
await expectNoNewA11yViolations(page, `people${suffix}`)
|
||||
})
|
||||
}
|
||||
|
||||
for (const scheme of ['light', 'dark'] as const) {
|
||||
test(`widget, ${scheme} theme @a11y @widget`, async ({ widget }) => {
|
||||
await widget.page.emulateMedia({ colorScheme: scheme })
|
||||
await widget.embed()
|
||||
await widget.open()
|
||||
await expect(widget.messageInput).toBeEditable()
|
||||
await expectNoNewA11yViolations(widget.page, `widget-${scheme}`)
|
||||
})
|
||||
}
|
||||
})
|
||||
Reference in new issue
Block a user