@@ -6,7 +6,7 @@ import { renderHook } from '@testing-library/react-hooks';
66import { useFxAStatus } from '.' ;
77import { Constants } from '../../constants' ;
88import firefox from '../../channels/firefox' ;
9- import { IntegrationType } from '../../../models' ;
9+ import { IntegrationType , isProbablyFirefox } from '../../../models' ;
1010
1111jest . mock ( '../../channels/firefox' , ( ) => ( {
1212 __esModule : true ,
@@ -15,9 +15,18 @@ jest.mock('../../channels/firefox', () => ({
1515 } ,
1616} ) ) ;
1717
18+ jest . mock ( '../../../models' , ( ) => {
19+ const actual = jest . requireActual ( '../../../models' ) ;
20+ return {
21+ ...actual ,
22+ isProbablyFirefox : jest . fn ( ( ) => true ) ,
23+ } ;
24+ } ) ;
25+
1826describe ( 'useFxAStatus' , ( ) => {
1927 beforeEach ( ( ) => {
20- jest . resetAllMocks ( ) ;
28+ jest . clearAllMocks ( ) ;
29+ ( isProbablyFirefox as jest . Mock ) . mockImplementation ( ( ) => true ) ;
2130 } ) ;
2231
2332 describe ( 'SyncDesktopV3 integration' , ( ) => {
@@ -149,4 +158,19 @@ describe('useFxAStatus', () => {
149158 expect ( firefox . fxaStatus ) . not . toHaveBeenCalled ( ) ;
150159 } ) ;
151160 } ) ;
161+
162+ describe ( 'Non-Firefox browser' , ( ) => {
163+ it ( 'does not call fxaStatus when isProbablyFirefox returns false' , ( ) => {
164+ ( isProbablyFirefox as jest . Mock ) . mockReturnValueOnce ( false ) ;
165+
166+ const integration = {
167+ type : IntegrationType . SyncDesktopV3 ,
168+ isSync : ( ) => true ,
169+ isFirefoxNonSync : ( ) => false ,
170+ } ;
171+
172+ renderHook ( ( ) => useFxAStatus ( integration ) ) ;
173+ expect ( firefox . fxaStatus ) . not . toHaveBeenCalled ( ) ;
174+ } ) ;
175+ } ) ;
152176} ) ;
0 commit comments