Files
lupin-demo/tests/multiTextParser.test.ts
2026-01-23 23:20:39 +08:00

37 lines
1.3 KiB
TypeScript

import { describe, it, expect } from 'vitest';
import { splitMultiTextUnits } from '../src/multiTextParser';
describe('multiTextParser', () => {
it('应按布局比例分配角度', () => {
const units = splitMultiTextUnits('甲乙|子|丙丁', 0, 120);
expect(units).toHaveLength(3);
expect(units[0].aStart).toBe(0);
expect(units[0].aEnd).toBe(30);
expect(units[1].aStart).toBe(30);
expect(units[1].aEnd).toBe(90);
expect(units[2].aStart).toBe(90);
expect(units[2].aEnd).toBe(120);
});
it('应识别 SVG 文件并拼接路径', () => {
const units = splitMultiTextUnits('a.svg|b', 0, 60, 'src/assets/icons');
expect(units[0].isSvg).toBe(true);
expect(units[0].svgPath).toBe('src/assets/icons/a.svg');
expect(units[1].isSvg).toBe(false);
});
it('应支持自定义 unitRatios', () => {
const units = splitMultiTextUnits('甲|乙|丙', 0, 100, 'src/assets/icons', [0.2, 0.3, 0.5]);
expect(units[0].aStart).toBe(0);
expect(units[0].aEnd).toBe(20);
expect(units[1].aStart).toBe(20);
expect(units[1].aEnd).toBe(50);
expect(units[2].aStart).toBe(50);
expect(units[2].aEnd).toBe(100);
});
it('空内容应返回空数组', () => {
expect(splitMultiTextUnits('', 0, 60)).toEqual([]);
});
});