Spaces:
Paused
Paused
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']])) | |
}) | |