33 lines
1.3 KiB
TypeScript
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 调用凭据');
|
|
});
|
|
});
|