UNPKG

mm-utils

Version:

mm-utils,JavaScript工具包,日常开发工作常用的公共函数库

139 lines (121 loc) 4.88 kB
// 单元测试:基础处理库 import common from '../src/common' describe("common:基础处理库", function () { test("deepClone:深复制", () => { let source1 = [{ a: 100 }, [{ b: 200 }]]; let source2 = [{ a: { c: { d: 100 } } }, [{ b: 200 }]]; let target1 = [{ a: 100 }, [{ b: 200 }]]; let target2 = [{ a: { c: { d: 100 } } }, [{ b: 200 }]]; expect(common.deepClone(source1)).toStrictEqual(target1); //普通拷贝 expect(common.deepClone(source2)).toStrictEqual(target2); //数组多层嵌套拷贝 }); test("uniqArray:数组去重", () => { let source1 = [ { id: 1, name: "小明" }, { id: 2, name: "小红" }, { id: 3, name: "小华" }, { id: 1, name: "小小" }, { id: 2, name: "小号" }, { id: 3, name: "小的" }, ]; let source2 = [ { id: 1, name: "小明" }, { id: 2, name: "小红" }, { id: 3, name: "小华" }, { id: 1, name: "小小" }, { id: 2, name: "小号" }, { id: { id: 4, name: "小天" } }, { id: { id: 4, name: "小语文" } }, ]; let target1 = [ { id: 1, name: "小明" }, { id: 2, name: "小红" }, { id: 3, name: "小华" }, ]; let target2 = [ { id: 1, name: "小明" }, { id: 2, name: "小红" }, { id: 3, name: "小华" }, { id: { id: 4, name: "小天" } }, ]; expect(common.uniqArray(source1)).toStrictEqual(target1); //普通数组去重 expect(common.uniqArray(source2)).toStrictEqual(target2); //多层嵌套数组去重 }); test("getObjectValue:通过索引字符串取值", () => { let source1 = { name: "Yoi", age: 18 }; let source2 = { name: { chinese: { chineseName: "Yoi", age: 18 } } }; let target1 = "Yoi"; let target2 = 18; expect(common.getObjectValue(source1, "name")).toBe(target1); //普通取值 expect(common.getObjectValue(source2, "name.chinese.age")).toBe(target2); //嵌套取值 }); test("objectFilter:通过props集合筛选对象。示例:objectFilter({a:100, b:200, c:300},['b','c']) return {b:200, c:300}", () => { let source1 = { a: 100, b: 200, c: 300 }; let target = { b: 200, c: 300 }; expect(common.objectFilter(source1, ["b", "c"])).toStrictEqual(target); }); test("isEmpty:判断对象是否为空", () => { let source1 = {}; let source2 = []; let source3 = { name: "Yoi" }; let source4 = [{ name: "Yoi" }, { age: 18 }]; expect(common.isEmpty(source1)).toBe(true); expect(common.isEmpty(source2)).toBe(true); expect(common.isEmpty(source3)).toBe(false); expect(common.isEmpty(source4)).toBe(false); }); test("isObject:判断是否为对象类型", () => { let source1 = { name: "Yoi" }; let source2 = "Yoi"; expect(common.isObject(source1)).toBe(true); expect(common.isObject(source2)).toBe(false); }); test("isArray:判断是否为数组对象", () => { let source1 = [{ name: "Yoi" }, { name: "Ella" }]; let source2 = "Yoi"; expect(common.isArray(source1)).toBe(true); expect(common.isArray(source2)).toBe(false); }); test("isUndefined:判断是否为undefined", () => { let source1 = undefined; let source2 = 123456; expect(common.isUndefined(source1)).toBe(true); expect(common.isUndefined(source2)).toBe(false); }); test("parseJson:将字符串转对象", () => { let source = '[{"name":"xiao","age":12},{"name":"ming","age":13}]'; let target = [{ name: "xiao", age: 12 },{ name: "ming", age: 13 }]; expect(common.parseJson(source)).toStrictEqual(target); }); test("getErrorMessage:获取错误信息", () => { let source = { msg: "401,错误信息" }; let target = "401,错误信息"; expect(common.getErrorMessage(source)).toBe(target); }); test("delayCall:延迟执行函数", () => { //在控制台测试过OK // let source = () => {console.log(7777777)} // expect(common.delayCall(source,3000)).toBe(""); }); test("fen2yuan:人民币单位分转元。示例:fen2Yuan(1200000) => 12,000.00", () => { let source1 = -1200000222.22; let source2 = 1200000222.22; let target1 = "-12,000,002.22"; let target2 = "12,000,002.22"; expect(common.fen2yuan(source1)).toBe(target1); expect(common.fen2yuan(source2)).toBe(target2); }); test("groupPhone:手机号码分组。示例:13934235567 => 139 3423 5567", () => { let source = "13934235567"; let target = "139 3423 5567"; expect(common.groupPhone(source)).toBe(target); }); test("formatCarNumber:格式化车牌号码。示例:粤XAA789 =》 粤X.AA789", () => { let source = "粤xaa789"; expect(common.formatCarNumber(source)).toBe("粤X.AA789"); }); test("getUuid:获取唯一标识符", () => { //数据过于复杂,无法用匹配器检测 expect(common.getUuid(10)); }); });