diff --git a/libs/accounts/src/lib/accounts-manager.spec.tsx b/libs/accounts/src/lib/accounts-manager.spec.tsx index 8e7cbeb31..d4c0c1e42 100644 --- a/libs/accounts/src/lib/accounts-manager.spec.tsx +++ b/libs/accounts/src/lib/accounts-manager.spec.tsx @@ -1,26 +1,37 @@ -import { act, render, screen, waitFor } from '@testing-library/react'; +import { + act, + getAllByRole, + render, + screen, + waitFor, +} from '@testing-library/react'; import * as helpers from '@vegaprotocol/react-helpers'; -import type { AccountFields } from './accounts-data-provider'; import { AccountManager } from './accounts-manager'; -let mockedUpdate: ({ - delta, - data, -}: { - delta?: never; - data: AccountFields[] | null; -}) => boolean; +const mockedUseDataProvider = jest.fn(); jest.mock('@vegaprotocol/react-helpers', () => ({ ...jest.requireActual('@vegaprotocol/react-helpers'), - useDataProvider: jest.fn((args) => { - mockedUpdate = args.update; - return { - data: [], - }; - }), + useDataProvider: jest.fn(() => mockedUseDataProvider()), })); describe('AccountManager', () => { + beforeEach(() => { + mockedUseDataProvider + .mockImplementationOnce((args) => { + return { + data: [], + }; + }) + .mockImplementationOnce((args) => { + return { + data: [ + { asset: { id: 'a1' }, party: { id: 't1' } }, + { asset: { id: 'a2' }, party: { id: 't2' } }, + ], + }; + }); + }); + it('change partyId should reload data provider', async () => { const { rerender } = render( { }); it('update method should return proper result', async () => { + let rerenderer: (ui: React.ReactElement) => void; await act(() => { - render( + const { rerender } = render( + + ); + rerenderer = rerender; + }); + await waitFor(() => { + expect(screen.getByText('No accounts')).toBeInTheDocument(); + }); + await act(() => { + rerenderer( { /> ); }); - await waitFor(() => { - expect(screen.getByText('No accounts')).toBeInTheDocument(); - }); - await act(() => { - expect(mockedUpdate({ data: [] })).toEqual(true); - expect( - mockedUpdate({ data: [{ party: { id: 't1' } }] as AccountFields[] }) - ).toEqual(false); - expect( - mockedUpdate({ data: [{ party: { id: 't2' } }] as AccountFields[] }) - ).toEqual(true); - expect(mockedUpdate({ data: [] })).toEqual(false); - expect(mockedUpdate({ data: [] })).toEqual(true); + const container = document.querySelector('.ag-center-cols-container'); + await waitFor(() => { + expect(container).toBeInTheDocument(); }); + expect(getAllByRole(container as HTMLDivElement, 'row')).toHaveLength(2); }); }); diff --git a/libs/accounts/src/lib/accounts-manager.tsx b/libs/accounts/src/lib/accounts-manager.tsx index 5077b8d4c..c7f1f434c 100644 --- a/libs/accounts/src/lib/accounts-manager.tsx +++ b/libs/accounts/src/lib/accounts-manager.tsx @@ -42,6 +42,7 @@ export const AccountManager = ({ onClickDeposit={onClickDeposit} onClickWithdraw={onClickWithdraw} isReadOnly={isReadOnly} + noRowsOverlayComponent={() => null} />
{ current: { api: { refreshInfiniteCache: mockRefreshAgGridApi, + getModel: () => ({ getType: () => 'infinite' }), }, } as unknown as AgGridReact, }; diff --git a/libs/orders/src/lib/components/order-list-manager/use-order-list-data.spec.ts b/libs/orders/src/lib/components/order-list-manager/use-order-list-data.spec.ts index efd1ed44f..ea39ab17a 100644 --- a/libs/orders/src/lib/components/order-list-manager/use-order-list-data.spec.ts +++ b/libs/orders/src/lib/components/order-list-manager/use-order-list-data.spec.ts @@ -34,6 +34,7 @@ describe('useOrderListData Hook', () => { current: { api: { refreshInfiniteCache: mockRefreshAgGridApi, + getModel: () => ({ getType: () => 'infinite' }), }, } as unknown as AgGridReact, }; diff --git a/libs/positions/src/lib/use-positions-data.spec.tsx b/libs/positions/src/lib/use-positions-data.spec.tsx index ee40c446c..8de6dcbb2 100644 --- a/libs/positions/src/lib/use-positions-data.spec.tsx +++ b/libs/positions/src/lib/use-positions-data.spec.tsx @@ -69,6 +69,7 @@ describe('usePositionData Hook', () => { api: { refreshInfiniteCache: mockRefreshInfiniteCache, getRowNode: mockGetRowNode, + getModel: () => ({ getType: () => 'infinite' }), }, } as unknown as AgGridReact, };