import { deepOmit } from './deepOmit'; test('should omit all instances of a given field', () => { const input = { name: 'some-name', color: 'blue', children: { name: 'some-name', color: 'blue', children: { name: 'some-name', color: 'blue', children: { name: 'some-name', color: 'blue', children: {}, }, }, }, }; expect(deepOmit(input, 'name')).toEqual({ color: 'blue', children: { color: 'blue', children: { color: 'blue', children: { color: 'blue', children: {}, }, }, }, }); expect(deepOmit(input, 'color')).toEqual({ name: 'some-name', children: { name: 'some-name', children: { name: 'some-name', children: { name: 'some-name', children: {}, }, }, }, }); }); test('should omit all instances of multiple fields', () => { const input = { name: 'some-name', color: 'blue', children: { name: 'some-name', color: 'blue', children: { name: 'some-name', color: 'blue', children: { name: 'some-name', color: 'blue', children: {}, }, }, }, }; expect(deepOmit(input, 'name', 'color')).toEqual({ children: { children: { children: { children: {}, }, }, }, }); });