Skip to content

Commit e92fe14

Browse files
committed
test: add tests for reportNetworkLog
1 parent 9f63c33 commit e92fe14

File tree

1 file changed

+96
-2
lines changed

1 file changed

+96
-2
lines changed

test/utils/InstabugUtils.spec.ts

Lines changed: 96 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,14 @@ import parseErrorStackLib from 'react-native/Libraries/Core/Devtools/parseErrorS
55

66
import * as Instabug from '../../src/modules/Instabug';
77
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';
1016

1117
describe('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

Comments
 (0)