mirror of https://github.com/actions/toolkit
pass in http client to constructor
parent
4c6d88f93a
commit
efcab31d38
|
@ -11,11 +11,11 @@ describe("artifact-http-client", () => {
|
||||||
jest.spyOn(core, "debug").mockImplementation(() => {})
|
jest.spyOn(core, "debug").mockImplementation(() => {})
|
||||||
jest.spyOn(core, "info").mockImplementation(() => {})
|
jest.spyOn(core, "info").mockImplementation(() => {})
|
||||||
jest.spyOn(core, "warning").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", () => {
|
it("should successfully create a client", () => {
|
||||||
jest.spyOn(config, "getResultsServiceUrl").mockReturnValue("http://localhost:8080")
|
|
||||||
jest.spyOn(config, "getRuntimeToken").mockReturnValue("token")
|
|
||||||
const client = createArtifactTwirpClient("upload")
|
const client = createArtifactTwirpClient("upload")
|
||||||
expect(client).toBeDefined()
|
expect(client).toBeDefined()
|
||||||
})
|
})
|
||||||
|
@ -27,7 +27,8 @@ describe("artifact-http-client", () => {
|
||||||
workflowRunBackendId: "1234",
|
workflowRunBackendId: "1234",
|
||||||
workflowJobRunBackendId: "5678",
|
workflowJobRunBackendId: "5678",
|
||||||
name: "artifact",
|
name: "artifact",
|
||||||
version: 4}
|
version: 4
|
||||||
|
}
|
||||||
)
|
)
|
||||||
expect(artifact).toBeDefined()
|
expect(artifact).toBeDefined()
|
||||||
})
|
})
|
||||||
|
|
|
@ -21,13 +21,17 @@ class ArtifactHttpClient implements Rpc {
|
||||||
private baseRetryIntervalMilliseconds: number = 3000
|
private baseRetryIntervalMilliseconds: number = 3000
|
||||||
private retryMultiplier: number = 1.5
|
private retryMultiplier: number = 1.5
|
||||||
|
|
||||||
constructor(userAgent: string) {
|
constructor(userAgent: string, httpClient?: HttpClient) {
|
||||||
const token = getRuntimeToken()
|
const token = getRuntimeToken()
|
||||||
this.httpClient = new HttpClient(
|
|
||||||
userAgent,
|
|
||||||
[new BearerCredentialHandler(token)],
|
|
||||||
)
|
|
||||||
this.baseUrl = getResultsServiceUrl()
|
this.baseUrl = getResultsServiceUrl()
|
||||||
|
if (httpClient) {
|
||||||
|
this.httpClient = httpClient
|
||||||
|
} else {
|
||||||
|
this.httpClient = new HttpClient(
|
||||||
|
userAgent,
|
||||||
|
[new BearerCredentialHandler(token)],
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// This function satisfies the Rpc interface. It is compatible with the JSON
|
// 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 {
|
export function createArtifactTwirpClient(type: "upload" | "download", httpClient?: HttpClient): ArtifactServiceClientJSON {
|
||||||
const client = new ArtifactHttpClient(`@actions/artifact-${type}`)
|
const client = new ArtifactHttpClient(`@actions/artifact-${type}`, httpClient)
|
||||||
return new ArtifactServiceClientJSON(client)
|
return new ArtifactServiceClientJSON(client)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue