From: Michal Klobukowski Date: Fri, 6 Jul 2018 14:01:01 +0000 (+0200) Subject: Fix common resource service create method X-Git-Tag: 1.2.0~58^2~3 X-Git-Url: https://git.arvados.org/arvados-workbench2.git/commitdiff_plain/b2fd743a3acb8d301adab2d1bf2cb0eca573f31a Fix common resource service create method Feature #13747 Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski --- diff --git a/src/common/api/common-resource-service.test.ts b/src/common/api/common-resource-service.test.ts index d28abc45..7093b59c 100644 --- a/src/common/api/common-resource-service.test.ts +++ b/src/common/api/common-resource-service.test.ts @@ -7,19 +7,36 @@ import axios from "axios"; import MockAdapter from "axios-mock-adapter"; describe("CommonResourceService", () => { - - const axiosMock = new MockAdapter(axios); + const axiosInstance = axios.create(); + const axiosMock = new MockAdapter(axiosInstance); beforeEach(() => { axiosMock.reset(); }); + it("#create", async () => { + axiosMock + .onPost("/resource/") + .reply(200, { owner_uuid: "ownerUuidValue" }); + + const commonResourceService = new CommonResourceService(axiosInstance, "resource"); + const resource = await commonResourceService.create({ ownerUuid: "ownerUuidValue" }); + expect(resource).toEqual({ ownerUuid: "ownerUuidValue" }); + }); + + it("#create maps request params to snake case", async () => { + axiosInstance.post = jest.fn(() => Promise.resolve({data: {}})); + const commonResourceService = new CommonResourceService(axiosInstance, "resource"); + await commonResourceService.create({ ownerUuid: "ownerUuidValue" }); + expect(axiosInstance.post).toHaveBeenCalledWith("/resource/", {owner_uuid: "ownerUuidValue"}); + }); + it("#delete", async () => { axiosMock .onDelete("/resource/uuid") .reply(200, { deleted_at: "now" }); - const commonResourceService = new CommonResourceService(axios, "resource"); + const commonResourceService = new CommonResourceService(axiosInstance, "resource"); const resource = await commonResourceService.delete("uuid"); expect(resource).toEqual({ deletedAt: "now" }); }); @@ -29,7 +46,7 @@ describe("CommonResourceService", () => { .onGet("/resource/uuid") .reply(200, { modified_at: "now" }); - const commonResourceService = new CommonResourceService(axios, "resource"); + const commonResourceService = new CommonResourceService(axiosInstance, "resource"); const resource = await commonResourceService.get("uuid"); expect(resource).toEqual({ modifiedAt: "now" }); }); @@ -47,7 +64,7 @@ describe("CommonResourceService", () => { items_available: 20 }); - const commonResourceService = new CommonResourceService(axios, "resource"); + const commonResourceService = new CommonResourceService(axiosInstance, "resource"); const resource = await commonResourceService.list({ limit: 10, offset: 1 }); expect(resource).toEqual({ kind: "kind", diff --git a/src/common/api/common-resource-service.ts b/src/common/api/common-resource-service.ts index fe6c752c..8df179cd 100644 --- a/src/common/api/common-resource-service.ts +++ b/src/common/api/common-resource-service.ts @@ -70,7 +70,7 @@ export default class CommonResourceService { create(data: Partial) { return this.serverApi - .post(this.resourceType, data) + .post(this.resourceType, CommonResourceService.mapKeys(_.snakeCase)(data)) .then(CommonResourceService.mapResponseKeys); }