- Bug修复: formatChangeStatus 使用实际配置而非 defaultConfig - 统一 assembler 中所有错误抛出为 CommandError - 提取 writeIfChanged 到 adapters/utils.ts,消除 claude-code/opencode 重复代码 - 导出 SUPPORTED_TOOLS,cli.ts update 命令复用同一工具注册表 - 提取 mapError/mapCacError 函数,支持单元测试 - 补充 claude-code 适配器测试(10 个用例) - 补充 validateChangeName、formatChangeStatus、suggestNextStep、mapError 单元测试(18 个用例) - 共新增 3 个测试文件,测试从 96 增至 133,全部通过
38 lines
1.2 KiB
TypeScript
38 lines
1.2 KiB
TypeScript
import { describe, it, expect } from "bun:test";
|
|
import { validateChangeName } from "../../src/cli.ts";
|
|
import { CommandError } from "../../src/cli/errors.ts";
|
|
|
|
describe("validateChangeName", () => {
|
|
it("英文名通过", () => {
|
|
expect(() => validateChangeName("user-auth")).not.toThrow();
|
|
expect(() => validateChangeName("addLogin")).not.toThrow();
|
|
});
|
|
|
|
it("中文名通过", () => {
|
|
expect(() => validateChangeName("用户登录")).not.toThrow();
|
|
expect(() => validateChangeName("修复内存泄漏")).not.toThrow();
|
|
});
|
|
|
|
it("中英混合通过", () => {
|
|
expect(() => validateChangeName("用户-login")).not.toThrow();
|
|
});
|
|
|
|
it("空格不通过", () => {
|
|
expect(() => validateChangeName("my change")).toThrow(CommandError);
|
|
});
|
|
|
|
it("下划线不通过", () => {
|
|
expect(() => validateChangeName("my_change")).toThrow(CommandError);
|
|
});
|
|
|
|
it("特殊符号不通过", () => {
|
|
expect(() => validateChangeName("my-change!")).toThrow(CommandError);
|
|
expect(() => validateChangeName("my.change")).toThrow(CommandError);
|
|
expect(() => validateChangeName("my@change")).toThrow(CommandError);
|
|
});
|
|
|
|
it("空字符串不通过", () => {
|
|
expect(() => validateChangeName("")).toThrow(CommandError);
|
|
});
|
|
});
|