@yoroi/portfolio
Version:
The Portfolio package of Yoroi SDK
78 lines • 2.72 kB
JavaScript
import * as React from 'react';
import { Text, View } from 'react-native';
import { render, waitFor } from '@testing-library/react-native';
import { queryClientFixture } from '@yoroi/common';
import { Chain } from '@yoroi/types';
import { tokenDiscoveryMocks } from '../../adapters/token-discovery.mocks';
import { usePortfolioTokenDiscovery } from './usePortfolioTokenDiscovery';
import { wrapperMaker } from '../../fixtures/wrapperMaker';
describe('usePortfolioTokenDiscovery', () => {
let queryClient;
beforeEach(() => {
jest.clearAllMocks();
queryClient = queryClientFixture();
});
afterEach(() => {
queryClient.clear();
});
it('success', async () => {
const mockedGetTokenDiscovery = jest.fn().mockResolvedValue(tokenDiscoveryMocks.apiResponseResult.success);
const TestComponent = () => {
const {
data
} = usePortfolioTokenDiscovery({
id: tokenDiscoveryMocks.nftCryptoKitty.id,
network: Chain.Network.Mainnet,
getTokenDiscovery: mockedGetTokenDiscovery
}, {
suspense: true
});
return /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(Text, {
testID: "data"
}, JSON.stringify(data?.id)));
};
const wrapper = wrapperMaker({
queryClient
});
const {
getByTestId
} = render( /*#__PURE__*/React.createElement(TestComponent, null), {
wrapper
});
await waitFor(() => {
expect(getByTestId('data')).toBeDefined();
});
expect(getByTestId('data').props.children).toEqual(JSON.stringify(tokenDiscoveryMocks.nftCryptoKitty.id));
expect(mockedGetTokenDiscovery).toHaveBeenCalled();
expect(mockedGetTokenDiscovery).toHaveBeenCalledWith(tokenDiscoveryMocks.nftCryptoKitty.id);
});
it('error', async () => {
const mockedGetTokenDiscovery = jest.fn().mockResolvedValue(tokenDiscoveryMocks.apiResponseResult.error);
const TestComponent = () => {
const {
data
} = usePortfolioTokenDiscovery({
id: tokenDiscoveryMocks.nftCryptoKitty.id,
network: Chain.Network.Mainnet,
getTokenDiscovery: mockedGetTokenDiscovery
}, {
suspense: true
});
return /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(Text, {
testID: "data"
}, JSON.stringify(data?.id)));
};
const wrapper = wrapperMaker({
queryClient
});
const {
getByTestId
} = render( /*#__PURE__*/React.createElement(TestComponent, null), {
wrapper
});
await waitFor(() => {
expect(getByTestId('hasError')).toBeDefined();
});
});
});
//# sourceMappingURL=usePortfolioTokenDiscovery.test.js.map