Skip to content

Commit 23935e7

Browse files
author
v1rtl
committed
support array in expectHeader and less any-s
1 parent 9db9bd1 commit 23935e7

File tree

3 files changed

+28
-20
lines changed

3 files changed

+28
-20
lines changed

deno.json

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,12 @@
11
{
22
"fmt": {
3-
"options": {
4-
"useTabs": false,
5-
"lineWidth": 80,
6-
"indentWidth": 2,
7-
"singleQuote": true,
8-
"semiColons": false
9-
}
3+
"useTabs": false,
4+
"lineWidth": 80,
5+
"indentWidth": 2,
6+
"singleQuote": true,
7+
"semiColons": false
108
},
119
"tasks": {
1210
"test": "deno test --allow-net --allow-read --allow-write --coverage=coverage"
13-
},
14-
"test": {
15-
"files":{
16-
"exclude": ["./tests/util.ts"]
17-
}
1811
}
1912
}

mod.ts

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const makeFetchPromise = (handlerOrListener: HandlerOrListener) => {
77
// listener
88
if ('rid' in handlerOrListener && 'addr' in handlerOrListener) {
99
return async (url: URL | string = '', params?: RequestInit) => {
10-
const p = new Promise<{ res: Response; data?: any }>((resolve) => {
10+
const p = new Promise<{ res: Response; data?: unknown }>((resolve) => {
1111
setTimeout(async () => {
1212
const res = await fetch(
1313
`http://localhost:${port}${url}`,
@@ -41,7 +41,7 @@ const makeFetchPromise = (handlerOrListener: HandlerOrListener) => {
4141
}
4242

4343
return async (url: URL | string = '', params?: RequestInit) => {
44-
const p = new Promise<{ res: Response; data?: any }>((resolve) => {
44+
const p = new Promise<{ res: Response; data?: unknown }>((resolve) => {
4545
setTimeout(async () => {
4646
const res = await fetch(
4747
`http://localhost:${port}${url}`,
@@ -85,17 +85,25 @@ export const makeFetch = (h: HandlerOrListener) => {
8585
expectBody,
8686
}
8787
}
88-
const expectHeader = (a: string, b: string | RegExp | null) => {
88+
const expectHeader = (a: string, b: string | RegExp | null | string[]) => {
8989
const header = res.headers.get(a)
90+
if (header === null) {
91+
throw new Error(`expected header ${header} to not be empty`)
92+
}
9093
if (b instanceof RegExp) {
91-
if (header === null) {
92-
throw new Error(`expected header ${header} to not be empty`)
93-
}
9494
assertMatch(
9595
header,
9696
b,
9797
`expected header ${a} to match regexp ${b}, got ${header}`,
9898
)
99+
} else if (
100+
Array.isArray(b)
101+
) {
102+
assertEquals(
103+
header,
104+
b.join(','),
105+
`expected header ${a} to match regexp ${b}, got ${header}`,
106+
)
99107
} else {
100108
assertEquals(
101109
header,
@@ -110,11 +118,11 @@ export const makeFetch = (h: HandlerOrListener) => {
110118
expectBody,
111119
}
112120
}
113-
const expectBody = (a: any) => {
121+
const expectBody = (a: unknown) => {
114122
assertEquals(data, a, `Expected to have body ${a}, got ${data}`)
115123
}
116124

117-
const expectAll = (a: any, b?: any) => {
125+
const expectAll = (a: unknown, b?: any) => {
118126
if (typeof a === 'number') {
119127
expectStatus(a, b)
120128
} else if (typeof a === 'string' && typeof b !== 'undefined') {

mod_test.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,13 @@ describe('expectHeader', () => {
108108
)
109109
}
110110
})
111+
it('can expect array of header values', async () => {
112+
const handler: Handler = () =>
113+
new Response('Hello World', { headers: { 'A': '1,2,3' } })
114+
const fetch = makeFetch(handler)
115+
const res = await fetch('/')
116+
res.expectHeader('A', ['1', '2', '3'])
117+
})
111118
})
112119

113120
describe('expectBody', () => {

0 commit comments

Comments
 (0)