UNPKG

@rocketmakers/api-swr

Version:

Rocketmakers front-end library for parsing a generated Typescript API client into a set of configurable React hooks for fetching and mutating data.

34 lines (33 loc) 1.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const react_1 = require("@testing-library/react"); const useClearCache_1 = require("./useClearCache"); // key getter const keyGetter = jest.fn().mockReturnValue(['key-1', 'key-2', 'key-3']); // mutate const mutate = jest.fn(); // Mock SWR jest.mock('swr', () => { const actual = jest.requireActual('swr'); return Object.assign(Object.assign({}, actual), { useSWRConfig: jest.fn(() => ({ cache: { keys: keyGetter, get: jest.fn(), set: jest.fn(), delete: jest.fn(), }, mutate, })) }); }); describe('useClearCache', () => { it('should provide a function to clear the SWR cache when executed', () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { mutate.mockClear(); const { result } = (0, react_1.renderHook)(() => (0, useClearCache_1.useClearCache)()); yield result.current(); expect(mutate).toHaveBeenCalledTimes(3); expect(mutate).toHaveBeenCalledWith('key-1', undefined, { revalidate: false }); expect(mutate).toHaveBeenCalledWith('key-2', undefined, { revalidate: false }); expect(mutate).toHaveBeenCalledWith('key-3', undefined, { revalidate: false }); })); });