Files
NianToB/tests/unit/setup-initialization.test.ts

33 lines
1.3 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import {
calculateInitializationProgress,
describeInitializationFailure,
mapInitializationSteps,
type InitializationResult,
} from '@/pages/Setup/initialization';
describe('setup initialization mapping', () => {
it('keeps pending steps pending when initialization stops early', () => {
const result: InitializationResult = {
initialized: false,
steps: [
{ id: 'runtime', label: '安装运行环境', status: 'success', message: '/tmp/runtime' },
{ id: 'workspace', label: '准备本地工作区', status: 'success', message: '本地工作区已准备' },
{ id: 'model', label: '写入模型 API 配置', status: 'error', message: '当前安装包未包含模型 API 调用凭据' },
{ id: 'python', label: '准备文档处理环境', status: 'pending' },
],
};
const states = mapInitializationSteps(result.steps);
expect(states.map((step) => [step.id, step.status])).toEqual([
['runtime', 'completed'],
['workspace', 'completed'],
['model', 'failed'],
['python', 'pending'],
]);
expect(calculateInitializationProgress(states)).toBe(50);
expect(describeInitializationFailure(result)).toContain('写入模型 API 配置:当前安装包未包含模型 API 调用凭据');
});
});