From d71f69890b02ba1f2c46147b230fdec8bdb50eff Mon Sep 17 00:00:00 2001 From: Chad Kimes <1936066+chkimes@users.noreply.github.com> Date: Thu, 27 Jul 2023 19:38:22 +0000 Subject: [PATCH 1/3] Add readBodyBuffer method to HttpClientResponse --- packages/http-client/package-lock.json | 4 ++-- packages/http-client/package.json | 2 +- packages/http-client/src/index.ts | 14 ++++++++++++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/packages/http-client/package-lock.json b/packages/http-client/package-lock.json index e5e1e9ed4a..503a680af0 100644 --- a/packages/http-client/package-lock.json +++ b/packages/http-client/package-lock.json @@ -1,12 +1,12 @@ { "name": "@actions/http-client", - "version": "2.0.1", + "version": "2.1.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@actions/http-client", - "version": "2.0.1", + "version": "2.1.1", "license": "MIT", "dependencies": { "tunnel": "^0.0.6" diff --git a/packages/http-client/package.json b/packages/http-client/package.json index 7f5c8ec3db..0e4eda42e7 100644 --- a/packages/http-client/package.json +++ b/packages/http-client/package.json @@ -1,6 +1,6 @@ { "name": "@actions/http-client", - "version": "2.1.0", + "version": "2.1.1", "description": "Actions Http Client", "keywords": [ "github", diff --git a/packages/http-client/src/index.ts b/packages/http-client/src/index.ts index f02c2754d8..bc9e0b9233 100644 --- a/packages/http-client/src/index.ts +++ b/packages/http-client/src/index.ts @@ -102,6 +102,20 @@ export class HttpClientResponse { }) }) } + + async readBodyBuffer(): Promise { + return new Promise(async resolve => { + const chunks: Buffer[] = [] + + this.message.on('data', (chunk: Buffer) => { + chunks.push(chunk) + }) + + this.message.on('end', () => { + resolve(Buffer.concat(chunks)) + }) + }) + } } export function isHttps(requestUrl: string): boolean { From dc89ed86b725f4b08664fcea3b0ffc42cadb1354 Mon Sep 17 00:00:00 2001 From: Chad Kimes <1936066+chkimes@users.noreply.github.com> Date: Thu, 27 Jul 2023 20:12:25 +0000 Subject: [PATCH 2/3] Implement method in other package tests --- packages/artifact/__tests__/download.test.ts | 25 ++++++++++++++------ packages/artifact/__tests__/retry.test.ts | 11 +++++++-- packages/artifact/__tests__/upload.test.ts | 17 +++++++++---- 3 files changed, 40 insertions(+), 13 deletions(-) diff --git a/packages/artifact/__tests__/download.test.ts b/packages/artifact/__tests__/download.test.ts index d150d22076..521d087fbe 100644 --- a/packages/artifact/__tests__/download.test.ts +++ b/packages/artifact/__tests__/download.test.ts @@ -239,7 +239,12 @@ describe('Download Tests', () => { */ async function emptyMockReadBody(): Promise { return new Promise(resolve => { - resolve() + resolve('') + }) + } + async function emptyMockReadBodyBuffer(): Promise { + return new Promise(resolve => { + resolve(Buffer.alloc(0)) }) } @@ -285,7 +290,8 @@ describe('Download Tests', () => { return new Promise(resolve => { resolve({ message: mockMessage, - readBody: mockReadBody + readBody: mockReadBody, + readBodyBuffer: emptyMockReadBodyBuffer }) }) }) @@ -319,7 +325,8 @@ describe('Download Tests', () => { fullResponse.length, actualResponse ), - readBody: emptyMockReadBody + readBody: emptyMockReadBody, + readBodyBuffer: emptyMockReadBodyBuffer } } else { return { @@ -329,7 +336,8 @@ describe('Download Tests', () => { 0, null ), - readBody: emptyMockReadBody + readBody: emptyMockReadBody, + readBodyBuffer: emptyMockReadBodyBuffer } } }) @@ -346,7 +354,8 @@ describe('Download Tests', () => { fullResponse.length, fullResponse ), - readBody: emptyMockReadBody + readBody: emptyMockReadBody, + readBodyBuffer: emptyMockReadBodyBuffer } }) } @@ -456,7 +465,8 @@ describe('Download Tests', () => { return new Promise(resolve => { resolve({ message: mockMessage, - readBody: mockReadBody + readBody: mockReadBody, + readBodyBuffer: emptyMockReadBodyBuffer }) }) }) @@ -472,7 +482,8 @@ describe('Download Tests', () => { return new Promise(resolve => { resolve({ message: mockMessage, - readBody: emptyMockReadBody + readBody: emptyMockReadBody, + readBodyBuffer: emptyMockReadBodyBuffer }) }) }) diff --git a/packages/artifact/__tests__/retry.test.ts b/packages/artifact/__tests__/retry.test.ts index d1e9256ed0..fa26054cae 100644 --- a/packages/artifact/__tests__/retry.test.ts +++ b/packages/artifact/__tests__/retry.test.ts @@ -65,7 +65,13 @@ beforeAll(async () => { */ async function emptyMockReadBody(): Promise { return new Promise(resolve => { - resolve() + resolve('') + }) +} + +async function emptyMockReadBodyBuffer(): Promise { + return new Promise(resolve => { + resolve(Buffer.alloc(0)) }) } @@ -78,7 +84,8 @@ async function setupSingleMockResponse( return new Promise(resolve => { resolve({ message: mockMessage, - readBody: mockReadBody + readBody: mockReadBody, + readBodyBuffer: emptyMockReadBodyBuffer }) }) } diff --git a/packages/artifact/__tests__/upload.test.ts b/packages/artifact/__tests__/upload.test.ts index 75c228e12c..981d208ee3 100644 --- a/packages/artifact/__tests__/upload.test.ts +++ b/packages/artifact/__tests__/upload.test.ts @@ -429,7 +429,13 @@ describe('Upload Tests', () => { */ async function emptyMockReadBody(): Promise { return new Promise(resolve => { - resolve() + resolve('') + }) + } + + async function emptyMockReadBodyBuffer(): Promise { + return new Promise(resolve => { + resolve(Buffer.alloc(0)) }) } @@ -475,7 +481,8 @@ describe('Upload Tests', () => { return new Promise(resolve => { resolve({ message: mockMessage, - readBody: mockReadBody + readBody: mockReadBody, + readBodyBuffer: emptyMockReadBodyBuffer }) }) }) @@ -498,7 +505,8 @@ describe('Upload Tests', () => { return new Promise(resolve => { resolve({ message: mockMessage, - readBody: emptyMockReadBody + readBody: emptyMockReadBody, + readBodyBuffer: emptyMockReadBodyBuffer }) }) }) @@ -543,7 +551,8 @@ describe('Upload Tests', () => { return new Promise(resolve => { resolve({ message: mockMessage, - readBody: mockReadBody + readBody: mockReadBody, + readBodyBuffer: emptyMockReadBodyBuffer }) }) }) From 380f3bafc90d43061e68b80b7e882cade4353cbf Mon Sep 17 00:00:00 2001 From: Chad Kimes <1936066+chkimes@users.noreply.github.com> Date: Fri, 4 Aug 2023 18:20:55 +0000 Subject: [PATCH 3/3] Make method optional to satisfy the test process --- packages/http-client/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/http-client/src/index.ts b/packages/http-client/src/index.ts index f6e7235da2..a63e61b7fe 100644 --- a/packages/http-client/src/index.ts +++ b/packages/http-client/src/index.ts @@ -103,7 +103,7 @@ export class HttpClientResponse { }) } - async readBodyBuffer(): Promise { + async readBodyBuffer?(): Promise { return new Promise(async resolve => { const chunks: Buffer[] = []