UNPKG

@ledgerhq/live-common

Version:
47 lines (35 loc) 1.43 kB
import { composeHooks } from "../composeHooks"; describe("composeHooks", () => { it("should compose hooks and merge their results", () => { const hook1 = (items: Array<{ id: number }>) => items.map(item => ({ id: item.id, extra: item.id * 2 })); const hook2 = (items: Array<{ id: number; extra: number }>) => items.map(item => ({ ...item, final: item.extra + 1 })); const composed = composeHooks(hook1, hook2); const input: Array<{ id: number }> = [{ id: 1 }, { id: 2 }]; const processedInput = input.map(item => ({ id: item.id, extra: item.id * 2 })); const result = composed(processedInput); expect(result).toEqual([ { id: 1, extra: 2, final: 3 }, { id: 2, extra: 4, final: 5 }, ]); }); it("should handle hooks that return undefined", () => { const hook1 = (items: Array<{ id: number }>) => items.map(item => ({ id: item.id, extra: item.id * 2 })); const hook2 = () => undefined; const composed = composeHooks(hook1, hook2); const input = [{ id: 1 }, { id: 2 }]; const result = composed(input); expect(result).toEqual([ { id: 1, extra: 2 }, { id: 2, extra: 4 }, ]); }); it("should return the original items if no hooks are provided", () => { const composed = composeHooks(); const input = [{ id: 1 }, { id: 2 }]; const result = composed(input); expect(result).toEqual(input); }); });