diff --git a/src/modules/components/member/memberAvatar/memberAvatar.test.tsx b/src/modules/components/member/memberAvatar/memberAvatar.test.tsx
index dd6ea7387..1fe176bcf 100644
--- a/src/modules/components/member/memberAvatar/memberAvatar.test.tsx
+++ b/src/modules/components/member/memberAvatar/memberAvatar.test.tsx
@@ -1,33 +1,25 @@
import { render, screen, waitFor } from '@testing-library/react';
-import { getAddress, isAddress } from 'viem';
+import * as blockies from 'blockies-ts';
+import * as viem from 'viem';
import { normalize } from 'viem/ens';
-import { useEnsAddress, useEnsAvatar, useEnsName } from 'wagmi';
+import * as wagmi from 'wagmi';
import { MemberAvatar, type IMemberAvatarProps } from './memberAvatar';
-jest.mock('viem', () => ({
- isAddress: jest.fn(),
- getAddress: jest.fn(),
-}));
-
-jest.mock('viem/ens', () => ({
- normalize: jest.fn(),
-}));
+describe(' component', () => {
+ const originalGlobalImage = global.Image;
-jest.mock('wagmi', () => ({
- useEnsAddress: jest.fn(),
- useEnsName: jest.fn(),
- useEnsAvatar: jest.fn(),
-}));
+ const useEnsAddressMock = jest.spyOn(wagmi, 'useEnsAddress');
+ const useEnsNameMock = jest.spyOn(wagmi, 'useEnsName');
+ const useEnsAvatarMock = jest.spyOn(wagmi, 'useEnsAvatar');
+ const getAddressMock = jest.spyOn(viem, 'getAddress');
+ const blockiesCreateMock = jest.spyOn(blockies, 'create');
-describe(' component', () => {
const createTestComponent = (props?: Partial) => {
const completeProps: IMemberAvatarProps = { ...props };
return ;
};
- const originalGlobalImage = global.Image;
-
beforeAll(() => {
(window.Image as unknown) = class MockImage {
onload: () => void = () => {};
@@ -45,13 +37,11 @@ describe(' component', () => {
});
beforeEach(() => {
- jest.clearAllMocks();
-
- (isAddress as unknown as jest.Mock).mockImplementation(() => true);
- (getAddress as unknown as jest.Mock).mockImplementation(() => '0x028F5Ca0b3A3A14e44AB8af660B53D1e428457e7');
- (useEnsAddress as jest.Mock).mockReturnValue({ data: null, isLoading: false });
- (useEnsName as jest.Mock).mockReturnValue({ data: null, isLoading: false });
- (useEnsAvatar as jest.Mock).mockReturnValue({ data: null, isLoading: false });
+ useEnsAddressMock.mockReturnValue({ data: null, isLoading: false } as wagmi.UseEnsAddressReturnType);
+ useEnsNameMock.mockReturnValue({ data: null, isLoading: false } as wagmi.UseEnsNameReturnType);
+ useEnsAvatarMock.mockReturnValue({ data: null, isLoading: false } as wagmi.UseEnsAvatarReturnType);
+ getAddressMock.mockImplementation((value) => value as viem.Address);
+ blockiesCreateMock.mockReturnValue({ toDataURL: () => '' } as HTMLCanvasElement);
});
it('displays the avatar directly from avatarSrc prop and ensure no data fetching is attempted', async () => {
@@ -66,26 +56,25 @@ describe(' component', () => {
const ensName = 'vitalik.eth';
const expectedAvatarUrl = 'ensAvatarUrl';
- (useEnsAvatar as jest.Mock).mockReturnValue({ data: expectedAvatarUrl, isLoading: false });
+ useEnsAvatarMock.mockReturnValue({ data: expectedAvatarUrl, isLoading: false } as wagmi.UseEnsAvatarReturnType);
render(createTestComponent({ ensName }));
await waitFor(() => expect(screen.getByRole('img')).toHaveAttribute('src', expectedAvatarUrl));
- expect(useEnsAvatar).toHaveBeenCalledWith(expect.objectContaining({ name: normalize(ensName) }));
+ expect(useEnsAvatarMock).toHaveBeenCalledWith(expect.objectContaining({ name: normalize(ensName) }));
});
it('displays avatar for a valid address and call related hooks with correct parameters', async () => {
const address = '0x028F5Ca0b3A3A14e44AB8af660B53D1e428457e7';
const expectedAvatarUrl = 'addressAvatarUrl';
- (useEnsAvatar as jest.Mock).mockReturnValue({ data: expectedAvatarUrl, isLoading: false });
+ useEnsAvatarMock.mockReturnValue({ data: expectedAvatarUrl, isLoading: false } as wagmi.UseEnsAvatarReturnType);
render(createTestComponent({ address }));
await waitFor(() => expect(screen.getByRole('img')).toHaveAttribute('src', expectedAvatarUrl));
- expect(isAddress).toHaveBeenCalledWith(address);
- expect(useEnsName).toHaveBeenCalledWith(expect.objectContaining({ address }));
+ expect(useEnsNameMock).toHaveBeenCalledWith(expect.objectContaining({ address }));
});
});