axios-miniprogram/test/helpers/deepMerge.test.ts

57 lines
1.0 KiB
TypeScript
Raw Permalink Normal View History

import { describe, test, expect } from 'vitest';
2023-04-10 22:53:15 +08:00
import { deepMerge } from '@/helpers/deepMerge';
describe('src/helpers/deepMerge.ts', () => {
test('应该支持空参数', () => {
2023-04-03 21:03:33 +08:00
const o = {
v1: 1,
v2: [1],
v3: { v: 'v3' },
v4: undefined,
v5: null,
v6: 'v6',
2023-04-03 21:03:33 +08:00
};
expect(deepMerge()).toEqual({});
2023-04-28 15:35:54 +08:00
expect(deepMerge(undefined, undefined, undefined)).toEqual({});
2023-04-03 21:03:33 +08:00
expect(deepMerge(o)).toEqual(o);
});
test('应该进行合并', () => {
2023-04-03 21:03:33 +08:00
const o1 = {
v1: 1,
2023-04-03 21:03:33 +08:00
v2: 2,
v3: 3,
};
const o2 = {
v2: 22,
v3: undefined,
v4: 4,
2023-04-03 21:03:33 +08:00
};
expect(deepMerge<AnyObject>(o1, o2)).toEqual({
...o1,
...o2,
});
});
test('应该合并对象里的对象', () => {
2023-04-03 21:03:33 +08:00
const o1 = {
v1: { v: 1 },
v2: { v: 2 },
v3: 3,
};
const o2 = {
v1: { vv: 11 },
v2: 2,
v3: { v: 3 },
};
expect(deepMerge<AnyObject>(o1, o2)).toEqual({
v1: { v: 1, vv: 11 },
v2: 2,
v3: { v: 3 },
});
});
});