@qavajs/format-report-portal 0.14.3 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/CHANGELOG.MD +3 -0
  2. package/index.js +41 -0
  3. package/package.json +4 -4
package/CHANGELOG.MD CHANGED
@@ -1,3 +1,6 @@
1
+ ## 0.15.0
2
+ - added request/response renderer of internal mime type _text/x.response.json_
3
+
1
4
  ## 0.14.3
2
5
  - bump dependencies to get rid of vulnerabilities
3
6
 
package/index.js CHANGED
@@ -265,6 +265,12 @@ class RPFormatter extends Formatter {
265
265
  message: attachment.body,
266
266
  time: startTime
267
267
  });
268
+ } else if (attachment.mediaType === 'text/x.response.json') {
269
+ log = await this.rpClient.sendLog(testItem.tempId, {
270
+ level: 'INFO',
271
+ message: this.responseBody(attachment.body),
272
+ time: startTime
273
+ });
268
274
  } else {
269
275
  const attachmentData = {
270
276
  name: 'attachment',
@@ -279,6 +285,41 @@ class RPFormatter extends Formatter {
279
285
  }
280
286
  await log.promise;
281
287
  }
288
+
289
+ renderHeaders(headers) {
290
+ return Object.entries(headers).map(([key, value]) => `${key}: ${value}`).join('\n');
291
+ }
292
+
293
+ responseBody(log) {
294
+ const payload = JSON.parse(log);
295
+ const isText = header => ['application/json', 'text/plain', 'text/html'].some(mime => (header ?? '').includes(mime));
296
+ const reqBody = isText(payload.request.headers['content-type'])
297
+ ? Buffer.from(payload.request.body, 'base64').toString()
298
+ : payload.request.body;
299
+ const resBody = isText(payload.response.headers['content-type'])
300
+ ? Buffer.from(payload.response.body, 'base64').toString()
301
+ : payload.request.body;
302
+ return `${payload.request.method} ${payload.request.url} - ${payload.response.status}
303
+ **Request**
304
+ body:
305
+ \`\`\`
306
+ ${reqBody}
307
+ \`\`\`
308
+ headers:
309
+ \`\`\`
310
+ ${this.renderHeaders(payload.request.headers)}
311
+ \`\`\`
312
+ **Response**
313
+ body:
314
+ \`\`\`
315
+ ${resBody}
316
+ \`\`\`
317
+ headers:
318
+ \`\`\`
319
+ ${this.renderHeaders(payload.response.headers)}
320
+ \`\`\`
321
+ `
322
+ }
282
323
  }
283
324
 
284
325
  module.exports = RPFormatter
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qavajs/format-report-portal",
3
- "version": "0.14.3",
3
+ "version": "0.15.0",
4
4
  "description": "cucumber formatter for report portal",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -21,11 +21,11 @@
21
21
  },
22
22
  "homepage": "https://github.com/qavajs/format-report-portal#readme",
23
23
  "dependencies": {
24
- "@reportportal/client-javascript": "^5.1.0"
24
+ "@reportportal/client-javascript": "^5.1.4"
25
25
  },
26
26
  "devDependencies": {
27
- "@cucumber/cucumber": "^10.3.1",
28
- "@qavajs/cli": "^0.34.1",
27
+ "@cucumber/cucumber": "^10.8.0",
28
+ "@qavajs/cli": "^0.39.0",
29
29
  "@qavajs/memory": "^1.7.0",
30
30
  "jest": "^29.7.0"
31
31
  }