@@ -5,6 +5,10 @@ import initialRootState from '../../../util/test/initial-root-state';
55import Routes from '../../../constants/navigation/Routes' ;
66import { ReactTestInstance } from 'react-test-renderer' ;
77
8+ jest . mock ( 'react-native-device-info' , ( ) => ( {
9+ getVersion : jest . fn ( ( ) => '7.72.0' ) ,
10+ } ) ) ;
11+
812jest . mock ( '@react-navigation/stack' , ( ) => ( {
913 createStackNavigator : jest . fn ( ) . mockReturnValue ( {
1014 Navigator : 'Navigator' ,
@@ -145,4 +149,56 @@ describe('MainNavigator', () => {
145149 'FeatureFlagOverride' ,
146150 ) ;
147151 } ) ;
152+
153+ it ( 'includes TopTradersView screen when Social Leaderboard remote flag is enabled' , ( ) => {
154+ const stateWithSocialLeaderboard = {
155+ ...initialRootState ,
156+ engine : {
157+ ...initialRootState . engine ,
158+ backgroundState : {
159+ ...initialRootState . engine . backgroundState ,
160+ RemoteFeatureFlagController : {
161+ ...initialRootState . engine . backgroundState
162+ . RemoteFeatureFlagController ,
163+ remoteFeatureFlags : {
164+ ...initialRootState . engine . backgroundState
165+ . RemoteFeatureFlagController . remoteFeatureFlags ,
166+ aiSocialLeaderboardEnabled : {
167+ enabled : true ,
168+ minimumVersion : '0.0.1' ,
169+ } ,
170+ } ,
171+ } ,
172+ } ,
173+ } ,
174+ } ;
175+
176+ const container = renderWithProvider ( < MainNavigator /> , {
177+ state : stateWithSocialLeaderboard ,
178+ } ) ;
179+
180+ interface ScreenChild {
181+ name : string ;
182+ component : { name : string } ;
183+ }
184+ const screenProps : ScreenChild [ ] = container . root . children
185+ . filter (
186+ ( child ) : child is ReactTestInstance =>
187+ typeof child === 'object' &&
188+ 'type' in child &&
189+ 'props' in child &&
190+ child . type ?. toString ( ) === 'Screen' ,
191+ )
192+ . map ( ( child ) => ( {
193+ name : child . props . name ,
194+ component : child . props . component ,
195+ } ) ) ;
196+
197+ const topTradersScreen = screenProps ?. find (
198+ ( screen ) => screen ?. name === Routes . SOCIAL_LEADERBOARD . VIEW ,
199+ ) ;
200+
201+ expect ( topTradersScreen ) . toBeDefined ( ) ;
202+ expect ( topTradersScreen ?. component . name ) . toBe ( 'TopTradersView' ) ;
203+ } ) ;
148204} ) ;
0 commit comments