Skip to content

Commit 4212a97

Browse files
committed
Fix FormData tests
1 parent b3a2d59 commit 4212a97

File tree

2 files changed

+39
-36
lines changed

2 files changed

+39
-36
lines changed

packages/toolkit/src/query/tests/fetchBaseQuery.test.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import { createSlice } from '@reduxjs/toolkit'
22
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
33
import nodeFetch from 'node-fetch'
4-
import { setupApiStore, waitMs } from './helpers'
4+
import { setupApiStore } from './helpers'
55
import { server } from './mocks/server'
66

77
import { headersToObject } from 'headers-polyfill'
8-
import { HttpResponse, http } from 'msw'
8+
import { HttpResponse, delay, http } from 'msw'
99
import queryString from 'query-string'
1010
import type { BaseQueryApi } from '../baseQueryTypes'
1111

@@ -1052,7 +1052,9 @@ describe('fetchFn', () => {
10521052
describe('FormData', () => {
10531053
test('sets the right headers when sending FormData', async () => {
10541054
const body = new FormData()
1055+
10551056
body.append('username', 'test')
1057+
10561058
body.append(
10571059
'file',
10581060
new Blob([JSON.stringify({ hello: 'there' }, null, 2)], {
@@ -1065,7 +1067,9 @@ describe('FormData', () => {
10651067
commonBaseQueryApi,
10661068
{}
10671069
)
1070+
10681071
const request: any = res.data
1072+
10691073
expect(request.headers['content-type']).not.toContain('application/json')
10701074
})
10711075
})

packages/toolkit/src/query/tests/mocks/handlers.ts

Lines changed: 33 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -15,48 +15,47 @@ export const handlers = [
1515
http.get(
1616
'https://example.com/echo',
1717
async ({ request, params, cookies, requestId }) => {
18-
return HttpResponse.json(
19-
{
20-
...request,
21-
params,
22-
cookies,
23-
requestId,
24-
url: new URL(request.url),
25-
headers: headersToObject(request.headers),
26-
},
27-
{ headers: request.headers }
28-
)
18+
return HttpResponse.json({
19+
...request,
20+
params,
21+
cookies,
22+
requestId,
23+
url: new URL(request.url),
24+
headers: headersToObject(request.headers),
25+
})
2926
}
3027
),
3128
http.post(
3229
'https://example.com/echo',
3330
async ({ request, cookies, params, requestId }) => {
34-
const body = headersToObject(request.headers)['content-type'] === 'text/html'
35-
? await request.text()
36-
: await request.json()
31+
let body
3732

38-
return HttpResponse.json(
39-
{
40-
...request,
41-
cookies,
42-
params,
43-
requestId,
44-
body,
45-
url: new URL(request.url),
46-
headers: request?.headers
47-
? headersToObject(request.headers)
48-
: request?.headers,
49-
},
50-
{ headers: request.headers }
51-
)
33+
try {
34+
body =
35+
headersToObject(request.headers)['content-type'] === 'text/html'
36+
? await request.text()
37+
: await request.json()
38+
} catch (err) {
39+
body = request.body
40+
}
41+
42+
return HttpResponse.json({
43+
...request,
44+
cookies,
45+
params,
46+
requestId,
47+
body,
48+
url: new URL(request.url),
49+
headers: headersToObject(request.headers),
50+
})
5251
}
5352
),
54-
http.get('https://example.com/success', () => {
55-
return HttpResponse.json({ value: 'success' })
56-
}),
57-
http.post('https://example.com/success', ({ request }) => {
58-
return HttpResponse.json({ value: 'success' })
59-
}),
53+
http.get('https://example.com/success', () =>
54+
HttpResponse.json({ value: 'success' })
55+
),
56+
http.post('https://example.com/success', () =>
57+
HttpResponse.json({ value: 'success' })
58+
),
6059
http.get('https://example.com/empty', () => new HttpResponse('')),
6160
http.get('https://example.com/error', () =>
6261
HttpResponse.json({ value: 'error' }, { status: 500 })

0 commit comments

Comments
 (0)