合并 `test` 的 v1.10.0 提交到 `main`。 **包含提交** - `28c9433` feat: 添加自定义命令片段库 - `9aa2e80` release: 发布 v1.10.0 自定义命令片段库版本 **关联** - Related to #90 > 本 PR 仅关联 #90,不自动关闭该 Issue。 **验证** - `pnpm run typecheck` 0 错 - `pnpm test` 47/47 603/603 通过 - `pnpm run build:frontend` 成功 --------- Co-authored-by: TanXin <tanxin@example.com>
87 lines
2.2 KiB
TypeScript
87 lines
2.2 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
import { normalizeTerminalSize } from '../src/types';
|
|
|
|
describe('Types', () => {
|
|
describe('normalizeTerminalSize', () => {
|
|
it('should return valid terminal size', () => {
|
|
const result = normalizeTerminalSize(80, 24);
|
|
|
|
expect(result).not.toBeNull();
|
|
expect(result!.cols).toBe(80);
|
|
expect(result!.rows).toBe(24);
|
|
});
|
|
|
|
it('should floor decimal values', () => {
|
|
const result = normalizeTerminalSize(80.5, 24.7);
|
|
|
|
expect(result).not.toBeNull();
|
|
expect(result!.cols).toBe(80);
|
|
expect(result!.rows).toBe(24);
|
|
});
|
|
|
|
it('should reject cols too small', () => {
|
|
const result = normalizeTerminalSize(5, 24);
|
|
|
|
expect(result).toBeNull();
|
|
});
|
|
|
|
it('should reject cols too large', () => {
|
|
const result = normalizeTerminalSize(2001, 24);
|
|
|
|
expect(result).toBeNull();
|
|
});
|
|
|
|
it('should reject rows too small', () => {
|
|
const result = normalizeTerminalSize(80, 2);
|
|
|
|
expect(result).toBeNull();
|
|
});
|
|
|
|
it('should reject rows too large', () => {
|
|
const result = normalizeTerminalSize(80, 2001);
|
|
|
|
expect(result).toBeNull();
|
|
});
|
|
|
|
it('should accept minimum valid values', () => {
|
|
const result = normalizeTerminalSize(10, 5);
|
|
|
|
expect(result).not.toBeNull();
|
|
expect(result!.cols).toBe(10);
|
|
expect(result!.rows).toBe(5);
|
|
});
|
|
|
|
it('should accept maximum valid values', () => {
|
|
const result = normalizeTerminalSize(2000, 2000);
|
|
|
|
expect(result).not.toBeNull();
|
|
expect(result!.cols).toBe(2000);
|
|
expect(result!.rows).toBe(2000);
|
|
});
|
|
|
|
it('should reject non-number cols', () => {
|
|
const result = normalizeTerminalSize('80', 24);
|
|
|
|
expect(result).toBeNull();
|
|
});
|
|
|
|
it('should reject non-number rows', () => {
|
|
const result = normalizeTerminalSize(80, '24');
|
|
|
|
expect(result).toBeNull();
|
|
});
|
|
|
|
it('should reject NaN', () => {
|
|
const result = normalizeTerminalSize(NaN, 24);
|
|
|
|
expect(result).toBeNull();
|
|
});
|
|
|
|
it('should reject Infinity', () => {
|
|
const result = normalizeTerminalSize(Infinity, 24);
|
|
|
|
expect(result).toBeNull();
|
|
});
|
|
});
|
|
});
|