diff --git a/src/index.ts b/src/index.ts index a528bed7f..893fabc08 100644 --- a/src/index.ts +++ b/src/index.ts @@ -180,10 +180,11 @@ export async function rawRequest( export async function request( url: string, document: RequestDocument, - variables?: V + variables?: V, + requestHeaders?: Dom.RequestInit['headers'] ): Promise { const client = new GraphQLClient(url) - return client.request(document, variables) + return client.request(document, variables, requestHeaders) } export default request diff --git a/tests/headers.test.ts b/tests/headers.test.ts index c7b61857c..537fb59d6 100644 --- a/tests/headers.test.ts +++ b/tests/headers.test.ts @@ -1,6 +1,6 @@ import * as CrossFetch from 'cross-fetch' import * as Dom from '../src/types.dom' -import { GraphQLClient } from '../src' +import { GraphQLClient, request } from '../src' import { setupTestServer } from './__helpers' const ctx = setupTestServer() @@ -94,3 +94,18 @@ describe('using class', () => { }) }) }) + +describe('using request function', () => { + describe.each([ + [new H({ 'x-request-foo': 'request-bar' })], + [{ 'x-request-foo': 'request-bar' }], + [[['x-request-foo', 'request-bar']]] + ])('request unique header with request', (headerCase: Dom.RequestInit['headers']) => { + test('sets header', async () => { + const mock = ctx.res() + await request(ctx.url, `{ me { id } }`, {}, headerCase) + + expect(mock.requests[0].headers['x-request-foo']).toEqual('request-bar') + }); + }) +})