diff --git a/app/client/src/constants/ApiEditorConstants/ApiEditorConstants.ts b/app/client/src/constants/ApiEditorConstants/ApiEditorConstants.ts index b5cdbd3711c5..d31fda438f94 100644 --- a/app/client/src/constants/ApiEditorConstants/ApiEditorConstants.ts +++ b/app/client/src/constants/ApiEditorConstants/ApiEditorConstants.ts @@ -19,6 +19,7 @@ export const DEFAULT_API_ACTION_CONFIG: ApiActionConfig = { httpVersion: DEFAULT_HTTP_VERSION_TYPE, headers: EMPTY_KEY_VALUE_PAIRS.slice(), queryParameters: EMPTY_KEY_VALUE_PAIRS.slice(), + autoGeneratedHeaders: [], body: "", bodyFormData: [], formData: { diff --git a/app/client/src/constants/ApiEditorConstants/GraphQLEditorConstants.ts b/app/client/src/constants/ApiEditorConstants/GraphQLEditorConstants.ts index c9acc8d0aeaa..c5a2c6c70e00 100644 --- a/app/client/src/constants/ApiEditorConstants/GraphQLEditorConstants.ts +++ b/app/client/src/constants/ApiEditorConstants/GraphQLEditorConstants.ts @@ -56,6 +56,7 @@ export const DEFAULT_GRAPHQL_ACTION_CONFIG: ApiActionConfig = { formData: { apiContentType: POST_BODY_FORMAT_OPTIONS.JSON, }, + autoGeneratedHeaders: [], pluginSpecifiedTemplates: [ { // JSON smart substitution diff --git a/app/client/src/sagas/__tests__/ApiPaneSagas.test.ts b/app/client/src/sagas/__tests__/ApiPaneSagas.test.ts new file mode 100644 index 000000000000..0aa0e782ff77 --- /dev/null +++ b/app/client/src/sagas/__tests__/ApiPaneSagas.test.ts @@ -0,0 +1,52 @@ +import type { CreateApiActionDefaultsParams } from "entities/Action"; +import { createDefaultApiActionPayload } from "sagas/ApiPaneSagas"; + +describe("tests the sagas in ApiPaneSagas", () => { + const inputPayload: CreateApiActionDefaultsParams = { + apiType: "graphql-plugin", + newActionName: "newName", + }; + + it("1. Bug 27941: Tests createDefaultApiActionPayload to return prepopulated empty array for autoGeneratedHeaders", function () { + const outputPayloadGenerator: Generator = + createDefaultApiActionPayload(inputPayload); + + // Mocking getCurrentWorkspaceId selector + const workspaceIdSelectorEffect = outputPayloadGenerator.next().value; + workspaceIdSelectorEffect.payload.selector = jest.fn(); + workspaceIdSelectorEffect.payload.selector.mockReturnValue( + "testWorkspaceId", + ); + + // Mock getPluginIdOfPackageName selector + const pluginIdSelectorEffect = outputPayloadGenerator.next().value; + pluginIdSelectorEffect.payload.selector = jest.fn(); + pluginIdSelectorEffect.payload.selector.mockReturnValue("pluginId"); + + // Get actionconfig value now + const outputPayload = outputPayloadGenerator.next().value; + expect(outputPayload?.actionConfiguration.autoGeneratedHeaders).toEqual([]); + }); + + it("2. Bug 27941: Tests createDefaultApiActionPayload to return prepopulated empty array for autoGeneratedHeaders", function () { + inputPayload.apiType = "restapi-plugin"; + const outputPayloadGenerator: Generator = + createDefaultApiActionPayload(inputPayload); + + // Mocking getCurrentWorkspaceId selector + const workspaceIdSelectorEffect = outputPayloadGenerator.next().value; + workspaceIdSelectorEffect.payload.selector = jest.fn(); + workspaceIdSelectorEffect.payload.selector.mockReturnValue( + "testWorkspaceId", + ); + + // Mock getPluginIdOfPackageName selector + const pluginIdSelectorEffect = outputPayloadGenerator.next().value; + pluginIdSelectorEffect.payload.selector = jest.fn(); + pluginIdSelectorEffect.payload.selector.mockReturnValue("pluginId"); + + // Get actionconfig value now + const outputPayload = outputPayloadGenerator.next().value; + expect(outputPayload?.actionConfiguration.autoGeneratedHeaders).toEqual([]); + }); +});