import { omit, serializeKvReportValue } from '..'; describe('omit', () => { it('works ok in easy cases', () => { expect(omit({ a: 1, b: 2, c: 3 }, ['a', 'b'])).toStrictEqual({ c: 3 }); expect(omit({ a: 1, b: 2, c: 3 }, ['a', 'b', 'c'])).toStrictEqual({}); expect(omit({ a: 1, b: 2, c: 3 }, [])).toStrictEqual({ a: 1, b: 2, c: 3 }); }); it('works ok when provided with unexpected keys', () => { // this won't even pass TS check if not specified with generic expect(omit<{ a: number; b: number; c: number; d?: number }>({ a: 1, b: 2, c: 3 }, ['a', 'b', 'd'])).toStrictEqual({ c: 3, }); // all unexpected keys, got output same as input expect( omit<{ a: number; b: number; c: number; d?: number; e?: number }>({ a: 1, b: 2, c: 3 }, ['d', 'e']), ).toStrictEqual({ a: 1, b: 2, c: 3 }); expect( omit<{ a: number; b: number; c: number; d?: number; e?: number }>({ a: 1, b: 2, c: 3 }, [ 'a', 'b', 'c', 'd', 'e', ]), ).toStrictEqual({}); }); }); describe('serializeKvReportValue', () => { it('works', () => { expect(serializeKvReportValue(['asd,b', 2, null, undefined])).toBe('asd;b,2,,'); expect(serializeKvReportValue([{ a: 1, b: 2 }, 3, [4, 5]])).toBe('{"a":1;"b":2},3,[4;5]'); }); });