Files
TanXinandTanXin 4eeb050576 release: 发布 v1.10.0 自定义命令片段库版本 (#93)
合并 `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>
2026-08-20 11:42:28 +08:00

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();
});
});
});