@@ -5,8 +5,14 @@ import parseErrorStackLib from 'react-native/Libraries/Core/Devtools/parseErrorS
55
66import * as Instabug from '../../src/modules/Instabug' ;
77import { 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' ;
1016
1117describe ( 'Test global error handler' , ( ) => {
1218 beforeEach ( ( ) => {
@@ -233,3 +239,91 @@ describe('Instabug Utils', () => {
233239 ) ;
234240 } ) ;
235241} ) ;
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