Spaces:
Paused
Paused
File size: 1,387 Bytes
9ada4bc |
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 |
import { it, expect } from 'vitest'
import { getRawFetchHeaders } from './getRawFetchHeaders'
it('returns undefined given a non-Headers object', () => {
expect(getRawFetchHeaders({} as Headers)).toBeUndefined()
})
it('returns an empty Map given an empty Headers instance', () => {
expect(getRawFetchHeaders(new Headers())).toEqual(new Map())
})
it('returns undefined for headers map on older Node.js versions', () => {
// Emulate the Headers symbol structure on older
// versions of Node.js (e.g. 18.8.0).
const headers = {
[Symbol('headers list')]: {
[Symbol('headers map')]: new Map([['header-name', 'header-value']]),
},
}
expect(getRawFetchHeaders(headers as unknown as Headers)).toBeUndefined()
})
it('returns raw headers from the given Headers instance', () => {
expect(
getRawFetchHeaders(
new Headers([
['lowercase-header', 'one'],
['UPPERCASE-HEADER', 'TWO'],
['MiXeD-cAsE-hEaDeR', 'ThReE'],
])
)
).toEqual(
new Map([
['lowercase-header', 'one'],
['UPPERCASE-HEADER', 'TWO'],
['MiXeD-cAsE-hEaDeR', 'ThReE'],
])
)
})
it('returns raw headers for a header with multiple values', () => {
expect(
getRawFetchHeaders(
new Headers([
['Set-CookiE', 'a=b'],
['Set-CookiE', 'c=d'],
])
)
).toEqual(new Map([['Set-CookiE', 'a=b, c=d']]))
})
|