dbl-utils
Version:
Utilities for dbl, adba and others projects
1 lines • 7.47 kB
Source Map (JSON)
{"file":"/home/diablo/dev/dbl-utils/__tests__/object-mutation.test.ts","mappings":"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","names":[],"sources":["/home/diablo/dev/dbl-utils/__tests__/object-mutation.test.ts"],"sourcesContent":["import { deepMerge, mergeWithMutation, transformJson } from '../src/object-mutation';\n\ndescribe('object-mutation module', () => {\n describe('deepMerge and setConfig', () => {\n it('should merge nested objects', () => {\n const target = { a: { b: 1 } };\n const result = deepMerge(target, { a: { c: 2 } });\n expect(result.a.b).toBe(1);\n expect(result.a.c).toBe(2);\n });\n\n it('should use fix function when configured', () => {\n deepMerge.setConfig({\n fix: (t, s) => ({ replaced: true })\n });\n const result = deepMerge({ x: 1 }, { y: 2 });\n expect(result).toEqual({ replaced: true });\n });\n });\n\n describe('mergeWithMutation', () => {\n it('should apply mutation and merge results recursively', async () => {\n const target = { a: { val: 1 } };\n const mutation = jest.fn(async (key, value, data) => {\n if (key === 'a') return { added: data };\n return null;\n });\n const result = await mergeWithMutation(target, { mutation, data: 'test' });\n expect(result.a.val).toBe(1);\n expect(result.a.added).toBe('test');\n expect(mutation).toHaveBeenCalled();\n });\n });\n\n describe('transformJson', () => {\n const json = { x: 1, nested: { y: 2, skip: 3 } };\n\n it('should flatten json until filter as string', () => {\n const [modified, flattened] = transformJson(json, { filter: 'skip' });\n expect(flattened).toHaveProperty('nested.skip', 3);\n });\n\n it('should flatten json until filter as array', () => {\n const [, flattened] = transformJson(json, { filter: ['y'] });\n expect(flattened).toHaveProperty('nested.y', 2);\n });\n\n it('should filter entries by function', () => {\n const [, flattened] = transformJson(json, { filter: ({ key }) => key !== 'y' });\n expect(flattened).not.toHaveProperty('nested.y');\n });\n\n it('should apply beforeFunc mutation', () => {\n const before = jest.fn(({ input }) => ({ replace: 'replaced' }));\n const [modified] = transformJson({ a: { v: 1 } }, { beforeFunc: before });\n expect(modified.a).toBe('replaced');\n expect(before).toHaveBeenCalled();\n });\n\n it('should apply duringFunc mutation', () => {\n const during = jest.fn(({ input }) => ({ delete: true }));\n const [modified] = transformJson({ a: { v: 1 } }, { duringFunc: during });\n expect(modified).toEqual({});\n });\n\n it('should apply afterFunc mutation', () => {\n const after = jest.fn(({ path }) => ({ delete: true }));\n const [, root] = transformJson(\n { a: { b: 1 } },\n { key: 'root', root: {}, afterFunc: after }\n );\n expect(root).toEqual({});\n expect(after).toHaveBeenCalled();\n });\n\n it('should apply nonObjectFunc mutation', () => {\n const nonObj = jest.fn(({ input }) => ({ merge: '_s' }));\n const [modified, flattened] = transformJson({ a: 'val' }, { nonObjectFunc: nonObj });\n expect(modified.a).toBe('val_s');\n expect(flattened).toHaveProperty('a', 'val');\n });\n });\n});\n"],"version":3}