From 3fbcf667b613edfbc78fbd2b258063e1d487d865 Mon Sep 17 00:00:00 2001 From: Akash N Date: Tue, 10 Nov 2020 14:58:14 +0530 Subject: [PATCH 1/3] Do not reset the bodyFormData value --- app/client/src/transformers/RestActionTransformer.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/app/client/src/transformers/RestActionTransformer.ts b/app/client/src/transformers/RestActionTransformer.ts index 827a903e6c..219dd3f9ab 100644 --- a/app/client/src/transformers/RestActionTransformer.ts +++ b/app/client/src/transformers/RestActionTransformer.ts @@ -50,7 +50,6 @@ export const transformRestAction = (data: any): any => { contentType !== POST_BODY_FORMAT_OPTIONS[1].value && contentType !== POST_BODY_FORMAT_OPTIONS[2].value ) { - action.actionConfiguration.bodyFormData = undefined; if (action.actionConfiguration.body) body = action.actionConfiguration.body || undefined; } From 6c0d0e228c13e2861f39d73c29d069f059d72cc0 Mon Sep 17 00:00:00 2001 From: Akash N Date: Tue, 10 Nov 2020 15:11:05 +0530 Subject: [PATCH 2/3] Add test --- .../RestActionTransformers.test.ts | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/app/client/src/transformers/RestActionTransformers.test.ts b/app/client/src/transformers/RestActionTransformers.test.ts index 91ee9c4fc3..9d86166730 100644 --- a/app/client/src/transformers/RestActionTransformers.test.ts +++ b/app/client/src/transformers/RestActionTransformers.test.ts @@ -102,6 +102,31 @@ describe("Api action transformer", () => { expect(result).toEqual(output); }); + it("bodyFormData should not be reset for non xxx-form-encoded-data type", () => { + const input = { + ...BASE_ACTION, + actionConfiguration: { + ...BASE_ACTION.actionConfiguration, + httpMethod: "POST", + headers: [{ key: "content-type", value: "application/json" }], + body: "{ name: 'test' }", + bodyFormData: [{ key: "key", value: "value" }], + }, + }; + const output = { + ...BASE_ACTION, + actionConfiguration: { + ...BASE_ACTION.actionConfiguration, + httpMethod: "POST", + headers: [{ key: "content-type", value: "application/json" }], + body: "{ name: 'test' }", + bodyFormData: [{ key: "key", value: "value" }], + }, + }; + const result = transformRestAction(input); + expect(result).toEqual(output); + }); + it("Sets the correct body for xxx-form-encoded-data display type", () => { const input = { ...BASE_ACTION, From 06d330ef3a18cc432d0ba4a987ee43a72176c97e Mon Sep 17 00:00:00 2001 From: Akash N Date: Tue, 10 Nov 2020 16:42:31 +0530 Subject: [PATCH 3/3] actionConfiguration.body shouldn't be reset --- .../src/transformers/RestActionTransformer.ts | 11 ++----- .../RestActionTransformers.test.ts | 29 +++++++++++++++++++ 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/app/client/src/transformers/RestActionTransformer.ts b/app/client/src/transformers/RestActionTransformer.ts index 219dd3f9ab..d23ddaac56 100644 --- a/app/client/src/transformers/RestActionTransformer.ts +++ b/app/client/src/transformers/RestActionTransformer.ts @@ -44,15 +44,10 @@ export const transformRestAction = (data: any): any => { contentType = contentTypeHeader.value; } } - let body: any = ""; - if ( - contentType !== POST_BODY_FORMAT_OPTIONS[1].value && - contentType !== POST_BODY_FORMAT_OPTIONS[2].value - ) { - if (action.actionConfiguration.body) - body = action.actionConfiguration.body || undefined; - } + let body: any = ""; + if (action.actionConfiguration.body) + body = action.actionConfiguration.body || undefined; if (!_.isString(body)) body = JSON.stringify(body); action = { diff --git a/app/client/src/transformers/RestActionTransformers.test.ts b/app/client/src/transformers/RestActionTransformers.test.ts index 9d86166730..4fc2a0cdef 100644 --- a/app/client/src/transformers/RestActionTransformers.test.ts +++ b/app/client/src/transformers/RestActionTransformers.test.ts @@ -127,6 +127,35 @@ describe("Api action transformer", () => { expect(result).toEqual(output); }); + it("body should not be reset for xxx-form-encoded-data type", () => { + const input = { + ...BASE_ACTION, + actionConfiguration: { + ...BASE_ACTION.actionConfiguration, + httpMethod: "POST", + headers: [ + { key: "content-type", value: POST_BODY_FORMAT_OPTIONS[1].value }, + ], + bodyFormData: [{ key: "key", value: "value" }], + body: "{ name: 'test' }", + }, + }; + const output = { + ...BASE_ACTION, + actionConfiguration: { + ...BASE_ACTION.actionConfiguration, + httpMethod: "POST", + headers: [ + { key: "content-type", value: POST_BODY_FORMAT_OPTIONS[1].value }, + ], + body: "{ name: 'test' }", + bodyFormData: [{ key: "key", value: "value" }], + }, + }; + const result = transformRestAction(input); + expect(result).toEqual(output); + }); + it("Sets the correct body for xxx-form-encoded-data display type", () => { const input = { ...BASE_ACTION,