77import renderWithProvider from '../../../../util/test/renderWithProvider' ;
88import PositionTokenAvatar from './PositionTokenAvatar' ;
99import type { Position } from '@metamask/social-controllers' ;
10+ import BadgeWrapper from '../../../../component-library/components/Badges/BadgeWrapper' ;
11+ import BadgeNetwork from '../../../../component-library/components/Badges/Badge/variants/BadgeNetwork' ;
1012
1113jest . mock ( '@metamask/design-system-react-native' , ( ) => ( {
1214 ...jest . requireActual ( '@metamask/design-system-react-native' ) ,
@@ -26,7 +28,30 @@ jest.mock('../utils/chainMapping', () => ({
2628 ) ,
2729} ) ) ;
2830
31+ jest . mock (
32+ '../../../../component-library/components/Badges/BadgeWrapper' ,
33+ ( ) => ( {
34+ __esModule : true ,
35+ default : jest . fn ( ( ) => null ) ,
36+ BadgePosition : { BottomRight : 'bottom-right' } ,
37+ } ) ,
38+ ) ;
39+
40+ jest . mock (
41+ '../../../../component-library/components/Badges/Badge/variants/BadgeNetwork' ,
42+ ( ) => ( {
43+ __esModule : true ,
44+ default : jest . fn ( ( ) => null ) ,
45+ } ) ,
46+ ) ;
47+
48+ jest . mock ( '../../../../util/networks' , ( ) => ( {
49+ getNetworkImageSource : jest . fn ( ( ) => ( { uri : 'network.png' } ) ) ,
50+ } ) ) ;
51+
2952const MockAvatarToken = AvatarToken as jest . Mock ;
53+ const MockBadgeWrapper = BadgeWrapper as jest . Mock ;
54+ const MockBadgeNetwork = BadgeNetwork as jest . Mock ;
3055
3156const lastAvatarTokenProps = ( ) =>
3257 MockAvatarToken . mock . calls [ MockAvatarToken . mock . calls . length - 1 ] [ 0 ] as {
@@ -214,4 +239,40 @@ describe('PositionTokenAvatar', () => {
214239 uri : 'https://static.cx.metamask.io/eip155:8453.png' ,
215240 } ) ;
216241 } ) ;
242+
243+ describe ( 'showChainBadge' , ( ) => {
244+ it ( 'wraps the avatar in BadgeWrapper when showChainBadge is true and the chain resolves' , ( ) => {
245+ renderWithProvider (
246+ < PositionTokenAvatar position = { basePosition } showChainBadge /> ,
247+ ) ;
248+
249+ expect ( MockBadgeWrapper ) . toHaveBeenCalled ( ) ;
250+ } ) ;
251+
252+ it ( 'passes a BadgeNetwork as the badgeElement when showChainBadge is true' , ( ) => {
253+ renderWithProvider (
254+ < PositionTokenAvatar position = { basePosition } showChainBadge /> ,
255+ ) ;
256+
257+ const badgeElement = MockBadgeWrapper . mock . calls [ 0 ] [ 0 ]
258+ . badgeElement as React . ReactElement ;
259+ expect ( badgeElement . type ) . toBe ( MockBadgeNetwork ) ;
260+ } ) ;
261+
262+ it ( 'does not wrap the avatar in BadgeWrapper when showChainBadge is false by default' , ( ) => {
263+ renderWithProvider ( < PositionTokenAvatar position = { basePosition } /> ) ;
264+
265+ expect ( MockBadgeWrapper ) . not . toHaveBeenCalled ( ) ;
266+ } ) ;
267+
268+ it ( 'does not wrap the avatar in BadgeWrapper when the chain is unsupported' , ( ) => {
269+ const position = { ...basePosition , chain : 'unsupported' } ;
270+
271+ renderWithProvider (
272+ < PositionTokenAvatar position = { position } showChainBadge /> ,
273+ ) ;
274+
275+ expect ( MockBadgeWrapper ) . not . toHaveBeenCalled ( ) ;
276+ } ) ;
277+ } ) ;
217278} ) ;
0 commit comments