Skip to content

Commit

Permalink
test(extension): extract logging logic from network logging in order …
Browse files Browse the repository at this point in the history
…to remove sonar issues.
  • Loading branch information
bslabiak committed Jun 2, 2023
1 parent 7e14f70 commit d91d63e
Showing 1 changed file with 26 additions and 20 deletions.
46 changes: 26 additions & 20 deletions packages/e2e-tests/src/utils/networkManager.ts
@@ -1,5 +1,4 @@
/* eslint-disable no-undef */
/* eslint-disable sonarjs/cognitive-complexity */
import { ChainablePromiseElement } from 'webdriverio';
import { Logger } from '../support/logger';
import allure from '@wdio/allure-reporter';
Expand Down Expand Up @@ -102,26 +101,10 @@ export class NetworkManager {
await client.send(this.NETWORK_ENABLE);
client.on('Network.responseReceived', async (request) => {
if (request.response.status >= 400) {
const requestId = request.requestId;
let requestPayload = '';
let body = '';
const requestPayload = await this.getRequestPostData(client, request.requestId);
const responseBody = await this.getResponseBody(client, request.requestId);
const approximateTimestamp = new Date().toString();
// Fails If request does not contain Post data
try {
requestPayload = JSON.stringify(await client.send('Network.getRequestPostData', { requestId }));
} catch (error) {
Logger.warn(`${error}`);
}
// Fails If request does not contain Response body
try {
const responseBody = await client.send('Network.getResponseBody', { requestId });
body = responseBody.base64Encoded
? Buffer.from(responseBody.body, 'base64').toString('ascii')
: responseBody.body;
} catch (error) {
Logger.warn(`${error}`);
}
const combinedFailedRequestInfo = `URL:\n${request.response.url}\n\nRESPONSE CODE:\n${request.response.status}\n\nAPPROXIMATE TIME:\n${approximateTimestamp}\n\nRESPONSE BODY:\n${body}\n\nREQUEST PAYLOAD:\n${requestPayload}`;
const combinedFailedRequestInfo = `URL:\n${request.response.url}\n\nRESPONSE CODE:\n${request.response.status}\n\nAPPROXIMATE TIME:\n${approximateTimestamp}\n\nRESPONSE BODY:\n${responseBody}\n\nREQUEST PAYLOAD:\n${requestPayload}`;
allure.addAttachment('Failed request', combinedFailedRequestInfo, 'text/plain');
console.log('Failed request');
console.log(combinedFailedRequestInfo);
Expand All @@ -137,6 +120,29 @@ export class NetworkManager {
});
NetworkManager.cdpSessions = [];
};

private getRequestPostData = async (client: any, requestId: any): Promise<string> => {
let postData = '';
try {
postData = JSON.stringify(await client.send('Network.getRequestPostData', { requestId }));
} catch (error) {
Logger.warn(`${error}`);
}
return postData;
};

private getResponseBody = async (client: any, requestId: any): Promise<string> => {
let responseBody = '';
try {
const getResponseBody = await client.send('Network.getResponseBody', { requestId });
responseBody = getResponseBody.base64Encoded
? Buffer.from(getResponseBody.body, 'base64').toString('ascii')
: getResponseBody.body;
} catch (error) {
Logger.warn(`${error}`);
}
return responseBody;
};
}

export default new NetworkManager();

0 comments on commit d91d63e

Please sign in to comment.