Default to sending Accept and Content-Type headers for json

This commit is contained in:
David Kale
2020-02-04 14:19:46 -05:00
parent f545df6c21
commit e91a39a86b
6 changed files with 131 additions and 12 deletions

79
__tests__/headers.test.ts Normal file
View File

@@ -0,0 +1,79 @@
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<any> = await _http.getJson<any>('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<any>('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<any> = await _http.postJson<any>('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<any>('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<any> = await _http.putJson<any>('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<any>('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<any> = await _http.patchJson<any>('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<any>('https://httpbin.org/patch', {});
expect(jsonObj.result.headers["Accept"]).toBe("baz");
expect(jsonObj.headers[httpm.Headers.ContentType]).toBe(httpm.MediaTypes.ApplicationJson);
});
});