import * as httpm from '../_out'; import * as ifm from '../_out/interfaces' describe('headers', () => { let _http: httpm.HttpClient; beforeEach(() => { _http = new httpm.HttpClient('http-client-tests'); }); it('preserves existing headers on getJson', async() => { let additionalHeaders = { [httpm.Headers.Accept]: "foo" }; let jsonObj: ifm.ITypedResponse = await _http.getJson('https://httpbin.org/get', additionalHeaders); expect(jsonObj.result.headers["Accept"]).toBe("foo"); expect(jsonObj.headers[httpm.Headers.ContentType]).toBe(httpm.MediaTypes.ApplicationJson); let httpWithHeaders = new httpm.HttpClient(); httpWithHeaders.requestOptions = { headers: { [httpm.Headers.Accept]: "baz" } }; jsonObj = await httpWithHeaders.getJson('https://httpbin.org/get'); expect(jsonObj.result.headers["Accept"]).toBe("baz"); expect(jsonObj.headers[httpm.Headers.ContentType]).toBe(httpm.MediaTypes.ApplicationJson); }); it('preserves existing headers on postJson', async() => { let additionalHeaders = { [httpm.Headers.Accept]: "foo" }; let jsonObj: ifm.ITypedResponse = await _http.postJson('https://httpbin.org/post', {}, additionalHeaders); expect(jsonObj.result.headers["Accept"]).toBe("foo"); expect(jsonObj.headers[httpm.Headers.ContentType]).toBe(httpm.MediaTypes.ApplicationJson); let httpWithHeaders = new httpm.HttpClient(); httpWithHeaders.requestOptions = { headers: { [httpm.Headers.Accept]: "baz" } }; jsonObj = await httpWithHeaders.postJson('https://httpbin.org/post', {}); expect(jsonObj.result.headers["Accept"]).toBe("baz"); expect(jsonObj.headers[httpm.Headers.ContentType]).toBe(httpm.MediaTypes.ApplicationJson); }); it('preserves existing headers on putJson', async() => { let additionalHeaders = { [httpm.Headers.Accept]: "foo" }; let jsonObj: ifm.ITypedResponse = await _http.putJson('https://httpbin.org/put', {}, additionalHeaders); expect(jsonObj.result.headers["Accept"]).toBe("foo"); expect(jsonObj.headers[httpm.Headers.ContentType]).toBe(httpm.MediaTypes.ApplicationJson); let httpWithHeaders = new httpm.HttpClient(); httpWithHeaders.requestOptions = { headers: { [httpm.Headers.Accept]: "baz" } }; jsonObj = await httpWithHeaders.putJson('https://httpbin.org/put', {}); expect(jsonObj.result.headers["Accept"]).toBe("baz"); expect(jsonObj.headers[httpm.Headers.ContentType]).toBe(httpm.MediaTypes.ApplicationJson); }); it('preserves existing headers on patchJson', async() => { let additionalHeaders = { [httpm.Headers.Accept]: "foo" }; let jsonObj: ifm.ITypedResponse = await _http.patchJson('https://httpbin.org/patch', {}, additionalHeaders); expect(jsonObj.result.headers["Accept"]).toBe("foo"); expect(jsonObj.headers[httpm.Headers.ContentType]).toBe(httpm.MediaTypes.ApplicationJson); let httpWithHeaders = new httpm.HttpClient(); httpWithHeaders.requestOptions = { headers: { [httpm.Headers.Accept]: "baz" } }; jsonObj = await httpWithHeaders.patchJson('https://httpbin.org/patch', {}); expect(jsonObj.result.headers["Accept"]).toBe("baz"); expect(jsonObj.headers[httpm.Headers.ContentType]).toBe(httpm.MediaTypes.ApplicationJson); }); });