1import { memoize, guardAsync } from '../fn'; 2 3describe(memoize, () => { 4 it(`memoizes`, () => { 5 const fn = jest.fn(() => 'd'); 6 const memoized = memoize(fn); 7 expect(memoized()).toEqual('d'); 8 expect(memoized()).toEqual('d'); 9 expect(memoized()).toEqual('d'); 10 expect(fn).toHaveBeenCalledTimes(1); 11 }); 12}); 13 14describe(guardAsync, () => { 15 it(`guards async function`, async () => { 16 const fn = jest.fn(async () => 'd'); 17 const guard = guardAsync(fn); 18 expect(await guard()).toEqual('d'); 19 expect(await guard()).toEqual('d'); 20 expect(await guard()).toEqual('d'); 21 expect(fn).toHaveBeenCalledTimes(1); 22 }); 23}); 24