qn-code-msg
Version:
一个用于管理错误码和错误消息映射的轻量级工具库。支持添加、获取、检查、修改和删除错误码及其对应的消息。
116 lines (96 loc) • 3.65 kB
JavaScript
import { addCode, getCode, removeCode, hasCode, setCode, getAllCode, errorCodeObject, errorCodeMap } from '../src/index.js';
describe('错误码映射服务测试', () => {
// 在每个测试前重置测试环境
beforeEach(() => {
// 保存原始映射
const originalCodes = new Map(errorCodeMap);
// 清空当前映射
for (const code of errorCodeMap.keys()) {
errorCodeMap.delete(code);
}
// 重新添加默认错误码以测试
errorCodeMap.set(0, '操作成功');
errorCodeMap.set(10000, '服务器错误');
errorCodeMap.set(10001, '客户端错误');
});
describe('添加错误码', () => {
test('应该能添加新的错误码和消息', () => {
addCode(2001, '测试错误');
console.log(errorCodeMap);
expect(getCode(2001)).toBe('测试错误');
});
test('添加已存在的错误码应该覆盖现有消息', () => {
addCode(10000, '新的错误消息');
expect(getCode(10000)).toBe('新的错误消息');
});
test('添加错误码时消息参数为空应该设为空字符串', () => {
addCode(2002);
expect(getCode(2002)).toBe('');
});
});
describe('获取错误码', () => {
test('获取存在的错误码应返回正确消息', () => {
expect(getCode(0)).toBe('操作成功');
});
test('获取不存在的错误码应返回undefined', () => {
expect(getCode(9999)).toBeUndefined();
});
});
describe('检查错误码', () => {
test('检查存在的错误码应返回true', () => {
expect(hasCode(0)).toBe(true);
expect(hasCode(10000)).toBe(true);
});
test('检查不存在的错误码应返回false', () => {
expect(hasCode(9999)).toBe(false);
});
});
describe('设置错误码', () => {
test('设置已存在的错误码应更新其消息', () => {
setCode(0, '操作已完成');
expect(getCode(0)).toBe('操作已完成');
});
test('设置不存在的错误码应添加新错误码', () => {
setCode(3001, '新错误');
expect(getCode(3001)).toBe('新错误');
});
test('设置错误码时消息参数为空应该设为空字符串', () => {
setCode(3002);
expect(getCode(3002)).toBe('');
});
});
describe('删除错误码', () => {
test('删除存在的错误码应从映射中移除', () => {
removeCode(10000);
expect(hasCode(10000)).toBe(false);
});
test('删除不存在的错误码不应抛出错误', () => {
expect(() => removeCode(9999)).not.toThrow();
});
});
describe('获取所有错误码', () => {
test('应返回完整的错误码映射', () => {
const allCodes = getAllCode();
expect(allCodes).toBeInstanceOf(Map);
expect(allCodes.size).toBe(3); // 默认添加了3个错误码
expect(allCodes.get(0)).toBe('操作成功');
expect(allCodes.get(10000)).toBe('服务器错误');
});
});
describe('错误码转对象', () => {
test('应将Map转换为普通JavaScript对象', () => {
const obj = errorCodeObject();
expect(typeof obj).toBe('object');
expect(obj[0]).toBe('操作成功');
expect(obj[10000]).toBe('服务器错误');
});
test('空映射应返回空对象', () => {
// 清空映射
for (const code of errorCodeMap.keys()) {
errorCodeMap.delete(code);
}
const obj = errorCodeObject();
expect(Object.keys(obj).length).toBe(0);
});
});
});