fix: improve import, evidence indexing and material-scoped grading
Preserve document revisions and evidence, harden indexing and export behavior, add explicit material selection and direct-folder import, validate model JSON schemas with safe error messages, and retain student selection while loading scoring data.
This commit is contained in:
@@ -11,6 +11,7 @@ async function mockApi(page: Page) {
|
||||
{ chunk_id: 2977, title: '综合报告.pdf', page: 48, quote: '第48页原文片段', url: '/api/knowledge/documents/12/pages/48', image_url: '/api/knowledge/documents/12/pages/48/image' },
|
||||
{ title: '已迁移评分证据.pdf', page: 50, quote: '评分证据', url: '/api/knowledge/documents/12/pages/50', image_url: '/api/knowledge/documents/12/pages/50/image' },
|
||||
{ title: '评分报告.pdf', page: 49, quote: '评分原文片段', url: '/api/knowledge/documents/12/pages/49',
|
||||
page_type: 'body', page_type_label: '正文', historical: true,
|
||||
image_url: '/api/knowledge/documents/12/pages/49/image', score_url: '/?page=scores&batch_id=3&project_id=5' },
|
||||
{ title: '课程资料.pdf', page: 5, quote: '课程说明', url: '/api/knowledge/documents/11/pages/5' }],
|
||||
tool_calls: [{ id: 'call-one', name: 'search_project_material', status: 'completed', arguments: { project_id: 1, omitted_text_fields: 1 },
|
||||
@@ -134,6 +135,8 @@ test('markdown, citations, tool folding and narrow layout are safe', async ({ pa
|
||||
await expect(scoreEvidence.getByRole('link', { name: '查看页面文字' })).toBeVisible();
|
||||
await expect(scoreEvidence.getByRole('link', { name: '查看图像' })).toBeVisible();
|
||||
const scoreCitation = page.locator('.citation-card').filter({ hasText: '评分报告.pdf' });
|
||||
await expect(scoreCitation.getByText('正文', { exact: true })).toBeVisible();
|
||||
await expect(scoreCitation.getByText('历史评分引用', { exact: true })).toBeVisible();
|
||||
await expect(scoreCitation.getByRole('link', { name: '查看页面文字' })).toHaveAttribute('href', /\/api\/knowledge\/documents\/12\/pages\/49$/);
|
||||
await expect(scoreCitation.getByRole('link', { name: '查看评分' })).toHaveAttribute('href', /page=scores&batch_id=3&project_id=5$/);
|
||||
await expect(scoreCitation.getByRole('link', { name: '查看图像' })).toHaveAttribute('href', /\/api\/knowledge\/documents\/12\/pages\/49\/image$/);
|
||||
@@ -149,7 +152,7 @@ test('markdown, citations, tool folding and narrow layout are safe', async ({ pa
|
||||
await page.setViewportSize({ width: 390, height: 844 });
|
||||
await expect(page.locator('.ant-layout-sider')).toHaveClass(/ant-layout-sider-zero-width/);
|
||||
await expect(page.locator('.chat-scope .ant-select').first()).toBeVisible();
|
||||
await page.screenshot({ path: 'test-results/mobile-chat.png', fullPage: true });
|
||||
await page.screenshot({ path: 'test-results/mobile-chat.png', fullPage: true, animations: 'disabled' });
|
||||
const width = await page.evaluate(() => document.documentElement.scrollWidth - innerWidth);
|
||||
expect(width).toBeLessThanOrEqual(2);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user