@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
JavaScript
;
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 });
}));
});