-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathbuildHeaders.test.ts
88 lines (86 loc) · 2.13 KB
/
buildHeaders.test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import { inspect } from 'node:util';
import { buildHeaders, type HeadersLike, type NullableHeaders } from '@gitpod/sdk/internal/headers';
function inspectNullableHeaders(headers: NullableHeaders) {
return `NullableHeaders {${[
...[...headers.values.entries()].map(([name, value]) => ` ${inspect(name)}: ${inspect(value)}`),
...[...headers.nulls].map((name) => ` ${inspect(name)}: null`),
].join(', ')} }`;
}
describe('buildHeaders', () => {
const cases: [HeadersLike[], string][] = [
[[new Headers({ 'content-type': 'text/plain' })], `NullableHeaders { 'content-type': 'text/plain' }`],
[
[
{
'content-type': 'text/plain',
},
{
'Content-Type': undefined,
},
],
`NullableHeaders { 'content-type': 'text/plain' }`,
],
[
[
{
'content-type': 'text/plain',
},
{
'Content-Type': null,
},
],
`NullableHeaders { 'content-type': null }`,
],
[
[
{
cookie: 'name1=value1',
Cookie: 'name2=value2',
},
],
`NullableHeaders { 'cookie': 'name2=value2' }`,
],
[
[
{
cookie: 'name1=value1',
Cookie: undefined,
},
],
`NullableHeaders { 'cookie': 'name1=value1' }`,
],
[
[
{
cookie: ['name1=value1', 'name2=value2'],
},
],
`NullableHeaders { 'cookie': 'name1=value1; name2=value2' }`,
],
[
[
{
'x-foo': ['name1=value1', 'name2=value2'],
},
],
`NullableHeaders { 'x-foo': 'name1=value1, name2=value2' }`,
],
[
[
[
['cookie', 'name1=value1'],
['cookie', 'name2=value2'],
['Cookie', 'name3=value3'],
],
],
`NullableHeaders { 'cookie': 'name1=value1; name2=value2; name3=value3' }`,
],
[[undefined], `NullableHeaders { }`],
[[null], `NullableHeaders { }`],
];
for (const [input, expected] of cases) {
test(expected, () => {
expect(inspectNullableHeaders(buildHeaders(input))).toEqual(expected);
});
}
});