@yoroi/common
Version:
The Common package of Yoroi SDK
49 lines (48 loc) • 2.26 kB
JavaScript
;
var _useMutationWithInvalidations = require("./useMutationWithInvalidations");
var _reactQuery = require("react-query");
var _react = _interopRequireDefault(require("react"));
var _reactNative = require("@testing-library/react-native");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
const mutationFn = () => Promise.resolve(true);
describe('useMutationWithInvalidations', () => {
it('should cancel and invalidate queries', async () => {
const queries = ['query1', 'query2'];
const client = getMockedQueryClient();
const wrapper = props => /*#__PURE__*/_react.default.createElement(_reactQuery.QueryClientProvider, _extends({}, props, {
client: client
}));
const {
result
} = (0, _reactNative.renderHook)(() => (0, _useMutationWithInvalidations.useMutationWithInvalidations)({
mutationFn,
invalidateQueries: queries
}), {
wrapper
});
await (0, _reactNative.act)(async () => {
result.current.mutate(undefined);
});
await (0, _reactNative.waitFor)(() => result.current.isSuccess);
expect(client.cancelQueries).toHaveBeenCalledTimes(2);
expect(client.cancelQueries).toHaveBeenNthCalledWith(1, queries[0]);
expect(client.cancelQueries).toHaveBeenNthCalledWith(2, queries[1]);
expect(client.invalidateQueries).toHaveBeenCalledTimes(2);
expect(client.invalidateQueries).toHaveBeenNthCalledWith(1, queries[0]);
expect(client.invalidateQueries).toHaveBeenNthCalledWith(2, queries[1]);
});
});
const getMockedQueryClient = () => {
const queryClient = new _reactQuery.QueryClient();
queryClient.cancelQueries = jest.fn();
queryClient.invalidateQueries = jest.fn();
queryClient.setDefaultOptions({
queries: {
cacheTime: 0,
retry: false
}
});
return queryClient;
};
//# sourceMappingURL=useMutationWithInvalidations.test.js.map