@@ -2143,7 +2143,7 @@ describe('PerpsMarketDetailsView', () => {
21432143 await act ( async ( ) => {
21442144 fireEvent . press (
21452145 getByTestId (
2146- ` ${ PerpsMarketDetailsViewSelectorsIDs . HEADER } -fullscreen-button` ,
2146+ PerpsMarketDetailsViewSelectorsIDs . FULLSCREEN_CHART_BUTTON ,
21472147 ) ,
21482148 ) ;
21492149 } ) ;
@@ -3493,7 +3493,7 @@ describe('PerpsMarketDetailsView', () => {
34933493
34943494 // Press fullscreen button
34953495 const fullscreenButton = getByTestId (
3496- 'perps-market-header-fullscreen-button' ,
3496+ PerpsMarketDetailsViewSelectorsIDs . FULLSCREEN_CHART_BUTTON ,
34973497 ) ;
34983498 fireEvent . press ( fullscreenButton ) ;
34993499
@@ -3517,7 +3517,7 @@ describe('PerpsMarketDetailsView', () => {
35173517
35183518 // Open the modal first
35193519 const fullscreenButton = getByTestId (
3520- 'perps-market-header-fullscreen-button' ,
3520+ PerpsMarketDetailsViewSelectorsIDs . FULLSCREEN_CHART_BUTTON ,
35213521 ) ;
35223522 fireEvent . press ( fullscreenButton ) ;
35233523
@@ -3550,7 +3550,7 @@ describe('PerpsMarketDetailsView', () => {
35503550
35513551 // Open the modal
35523552 const fullscreenButton = getByTestId (
3553- 'perps-market-header-fullscreen-button' ,
3553+ PerpsMarketDetailsViewSelectorsIDs . FULLSCREEN_CHART_BUTTON ,
35543554 ) ;
35553555 fireEvent . press ( fullscreenButton ) ;
35563556
@@ -3615,9 +3615,7 @@ describe('PerpsMarketDetailsView', () => {
36153615 ) ;
36163616
36173617 fireEvent . press (
3618- getByTestId (
3619- `${ PerpsMarketDetailsViewSelectorsIDs . HEADER } -fullscreen-button` ,
3620- ) ,
3618+ getByTestId ( PerpsMarketDetailsViewSelectorsIDs . FULLSCREEN_CHART_BUTTON ) ,
36213619 ) ;
36223620
36233621 await waitFor ( ( ) => {
@@ -3640,8 +3638,8 @@ describe('PerpsMarketDetailsView', () => {
36403638 } ) ;
36413639 } ) ;
36423640
3643- describe ( 'Category search shortcut' , ( ) => {
3644- it ( 'navigates to market list without filters when search button is pressed' , ( ) => {
3641+ describe ( 'Market list shortcut' , ( ) => {
3642+ it ( 'navigates to market list without filters when the market list button is pressed' , ( ) => {
36453643 const { getByTestId } = renderWithProvider (
36463644 < PerpsConnectionProvider >
36473645 < PerpsMarketDetailsView />
@@ -3651,15 +3649,50 @@ describe('PerpsMarketDetailsView', () => {
36513649 } ,
36523650 ) ;
36533651
3654- const searchButton = getByTestId (
3655- 'perps-market-header-category-search-button' ,
3652+ const marketListButton = getByTestId (
3653+ PerpsMarketHeaderSelectorsIDs . MARKET_LIST_BUTTON ,
36563654 ) ;
3657- fireEvent . press ( searchButton ) ;
3655+ fireEvent . press ( marketListButton ) ;
36583656
36593657 expect ( mockNavigateToMarketList ) . toHaveBeenCalledWith ( {
3660- source : 'magnifying_glass ' ,
3658+ source : 'perp_asset_screen ' ,
36613659 } ) ;
36623660 } ) ;
3661+
3662+ it ( 'tracks the market list button click with the correct analytics values' , ( ) => {
3663+ const mockTrack = jest . fn ( ) ;
3664+ const { usePerpsEventTracking : mockUsePerpsEventTrackingFn } =
3665+ jest . requireMock ( '../../hooks/usePerpsEventTracking' ) ;
3666+ mockUsePerpsEventTrackingFn . mockImplementation ( ( ) => ( {
3667+ track : mockTrack ,
3668+ } ) ) ;
3669+
3670+ const { getByTestId } = renderWithProvider (
3671+ < PerpsConnectionProvider >
3672+ < PerpsMarketDetailsView />
3673+ </ PerpsConnectionProvider > ,
3674+ {
3675+ state : initialState ,
3676+ } ,
3677+ ) ;
3678+
3679+ fireEvent . press (
3680+ getByTestId ( PerpsMarketHeaderSelectorsIDs . MARKET_LIST_BUTTON ) ,
3681+ ) ;
3682+
3683+ expect ( mockTrack ) . toHaveBeenCalledWith (
3684+ MetaMetricsEvents . PERPS_UI_INTERACTION ,
3685+ expect . objectContaining ( {
3686+ [ PERPS_EVENT_PROPERTY . INTERACTION_TYPE ] :
3687+ PERPS_EVENT_VALUE . INTERACTION_TYPE . BUTTON_CLICKED ,
3688+ [ PERPS_EVENT_PROPERTY . BUTTON_CLICKED ] :
3689+ PERPS_EVENT_VALUE . BUTTON_CLICKED . MARKET_LIST ,
3690+ [ PERPS_EVENT_PROPERTY . BUTTON_LOCATION ] :
3691+ PERPS_EVENT_VALUE . BUTTON_LOCATION . PERP_MARKET_DETAILS ,
3692+ [ PERPS_EVENT_PROPERTY . ASSET ] : 'BTC' ,
3693+ } ) ,
3694+ ) ;
3695+ } ) ;
36633696 } ) ;
36643697
36653698 describe ( 'Position opened timestamp' , ( ) => {
@@ -4613,7 +4646,9 @@ describe('PerpsMarketDetailsView', () => {
46134646
46144647 // Should show the route market's leverage badge
46154648 expect ( getByText ( '25x' ) ) . toBeOnTheScreen ( ) ;
4616- expect ( getAllByText ( 'ETH-USD' ) . length ) . toBeGreaterThanOrEqual ( 1 ) ;
4649+ // Header shows the full asset name and the market pair subtitle
4650+ expect ( getByText ( 'Ethereum' ) ) . toBeOnTheScreen ( ) ;
4651+ expect ( getAllByText ( 'ETH-USD perp' ) . length ) . toBeGreaterThanOrEqual ( 1 ) ;
46174652 } ) ;
46184653
46194654 it ( 'enriches market data when route maxLeverage is unformatted' , async ( ) => {
@@ -4820,7 +4855,8 @@ describe('PerpsMarketDetailsView', () => {
48204855
48214856 // Verify the header renders with correct market symbol
48224857 expect ( getByTestId ( 'perps-market-header' ) ) . toBeOnTheScreen ( ) ;
4823- expect ( getAllByText ( 'BTC-USD' ) . length ) . toBeGreaterThanOrEqual ( 1 ) ;
4858+ expect ( getByText ( 'Bitcoin' ) ) . toBeOnTheScreen ( ) ;
4859+ expect ( getAllByText ( 'BTC-USD perp' ) . length ) . toBeGreaterThanOrEqual ( 1 ) ;
48244860
48254861 // Should show the enriched market's leverage badge from usePerpsMarkets
48264862 await waitFor ( ( ) => {
@@ -4844,7 +4880,7 @@ describe('PerpsMarketDetailsView', () => {
48444880 isRefreshing : false ,
48454881 } ) ;
48464882
4847- const { getAllByText, queryByText } = renderWithProvider (
4883+ const { getByText , getAllByText, queryByText } = renderWithProvider (
48484884 < PerpsConnectionProvider >
48494885 < PerpsMarketDetailsView />
48504886 </ PerpsConnectionProvider > ,
@@ -4854,7 +4890,8 @@ describe('PerpsMarketDetailsView', () => {
48544890 ) ;
48554891
48564892 // Should show the asset name but no leverage badge (since no maxLeverage available)
4857- expect ( getAllByText ( 'UNKNOWN-USD' ) . length ) . toBeGreaterThanOrEqual ( 1 ) ;
4893+ expect ( getByText ( 'Unknown Asset' ) ) . toBeOnTheScreen ( ) ;
4894+ expect ( getAllByText ( 'UNKNOWN-USD perp' ) . length ) . toBeGreaterThanOrEqual ( 1 ) ;
48584895 // No leverage badge should be shown
48594896 expect ( queryByText ( '40x' ) ) . toBeNull ( ) ;
48604897 expect ( queryByText ( '25x' ) ) . toBeNull ( ) ;
0 commit comments