From 006c81567546deb1cbd95abbb7ca6a36f99241b2 Mon Sep 17 00:00:00 2001 From: weichen Date: Tue, 13 Oct 2026 17:02:03 +0000 Subject: [PATCH] Check pending membership in the real HTTP work view Why: The U3 browser gate must show a host-generated pending question for underdetermined source counts. Evidence: The new assertion failed against the old mechanism fixture while existing source-navigation and focus-flow tests remained observable; Backend fixture now emits structured premises. Impact: Browser test inputs and assertion only; no production UI change. Refs: Backend 756679d; Dev task feature/fast-slow-u2-u3-plan --- e2e/work-checkpoints.playwright.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/e2e/work-checkpoints.playwright.ts b/e2e/work-checkpoints.playwright.ts index e92d093..81e0f2c 100644 --- a/e2e/work-checkpoints.playwright.ts +++ b/e2e/work-checkpoints.playwright.ts @@ -12,7 +12,7 @@ async function setup(request:any){ const conv=await(await request.post(manifest.base+`/api/projects/${project.id}/conversations`,{data:{title:'材料整理',profileId:'checkpoint-eval'}})).json() const ids:string[]=[] for(let i=0;i<3;i++){ - const res=await request.post(manifest.base+`/api/projects/${project.id}/uploads`,{multipart:{file:{name:`来源${i+1}.txt`,mimeType:'text/plain',buffer:Buffer.from('上线六月。验收条件需要补齐,预算50万元尚未审批。\n\n'+('整理记录说明:保留日期、金额、限制和待确认事项。\n\n').repeat(100))}}}) + const res=await request.post(manifest.base+`/api/projects/${project.id}/uploads`,{multipart:{file:{name:`来源${i+1}.txt`,mimeType:'text/plain',buffer:Buffer.from('上线六月。验收条件需要补齐,预算50万元尚未审批。交付包含12项需求,其中3项依赖外部接口。第一期先完成8项核心需求。\n\n'+('整理记录说明:保留日期、金额、限制和待确认事项。\n\n').repeat(100))}}}) expect(res.ok()).toBeTruthy();ids.push((await res.json()).artifactId) } const sent=await request.post(manifest.base+`/api/conversations/${conv.id}/messages`,{data:{text:'',attachmentIds:ids,requestId:'browser-'+Date.now()}}) @@ -33,6 +33,7 @@ async function open(page:any,seed:any){ test('real HTTP task recovery, source navigation and changed-version limitation',async({page,request})=>{ const seed=await setup(request);const errors:string[]=[];page.on('pageerror',e=>errors.push(e.message));await open(page,seed) await expect(page.locator('[data-conversation-work]')).toContainText('验收条件需要补齐') + await expect(page.locator('[data-conversation-work]')).toContainText('材料未说明具体归属') await page.reload();await expect(page.locator('[data-conversation-work]')).toContainText('上线六月') await page.getByRole('button',{name:'查看依据',exact:true}).first().click() await page.getByRole('button',{name:/查看来源/}).first().click()