INNER CODE UNIT · TypeScript
response
Snailclimb/interview-guide · frontend/e2e/knowledgebase-upload.spec.ts:160
const response = new Promise<void>(resolve => { release = resolve; });
await page.route('**/api/knowledgebase/upload', route => success(route, uploadResult(5, 'PENDING')));
await page.route('**/api/knowledgebase/5', async route => {
await response;
await success(route, { id: 5, vectorStatus: 'COMPLETED' });
});
try {
await page.goto('/knowledgebase/upload');
await page.locator('input[type=file]').setInputFiles(fixture('clear.txt'));
const started = page.waitForRequest('**/api/knowledgebase/5');
await page.getByRole('button', { name: '加入上传队列 1 个文件' }).click();
await started;
const aborted = page.waitForEvent('requestfailed', request => request.url().endsWith('/api/knowledgebase/5'));
await page.getByRole('button', { name: '清空列表' }).click();
await aborted;
release();
await expect(row(page, 'clear.txt')).toHaveCount(0);
} finally {