import React from 'react';
import { shallow } from 'enzyme';
import { BaseAvatarSize } from '../BaseAvatar';
import NetworkAvatar from './NetworkAvatar';
import { testImageUrl } from './NetworkAvatar.data';
import { NETWORK_AVATAR_IMAGE_ID } from '../../../constants/test-ids';
describe('NetworkAvatar', () => {
it('should render correctly', () => {
const networkName = 'Ethereum';
const wrapper = shallow(
,
);
expect(wrapper).toMatchSnapshot();
});
it('should render network image', () => {
const wrapper = shallow(
,
);
const imageComponent = wrapper.findWhere(
(node) => node.prop('testID') === NETWORK_AVATAR_IMAGE_ID,
);
expect(imageComponent.exists()).toBe(true);
});
it('should render fallback when image fails to load', () => {
const wrapper = shallow(
,
);
const prevImageComponent = wrapper.findWhere(
(node) => node.prop('testID') === NETWORK_AVATAR_IMAGE_ID,
);
// Simulate onError on Image component
prevImageComponent.props().onError({ nativeEvent: { error: 'ERROR!' } });
const currentImageComponent = wrapper.findWhere(
(node) => node.prop('testID') === NETWORK_AVATAR_IMAGE_ID,
);
expect(currentImageComponent.exists()).toBe(false);
});
it('should render fallback when networkImageUrl is not provided', () => {
const wrapper = shallow(
,
);
const imageComponent = wrapper.findWhere(
(node) => node.prop('testID') === NETWORK_AVATAR_IMAGE_ID,
);
expect(imageComponent.exists()).toBe(false);
});
});