From 8c856396ffc2fa7ec71c7e3c560aaf1eebdb1515 Mon Sep 17 00:00:00 2001 From: Melissa Luu Date: Wed, 28 Feb 2024 11:24:04 -0500 Subject: [PATCH] Update tests as per PR review comments --- .../client-fetch-request.test.ts | 50 +++++-------------- .../client-requestStream.test.ts | 25 ++-------- .../tests/graphql-client/common-tests.ts | 42 +++++++++++++--- .../tests/graphql-client/fixtures.ts | 12 +++++ 4 files changed, 64 insertions(+), 65 deletions(-) diff --git a/packages/graphql-client/src/graphql-client/tests/graphql-client/client-fetch-request.test.ts b/packages/graphql-client/src/graphql-client/tests/graphql-client/client-fetch-request.test.ts index 0f66e76a6..9cadbdf31 100644 --- a/packages/graphql-client/src/graphql-client/tests/graphql-client/client-fetch-request.test.ts +++ b/packages/graphql-client/src/graphql-client/tests/graphql-client/client-fetch-request.test.ts @@ -1,14 +1,14 @@ import fetchMock from "jest-fetch-mock"; import { GraphQLClient } from "../../types"; -import { - SDK_VARIANT_HEADER, - SDK_VERSION_HEADER, - DEFAULT_CLIENT_VERSION, - DEFAULT_SDK_VARIANT, -} from "../../constants"; -import { operation, variables, clientConfig, getValidClient } from "./fixtures"; +import { + operation, + variables, + clientConfig, + getValidClient, + defaultHeaders, +} from "./fixtures"; import { fetchApiTests, parametersTests, @@ -136,11 +136,7 @@ describe("GraphQL Client", () => { { method: "POST", body: JSON.stringify({ query: operation }), - headers: { - ...clientConfig.headers, - [SDK_VARIANT_HEADER]: DEFAULT_SDK_VARIANT, - [SDK_VERSION_HEADER]: DEFAULT_CLIENT_VERSION, - }, + headers: defaultHeaders, }, ]; @@ -266,11 +262,7 @@ describe("GraphQL Client", () => { { method: "POST", body: JSON.stringify({ query: operation }), - headers: { - ...clientConfig.headers, - [SDK_VARIANT_HEADER]: DEFAULT_SDK_VARIANT, - [SDK_VERSION_HEADER]: DEFAULT_CLIENT_VERSION, - }, + headers: defaultHeaders, }, ]; @@ -335,11 +327,7 @@ describe("GraphQL Client", () => { { method: "POST", body: JSON.stringify({ query: operation }), - headers: { - ...clientConfig.headers, - [SDK_VARIANT_HEADER]: DEFAULT_SDK_VARIANT, - [SDK_VERSION_HEADER]: DEFAULT_CLIENT_VERSION, - }, + headers: defaultHeaders, }, ], }, @@ -657,11 +645,7 @@ describe("GraphQL Client", () => { { method: "POST", body: JSON.stringify({ query: operation }), - headers: { - ...clientConfig.headers, - [SDK_VARIANT_HEADER]: DEFAULT_SDK_VARIANT, - [SDK_VERSION_HEADER]: DEFAULT_CLIENT_VERSION, - }, + headers: defaultHeaders, }, ]; @@ -802,11 +786,7 @@ describe("GraphQL Client", () => { { method: "POST", body: JSON.stringify({ query: operation }), - headers: { - ...clientConfig.headers, - [SDK_VARIANT_HEADER]: DEFAULT_SDK_VARIANT, - [SDK_VERSION_HEADER]: DEFAULT_CLIENT_VERSION, - }, + headers: defaultHeaders, }, ]; @@ -872,11 +852,7 @@ describe("GraphQL Client", () => { { method: "POST", body: JSON.stringify({ query: operation }), - headers: { - ...clientConfig.headers, - [SDK_VARIANT_HEADER]: DEFAULT_SDK_VARIANT, - [SDK_VERSION_HEADER]: DEFAULT_CLIENT_VERSION, - }, + headers: defaultHeaders, }, ], }, diff --git a/packages/graphql-client/src/graphql-client/tests/graphql-client/client-requestStream.test.ts b/packages/graphql-client/src/graphql-client/tests/graphql-client/client-requestStream.test.ts index 9a15b73f7..7cdb9ee08 100644 --- a/packages/graphql-client/src/graphql-client/tests/graphql-client/client-requestStream.test.ts +++ b/packages/graphql-client/src/graphql-client/tests/graphql-client/client-requestStream.test.ts @@ -1,12 +1,6 @@ import fetchMock from "jest-fetch-mock"; import { GraphQLClient, ClientStreamResponse } from "../../types"; -import { - SDK_VARIANT_HEADER, - SDK_VERSION_HEADER, - DEFAULT_CLIENT_VERSION, - DEFAULT_SDK_VARIANT, -} from "../../constants"; import { clientConfig, @@ -14,6 +8,7 @@ import { createIterableResponse, createIterableBufferResponse, createReaderStreamResponse, + defaultHeaders, } from "./fixtures"; import { fetchApiTests, @@ -1186,11 +1181,7 @@ describe("GraphQL Client", () => { { method: "POST", body: JSON.stringify({ query: operation }), - headers: { - ...clientConfig.headers, - [SDK_VARIANT_HEADER]: DEFAULT_SDK_VARIANT, - [SDK_VERSION_HEADER]: DEFAULT_CLIENT_VERSION, - }, + headers: defaultHeaders, }, ]; @@ -1352,11 +1343,7 @@ describe("GraphQL Client", () => { { method: "POST", body: JSON.stringify({ query: operation }), - headers: { - ...clientConfig.headers, - [SDK_VARIANT_HEADER]: DEFAULT_SDK_VARIANT, - [SDK_VERSION_HEADER]: DEFAULT_CLIENT_VERSION, - }, + headers: defaultHeaders, }, ]; @@ -1430,11 +1417,7 @@ describe("GraphQL Client", () => { { method: "POST", body: JSON.stringify({ query: operation }), - headers: { - ...clientConfig.headers, - [SDK_VARIANT_HEADER]: DEFAULT_SDK_VARIANT, - [SDK_VERSION_HEADER]: DEFAULT_CLIENT_VERSION, - }, + headers: defaultHeaders, }, ], }, diff --git a/packages/graphql-client/src/graphql-client/tests/graphql-client/common-tests.ts b/packages/graphql-client/src/graphql-client/tests/graphql-client/common-tests.ts index c4dfc5000..ca850fb3b 100644 --- a/packages/graphql-client/src/graphql-client/tests/graphql-client/common-tests.ts +++ b/packages/graphql-client/src/graphql-client/tests/graphql-client/common-tests.ts @@ -9,16 +9,16 @@ import { DEFAULT_SDK_VARIANT, } from "../../constants"; -import { operation, variables, clientConfig, getValidClient } from "./fixtures"; +import { + operation, + variables, + clientConfig, + getValidClient, + defaultHeaders, +} from "./fixtures"; type ClientFunctionNames = keyof Omit; -const defaultHeaders = { - ...clientConfig.headers, - [SDK_VARIANT_HEADER]: DEFAULT_SDK_VARIANT, - [SDK_VERSION_HEADER]: DEFAULT_CLIENT_VERSION, -}; - export const fetchApiTests = ( functionName: ClientFunctionNames, gqlOperation: string = operation, @@ -252,6 +252,34 @@ export const sdkHeadersTests = ( }); }); + it("includes the function parameter custom SDK variant and version headers if both function parameter and client init config includes SDK headers", async () => { + const initCustomHeaders = { + [SDK_VARIANT_HEADER]: "custom-client", + [SDK_VERSION_HEADER]: "0.0.1", + }; + + const customHeaders = { + [SDK_VARIANT_HEADER]: "custom-client-1", + [SDK_VERSION_HEADER]: "0.0.2", + }; + + client = getValidClient({ + headers: initCustomHeaders, + }); + + await client[functionName](gqlOperation, { headers: customHeaders }); + expect(fetchMock).toHaveBeenCalledWith(clientConfig.url, { + method: "POST", + headers: { + ...clientConfig.headers, + ...customHeaders, + }, + body: JSON.stringify({ + query: gqlOperation, + }), + }); + }); + it("does not includes the default SDK variant and version headers if an SDK variant was provided in the function parameter headers", async () => { const customHeaders = { [SDK_VARIANT_HEADER]: "custom-client", diff --git a/packages/graphql-client/src/graphql-client/tests/graphql-client/fixtures.ts b/packages/graphql-client/src/graphql-client/tests/graphql-client/fixtures.ts index 5380f6e00..7e77b7b30 100644 --- a/packages/graphql-client/src/graphql-client/tests/graphql-client/fixtures.ts +++ b/packages/graphql-client/src/graphql-client/tests/graphql-client/fixtures.ts @@ -9,6 +9,12 @@ import { ClientOptions, Headers as TypesHeaders, } from "../../types"; +import { + SDK_VARIANT_HEADER, + SDK_VERSION_HEADER, + DEFAULT_CLIENT_VERSION, + DEFAULT_SDK_VARIANT, +} from "../../constants"; global.TextEncoder = TextEncoder; global.TextDecoder = TextDecoder as any; @@ -33,6 +39,12 @@ export const variables = { country: "US", }; +export const defaultHeaders = { + ...clientConfig.headers, + [SDK_VARIANT_HEADER]: DEFAULT_SDK_VARIANT, + [SDK_VERSION_HEADER]: DEFAULT_CLIENT_VERSION, +}; + export function getValidClient({ retries, logger,