@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
35 lines • 1.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const composeHooks_1 = require("../composeHooks");
describe("composeHooks", () => {
it("should compose hooks and merge their results", () => {
const hook1 = (items) => items.map(item => ({ id: item.id, extra: item.id * 2 }));
const hook2 = (items) => items.map(item => ({ ...item, final: item.extra + 1 }));
const composed = (0, composeHooks_1.composeHooks)(hook1, hook2);
const input = [{ 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) => items.map(item => ({ id: item.id, extra: item.id * 2 }));
const hook2 = () => undefined;
const composed = (0, composeHooks_1.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 = (0, composeHooks_1.composeHooks)();
const input = [{ id: 1 }, { id: 2 }];
const result = composed(input);
expect(result).toEqual(input);
});
});
//# sourceMappingURL=composeHooks.test.js.map