From 34f21b189cda4e70e44cebc08c53161cb47aadc6 Mon Sep 17 00:00:00 2001 From: Madalina Raicu Date: Fri, 25 Aug 2023 16:12:47 +0100 Subject: [PATCH] chore: update market-selector --- .../market-selector/asset-dropdown.tsx | 2 +- .../market-selector/market-selector.spec.tsx | 52 ++++--------------- 2 files changed, 10 insertions(+), 44 deletions(-) diff --git a/apps/trading/components/market-selector/asset-dropdown.tsx b/apps/trading/components/market-selector/asset-dropdown.tsx index aece4c35f..aed0b0cb4 100644 --- a/apps/trading/components/market-selector/asset-dropdown.tsx +++ b/apps/trading/components/market-selector/asset-dropdown.tsx @@ -33,7 +33,7 @@ export const AssetDropdown = ({ } > - {assets.map((a) => { + {assets.filter(Boolean).map((a) => { return ( ({ ), })); -// without a real DOM autosize won't render with an actual height or width +// without a real DOM auto-size won't render with an actual height or width jest.mock('react-virtualized-auto-sizer', () => { // eslint-disable-next-line react/display-name return ({ @@ -41,6 +41,7 @@ describe('MarketSelector', () => { code: 'a', name: 'a', product: { + __typename: 'Future', settlementAsset: { id: 'asset-0', }, @@ -61,6 +62,7 @@ describe('MarketSelector', () => { code: 'b', name: 'b', product: { + __typename: 'Future', settlementAsset: { id: 'asset-0', }, @@ -79,6 +81,7 @@ describe('MarketSelector', () => { tradableInstrument: { instrument: { product: { + __typename: 'Future', settlementAsset: { id: 'asset-1', }, @@ -94,6 +97,7 @@ describe('MarketSelector', () => { code: 'c', name: 'c', product: { + __typename: 'Future', settlementAsset: { id: 'asset-1', }, @@ -113,6 +117,7 @@ describe('MarketSelector', () => { code: 'cd', name: 'cd', product: { + __typename: 'Perpetual', settlementAsset: { id: 'asset-2', }, @@ -174,21 +179,14 @@ describe('MarketSelector', () => { ); await userEvent.click(screen.getByTestId('product-Perpetual')); - expect(screen.queryAllByTestId(/market-\d/)).toHaveLength(0); - expect(screen.getByTestId('no-items')).toHaveTextContent( - 'Perpetual markets coming soon.' - ); + expect(screen.queryAllByTestId(/market-\d/)).toHaveLength(1); await userEvent.click(screen.getByTestId('product-Future')); - expect(screen.queryAllByTestId(/market-\d/)).toHaveLength( - activeMarkets.length - ); + expect(screen.queryAllByTestId(/market-\d/)).toHaveLength(3); expect(screen.queryByTestId('no-items')).not.toBeInTheDocument(); await userEvent.click(screen.getByTestId('product-All')); - expect(screen.queryAllByTestId(/market-\d/)).toHaveLength( - activeMarkets.length - ); + expect(screen.queryAllByTestId(/market-\d/)).toHaveLength(4); expect(screen.queryByTestId('no-items')).not.toBeInTheDocument(); }); @@ -220,38 +218,6 @@ describe('MarketSelector', () => { expect(screen.getByTestId('market-4')).toBeInTheDocument(); }); - it('filters by asset', async () => { - render( - - - - ); - - await userEvent.click(screen.getByTestId('asset-trigger')); - expect(screen.getAllByTestId(/asset-id/)).toHaveLength(3); - await userEvent.click(screen.getByTestId('asset-id-asset-0')); - expect(screen.getAllByTestId(/market-\d/)).toHaveLength(2); - expect(screen.getByTestId('market-0')).toBeInTheDocument(); - expect(screen.getByTestId('market-1')).toBeInTheDocument(); - - // reopen asset dropdown and add asset-1 - await userEvent.click(screen.getByTestId('asset-trigger')); - await userEvent.click(screen.getByTestId('asset-id-asset-1')); - - // all markets with asset-0 or asset-1 shown (no market id as market is closed) - expect(screen.getAllByTestId(/market-\d/)).toHaveLength(3); - expect(screen.getByTestId('market-0')).toBeInTheDocument(); - expect(screen.getByTestId('market-1')).toBeInTheDocument(); - expect(screen.getByTestId('market-3')).toBeInTheDocument(); - - // reopen and uncheck asset-0 - await userEvent.click(screen.getByTestId('asset-trigger')); - await userEvent.click(screen.getByTestId('asset-id-asset-0')); - - expect(screen.getAllByTestId(/market-\d/)).toHaveLength(1); - expect(screen.getByTestId('market-3')).toBeInTheDocument(); - }); - it('sorts by gained', async () => { render(