新增文本题库导入功能,题目新增“解析”字段

This commit is contained in:
2025-12-25 00:15:14 +08:00
parent e2a1555b46
commit dc9fc169ec
30 changed files with 1386 additions and 165 deletions

View File

@@ -155,6 +155,56 @@ test('管理员任务分页统计接口返回结构正确', async () => {
assert.equal(upcoming.json?.pagination?.pages, 1);
assert.equal(upcoming.json?.data?.[0]?.taskName, '未开始任务');
const allStats = await jsonFetch(baseUrl, '/api/admin/tasks/all-stats?page=1&limit=5');
assert.equal(allStats.status, 200);
assert.equal(allStats.json?.success, true);
assert.ok(Array.isArray(allStats.json?.data));
assert.equal(allStats.json?.pagination?.page, 1);
assert.equal(allStats.json?.pagination?.limit, 5);
assert.equal(allStats.json?.pagination?.total, 3);
assert.equal(allStats.json?.pagination?.pages, 1);
const byName = (name: string) => (allStats.json?.data as any[]).find((d) => d.taskName === name);
assert.equal(byName('历史任务')?.status, '已完成');
assert.equal(byName('未开始任务')?.status, '未开始');
assert.equal(byName('进行中任务')?.status, '进行中');
const allCompleted = await jsonFetch(baseUrl, '/api/admin/tasks/all-stats?page=1&limit=5&status=completed');
assert.equal(allCompleted.status, 200);
assert.equal(allCompleted.json?.success, true);
assert.equal(allCompleted.json?.pagination?.total, 1);
assert.equal(allCompleted.json?.data?.[0]?.taskName, '历史任务');
assert.equal(allCompleted.json?.data?.[0]?.status, '已完成');
const allOngoing = await jsonFetch(baseUrl, '/api/admin/tasks/all-stats?page=1&limit=5&status=ongoing');
assert.equal(allOngoing.status, 200);
assert.equal(allOngoing.json?.success, true);
assert.equal(allOngoing.json?.pagination?.total, 1);
assert.equal(allOngoing.json?.data?.[0]?.taskName, '进行中任务');
assert.equal(allOngoing.json?.data?.[0]?.status, '进行中');
const allNotStarted = await jsonFetch(baseUrl, '/api/admin/tasks/all-stats?page=1&limit=5&status=notStarted');
assert.equal(allNotStarted.status, 200);
assert.equal(allNotStarted.json?.success, true);
assert.equal(allNotStarted.json?.pagination?.total, 1);
assert.equal(allNotStarted.json?.data?.[0]?.taskName, '未开始任务');
assert.equal(allNotStarted.json?.data?.[0]?.status, '未开始');
const inHistoryEndAtRange = await jsonFetch(
baseUrl,
`/api/admin/tasks/all-stats?page=1&limit=5&endAtStart=${encodeURIComponent(
new Date(now - 2.6 * 24 * 60 * 60 * 1000).toISOString(),
)}&endAtEnd=${encodeURIComponent(new Date(now - 1.9 * 24 * 60 * 60 * 1000).toISOString())}`,
);
assert.equal(inHistoryEndAtRange.status, 200);
assert.equal(inHistoryEndAtRange.json?.success, true);
assert.equal(inHistoryEndAtRange.json?.pagination?.total, 1);
assert.equal(inHistoryEndAtRange.json?.data?.[0]?.taskName, '历史任务');
const invalidEndAtStart = await jsonFetch(baseUrl, '/api/admin/tasks/all-stats?endAtStart=not-a-date');
assert.equal(invalidEndAtStart.status, 400);
assert.equal(invalidEndAtStart.json?.success, false);
const invalidPageFallback = await jsonFetch(baseUrl, '/api/admin/tasks/history-stats?page=0&limit=0');
assert.equal(invalidPageFallback.status, 200);
assert.equal(invalidPageFallback.json?.pagination?.page, 1);
@@ -163,4 +213,3 @@ test('管理员任务分页统计接口返回结构正确', async () => {
await new Promise<void>((resolve) => server.close(() => resolve()));
}
});