@@ -54,37 +54,63 @@ describe('Firebase Performance > api_service', () => {
54
54
api = Api . getInstance ( ) ;
55
55
} ) ;
56
56
describe ( 'requiredApisAvailable' , ( ) => {
57
+ it ( 'call logger when fetch is not available' , ( ) => {
58
+ stub ( consoleLogger , 'info' ) ;
59
+ stub ( window , 'fetch' ) . value ( null ) ;
60
+ return api . requiredApisAvailable ( ) . then ( isAvailable => {
61
+ expect ( consoleLogger . info ) . to . be . called ;
62
+ expect ( isAvailable ) . to . be . false ;
63
+ } ) ;
64
+ } ) ;
57
65
it ( 'call logger when navigator is not available' , ( ) => {
58
66
stub ( consoleLogger , 'info' ) ;
67
+ stub ( window , 'fetch' ) . returns ( Promise . resolve ( new Response ( '{}' ) ) ) ;
59
68
stub ( api , 'navigator' ) . value ( null ) ;
60
- return api . requiredApisAvailable ( ) . then ( ( ) => {
69
+ return api . requiredApisAvailable ( ) . then ( isAvailable => {
61
70
expect ( consoleLogger . info ) . to . be . called ;
71
+ expect ( isAvailable ) . to . be . false ;
62
72
} ) ;
63
73
} ) ;
64
74
it ( 'call logger when cookie is not enabled' , ( ) => {
65
75
stub ( consoleLogger , 'info' ) ;
76
+ stub ( window , 'fetch' ) . returns ( Promise . resolve ( new Response ( '{}' ) ) ) ;
66
77
stub ( api . navigator , 'cookieEnabled' ) . value ( false ) ;
67
- return api . requiredApisAvailable ( ) . then ( ( ) => {
78
+ return api . requiredApisAvailable ( ) . then ( isAvailable => {
68
79
expect ( consoleLogger . info ) . to . be . called ;
80
+ expect ( isAvailable ) . to . be . false ;
69
81
} ) ;
70
82
} ) ;
71
83
72
84
it ( 'call logger when isIndexedDBAvailable returns false' , ( ) => {
73
85
stub ( consoleLogger , 'info' ) ;
86
+ stub ( window , 'fetch' ) . returns ( Promise . resolve ( new Response ( '{}' ) ) ) ;
74
87
stub ( FirebaseUtil , 'isIndexedDBAvailable' ) . returns ( false ) ;
75
- stub ( api . navigator , 'cookieEnabled' ) . value ( true ) ;
76
- return api . requiredApisAvailable ( ) . then ( ( ) => {
88
+ return api . requiredApisAvailable ( ) . then ( isAvailable => {
77
89
expect ( consoleLogger . info ) . to . be . called ;
90
+ expect ( isAvailable ) . to . be . false ;
78
91
} ) ;
79
92
} ) ;
80
93
81
94
it ( 'call logger when validateIndexedDBOpenable throws an exception' , ( ) => {
82
95
stub ( consoleLogger , 'info' ) ;
96
+ stub ( window , 'fetch' ) . returns ( Promise . resolve ( new Response ( '{}' ) ) ) ;
83
97
stub ( FirebaseUtil , 'isIndexedDBAvailable' ) . returns ( true ) ;
84
98
stub ( FirebaseUtil , 'validateIndexedDBOpenable' ) . throws ( ) ;
85
- stub ( api . navigator , 'cookieEnabled' ) . value ( true ) ;
86
- return api . requiredApisAvailable ( ) . then ( ( ) => {
87
- expect ( consoleLogger . info ) . to . to . be . called ;
99
+ return api . requiredApisAvailable ( ) . then ( isAvailable => {
100
+ expect ( consoleLogger . info ) . to . be . called ;
101
+ expect ( isAvailable ) . to . be . false ;
102
+ } ) ;
103
+ } ) ;
104
+ it ( 'logger not called when function returns true' , ( ) => {
105
+ stub ( consoleLogger , 'info' ) ;
106
+ stub ( window , 'fetch' ) . returns ( Promise . resolve ( new Response ( '{}' ) ) ) ;
107
+ stub ( FirebaseUtil , 'isIndexedDBAvailable' ) . returns ( true ) ;
108
+ stub ( FirebaseUtil , 'validateIndexedDBOpenable' ) . returns (
109
+ Promise . resolve ( true )
110
+ ) ;
111
+ return api . requiredApisAvailable ( ) . then ( isAvailable => {
112
+ expect ( consoleLogger . info ) . to . not . be . called ;
113
+ expect ( isAvailable ) . to . be . true ;
88
114
} ) ;
89
115
} ) ;
90
116
} ) ;
0 commit comments