Skip to content

Commit 85f177e

Browse files
committed
disable fetch Headers test on older node.js, add node-style headers test
1 parent 40239c0 commit 85f177e

File tree

1 file changed

+29
-9
lines changed

1 file changed

+29
-9
lines changed

test/parser-test.ts

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,37 @@ import {
44
parseRateLimit,
55
} from '../source/ratelimit-header-parser.js'
66

7+
const itif = (condition: boolean) => (condition ? it : it.skip)
8+
79
describe('parseRateLimitHeaders', () => {
8-
it('should handle X-RateLimit-* headers in a fetch Headers object', () => {
9-
const headers = new Headers({
10-
'X-RateLimit-Limit': '100',
11-
'X-RateLimit-Remaining': '70',
12-
'X-RateLimit-Reset': Math.floor(Date.now() / 1000).toString(),
13-
})
10+
// Note: Headers doesn't exist in node 16 or older
11+
itif(typeof Headers !== 'undefined')(
12+
'should handle X-RateLimit-* headers in a fetch Headers object',
13+
() => {
14+
const headers = new Headers({
15+
'X-RateLimit-Limit': '100',
16+
'X-RateLimit-Remaining': '70',
17+
'X-RateLimit-Reset': Math.floor(Date.now() / 1000).toString(),
18+
})
19+
expect(parseRateLimit(headers)).toMatchObject({
20+
limit: 100,
21+
remaining: 70,
22+
used: 30,
23+
reset: expect.any(Date), // Todo: mock the clock, then match to a specific date
24+
})
25+
},
26+
)
27+
28+
it('should handle RateLimit-* headers in a node-style headers object', () => {
29+
const headers = {
30+
'ratelimit-limit': '60',
31+
'ratelimit-remaining': '20',
32+
'ratelimit-reset': new Date().toISOString(),
33+
}
1434
expect(parseRateLimit(headers)).toMatchObject({
15-
limit: 100,
16-
remaining: 70,
17-
used: 30,
35+
limit: 60,
36+
remaining: 20,
37+
used: 40,
1838
reset: expect.any(Date), // Todo: mock the clock, then match to a specific date
1939
})
2040
})

0 commit comments

Comments
 (0)