mm-utils
Version:
mm-utils,JavaScript工具包,日常开发工作常用的公共函数库
139 lines (121 loc) • 4.88 kB
JavaScript
// 单元测试:基础处理库
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));
});
});