UNPKG

qn-code-msg

Version:

一个用于管理错误码和错误消息映射的轻量级工具库。支持添加、获取、检查、修改和删除错误码及其对应的消息。

116 lines (96 loc) 3.65 kB
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); }); }); });