@@ -5,8 +5,14 @@ import parseErrorStackLib from 'react-native/Libraries/Core/Devtools/parseErrorS
5
5
6
6
import * as Instabug from '../../src/modules/Instabug' ;
7
7
import { NativeCrashReporting } from '../../src/native/NativeCrashReporting' ;
8
- import { InvocationEvent , NonFatalErrorLevel } from '../../src' ;
9
- import InstabugUtils , { getStackTrace , sendCrashReport } from '../../src/utils/InstabugUtils' ;
8
+ import { InvocationEvent , NetworkData , NonFatalErrorLevel } from '../../src' ;
9
+ import InstabugUtils , {
10
+ getStackTrace ,
11
+ reportNetworkLog ,
12
+ sendCrashReport ,
13
+ } from '../../src/utils/InstabugUtils' ;
14
+ import { NativeInstabug } from '../../src/native/NativeInstabug' ;
15
+ import { NativeAPM } from '../../src/native/NativeAPM' ;
10
16
11
17
describe ( 'Test global error handler' , ( ) => {
12
18
beforeEach ( ( ) => {
@@ -233,3 +239,91 @@ describe('Instabug Utils', () => {
233
239
) ;
234
240
} ) ;
235
241
} ) ;
242
+
243
+ describe ( 'reportNetworkLog' , ( ) => {
244
+ const network : NetworkData = {
245
+ url : 'https://api.instabug.com' ,
246
+ method : 'GET' ,
247
+ requestBody : 'requestBody' ,
248
+ requestHeaders : { request : 'header' } ,
249
+ responseBody : 'responseBody' ,
250
+ responseCode : 200 ,
251
+ responseHeaders : { response : 'header' } ,
252
+ contentType : 'application/json' ,
253
+ startTime : 1 ,
254
+ duration : 2 ,
255
+ requestBodySize : 3 ,
256
+ responseBodySize : 4 ,
257
+ errorCode : 5 ,
258
+ errorDomain : 'errorDomain' ,
259
+ serverErrorMessage : 'serverErrorMessage' ,
260
+ requestContentType : 'requestContentType' ,
261
+ } ;
262
+
263
+ it ( 'reportNetworkLog should send network logs to native with the correct parameters on Android' , ( ) => {
264
+ Platform . OS = 'android' ;
265
+
266
+ const requestHeaders = JSON . stringify ( network . requestHeaders ) ;
267
+ const responseHeaders = JSON . stringify ( network . responseHeaders ) ;
268
+
269
+ reportNetworkLog ( network ) ;
270
+
271
+ expect ( NativeInstabug . networkLogAndroid ) . toHaveBeenCalledTimes ( 1 ) ;
272
+ expect ( NativeInstabug . networkLogAndroid ) . toHaveBeenCalledWith (
273
+ network . url ,
274
+ network . requestBody ,
275
+ network . responseBody ,
276
+ network . method ,
277
+ network . responseCode ,
278
+ requestHeaders ,
279
+ responseHeaders ,
280
+ network . duration ,
281
+ ) ;
282
+
283
+ expect ( NativeAPM . networkLogAndroid ) . toHaveBeenCalledTimes ( 1 ) ;
284
+ expect ( NativeAPM . networkLogAndroid ) . toHaveBeenCalledWith (
285
+ network . startTime ,
286
+ network . duration ,
287
+ requestHeaders ,
288
+ network . requestBody ,
289
+ network . requestBodySize ,
290
+ network . method ,
291
+ network . url ,
292
+ network . requestContentType ,
293
+ responseHeaders ,
294
+ network . responseBody ,
295
+ network . responseBodySize ,
296
+ network . responseCode ,
297
+ network . contentType ,
298
+ network . errorDomain ,
299
+ network . gqlQueryName ,
300
+ network . serverErrorMessage ,
301
+ ) ;
302
+ } ) ;
303
+
304
+ it ( 'reportNetworkLog should send network logs to native with the correct parameters on iOS' , ( ) => {
305
+ Platform . OS = 'ios' ;
306
+
307
+ reportNetworkLog ( network ) ;
308
+
309
+ expect ( NativeInstabug . networkLogIOS ) . toHaveBeenCalledTimes ( 1 ) ;
310
+ expect ( NativeInstabug . networkLogIOS ) . toHaveBeenCalledWith (
311
+ network . url ,
312
+ network . method ,
313
+ network . requestBody ,
314
+ network . requestBodySize ,
315
+ network . responseBody ,
316
+ network . responseBodySize ,
317
+ network . responseCode ,
318
+ network . requestHeaders ,
319
+ network . responseHeaders ,
320
+ network . contentType ,
321
+ network . errorDomain ,
322
+ network . errorCode ,
323
+ network . startTime ,
324
+ network . duration ,
325
+ network . gqlQueryName ,
326
+ network . serverErrorMessage ,
327
+ ) ;
328
+ } ) ;
329
+ } ) ;
0 commit comments