summaryrefslogtreecommitdiff
path: root/packages/integrations/node/test/createOutgoingHttpHeaders.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/node/test/createOutgoingHttpHeaders.test.js')
-rw-r--r--packages/integrations/node/test/createOutgoingHttpHeaders.test.js78
1 files changed, 78 insertions, 0 deletions
diff --git a/packages/integrations/node/test/createOutgoingHttpHeaders.test.js b/packages/integrations/node/test/createOutgoingHttpHeaders.test.js
new file mode 100644
index 000000000..1876c9a00
--- /dev/null
+++ b/packages/integrations/node/test/createOutgoingHttpHeaders.test.js
@@ -0,0 +1,78 @@
+import { expect } from 'chai';
+
+import { createOutgoingHttpHeaders } from '../dist/createOutgoingHttpHeaders.js';
+
+describe('createOutgoingHttpHeaders', () => {
+
+ it('undefined input headers', async () => {
+ const result = createOutgoingHttpHeaders(undefined);
+ expect(result).to.equal(undefined);
+ });
+
+ it('null input headers', async () => {
+ const result = createOutgoingHttpHeaders(undefined);
+ expect(result).to.equal(undefined);
+ });
+
+ it('Empty Headers', async () => {
+ const headers = new Headers();
+ const result = createOutgoingHttpHeaders(headers);
+ expect(result).to.equal(undefined);
+ });
+
+ it('Headers with single key', async () => {
+ const headers = new Headers();
+ headers.append('x-test', 'hello world');
+ const result = createOutgoingHttpHeaders(headers);
+ expect(result).to.deep.equal({ 'x-test': 'hello world' });
+ });
+
+ it('Headers with multiple keys', async () => {
+ const headers = new Headers();
+ headers.append('x-test1', 'hello');
+ headers.append('x-test2', 'world');
+ const result = createOutgoingHttpHeaders(headers);
+ expect(result).to.deep.equal({ 'x-test1': 'hello', 'x-test2': 'world' });
+ });
+
+ it('Headers with multiple values (not set-cookie)', async () => {
+ const headers = new Headers();
+ headers.append('x-test', 'hello');
+ headers.append('x-test', 'world');
+ const result = createOutgoingHttpHeaders(headers);
+ expect(result).to.deep.equal({ 'x-test': 'hello, world' });
+ });
+
+ it('Headers with multiple values (set-cookie special case)', async () => {
+ const headers = new Headers();
+ headers.append('set-cookie', 'hello');
+ headers.append('set-cookie', 'world');
+ const result = createOutgoingHttpHeaders(headers);
+ expect(result).to.deep.equal({ 'set-cookie': ['hello', 'world'] });
+ });
+
+ it('Headers with multiple values (set-cookie case handling)', async () => {
+ const headers = new Headers();
+ headers.append('Set-cookie', 'hello');
+ headers.append('Set-Cookie', 'world');
+ const result = createOutgoingHttpHeaders(headers);
+ expect(result).to.deep.equal({ 'set-cookie': ['hello', 'world'] });
+ });
+
+ it('Headers with all use cases', async () => {
+ const headers = new Headers();
+ headers.append('x-single', 'single');
+ headers.append('x-triple', 'one');
+ headers.append('x-triple', 'two');
+ headers.append('x-triple', 'three');
+ headers.append('Set-cookie', 'hello');
+ headers.append('Set-Cookie', 'world');
+ const result = createOutgoingHttpHeaders(headers);
+ expect(result).to.deep.equal({
+ 'x-single': 'single',
+ 'x-triple': 'one, two, three',
+ 'set-cookie': ['hello', 'world'],
+ });
+ });
+
+}); \ No newline at end of file