@gravity-ui/data-source
Version:
A wrapper around data fetching
43 lines • 1.48 kB
JavaScript
import React from 'react';
import { renderHook } from '@testing-library/react';
import { DataManagerContext, useDataManager } from '../DataManagerContext';
import { jsx as _jsx } from "react/jsx-runtime";
describe('useDataManager', function () {
it('should return dataManager from context', function () {
var mockDataManager = {
invalidateTag: jest.fn(),
invalidateTags: jest.fn(),
invalidateSource: jest.fn(),
resetSource: jest.fn(),
invalidateParams: jest.fn(),
resetParams: jest.fn(),
invalidateSourceTags: jest.fn()
};
var wrapper = function wrapper(_ref) {
var children = _ref.children;
return /*#__PURE__*/_jsx(DataManagerContext.Provider, {
value: mockDataManager,
children: children
});
};
var _renderHook = renderHook(function () {
return useDataManager();
}, {
wrapper: wrapper
}),
result = _renderHook.result;
expect(result.current).toBe(mockDataManager);
});
it('should throw an error when dataManager is not provided', function () {
try {
renderHook(function () {
return useDataManager();
});
} catch (error) {
expect(error).toBeInstanceOf(Error);
// Just to be sure that the error is from the right place
expect(error.message).toBe('DataManager is not provided by context. Use DataManagerContext.Provider to do it');
}
});
});
// #sourceMappingURL=DataManagerContext.test.js.map