1
0
Fork 0

pass in http client to constructor

pull/1486/head
Bethany 2023-08-07 08:43:39 -07:00
parent 4c6d88f93a
commit efcab31d38
2 changed files with 15 additions and 10 deletions

View File

@ -11,11 +11,11 @@ describe("artifact-http-client", () => {
jest.spyOn(core, "debug").mockImplementation(() => {})
jest.spyOn(core, "info").mockImplementation(() => {})
jest.spyOn(core, "warning").mockImplementation(() => {})
jest.spyOn(config, "getResultsServiceUrl").mockReturnValue("http://localhost:8080")
jest.spyOn(config, "getRuntimeToken").mockReturnValue("token")
})
it("should successfully create a client", () => {
jest.spyOn(config, "getResultsServiceUrl").mockReturnValue("http://localhost:8080")
jest.spyOn(config, "getRuntimeToken").mockReturnValue("token")
const client = createArtifactTwirpClient("upload")
expect(client).toBeDefined()
})
@ -27,7 +27,8 @@ describe("artifact-http-client", () => {
workflowRunBackendId: "1234",
workflowJobRunBackendId: "5678",
name: "artifact",
version: 4}
version: 4
}
)
expect(artifact).toBeDefined()
})

View File

@ -21,13 +21,17 @@ class ArtifactHttpClient implements Rpc {
private baseRetryIntervalMilliseconds: number = 3000
private retryMultiplier: number = 1.5
constructor(userAgent: string) {
constructor(userAgent: string, httpClient?: HttpClient) {
const token = getRuntimeToken()
this.baseUrl = getResultsServiceUrl()
if (httpClient) {
this.httpClient = httpClient
} else {
this.httpClient = new HttpClient(
userAgent,
[new BearerCredentialHandler(token)],
)
this.baseUrl = getResultsServiceUrl()
}
}
// This function satisfies the Rpc interface. It is compatible with the JSON
@ -127,7 +131,7 @@ class ArtifactHttpClient implements Rpc {
}
}
export function createArtifactTwirpClient(type: "upload" | "download"): ArtifactServiceClientJSON {
const client = new ArtifactHttpClient(`@actions/artifact-${type}`)
export function createArtifactTwirpClient(type: "upload" | "download", httpClient?: HttpClient): ArtifactServiceClientJSON {
const client = new ArtifactHttpClient(`@actions/artifact-${type}`, httpClient)
return new ArtifactServiceClientJSON(client)
}