From 6341a6bd8b5f79a919b31358ff2c0996b07b4f59 Mon Sep 17 00:00:00 2001 From: yanweidong Date: Sun, 19 Jul 2026 19:37:05 +0800 Subject: [PATCH] test: cover project channel workbench flow --- apps/web/e2e/project-workbench.spec.ts | 31 +++++++++++++++++--------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/apps/web/e2e/project-workbench.spec.ts b/apps/web/e2e/project-workbench.spec.ts index 8a2358a..b1fee8b 100644 --- a/apps/web/e2e/project-workbench.spec.ts +++ b/apps/web/e2e/project-workbench.spec.ts @@ -1,17 +1,26 @@ import { expect, test } from '@playwright/test'; -test('project workbench shell renders', async ({ page }) => { +test('login and project channel workbench flow', async ({ page }) => { await page.goto('/'); - await expect(page.getByText('项目工作台')).toBeVisible(); - await expect(page.getByLabel('服务器登录')).toBeVisible(); - await expect(page.getByLabel('服务器 IP 或域名')).toBeVisible(); - await expect(page.getByLabel('项目总览')).toBeVisible(); -}); -test('inbox suggestions require explicit confirmation', async ({ page }) => { - await page.goto('/'); - await page.getByLabel('选择 跟进报价').check(); - await page.getByRole('button', { name: '创建选中项' }).click(); + await expect(page.getByLabel('Server IP or domain')).toBeVisible(); + await page.getByLabel('Server IP or domain').fill('localhost:8080'); + await page.getByLabel('Email or username').fill('david@example.com'); + await page.getByLabel('Password').fill('secret'); + await page.getByRole('button', { name: 'Log in' }).click(); - await expect(page.getByText('已选择 1 项')).toBeVisible(); + await expect(page.getByLabel('Project list')).toBeVisible(); + await expect(page.getByRole('button', { name: 'Project A1' })).toHaveAttribute('aria-pressed', 'true'); + await expect(page.getByRole('button', { name: 'Message Flow 36' })).toBeVisible(); + + await page.getByRole('button', { name: 'Work Plan 8' }).click(); + await expect(page.getByText('Tasks')).toBeVisible(); + await expect(page.getByRole('button', { name: 'Inspect Confirm homepage information architecture' })).toBeVisible(); + + await page.getByRole('button', { name: 'Project A2' }).click(); + await expect(page.getByRole('button', { name: 'Project A2' })).toHaveAttribute('aria-pressed', 'true'); + await expect(page.getByText('Ops Dashboard')).toBeVisible(); + + await page.getByRole('button', { name: 'Ops Dashboard' }).click(); + await expect(page.getByText('Open external channel')).toBeVisible(); });