mirror of
https://github.com/hanzoai/msw.git
synced 2026-09-24 17:00:34 +00:00
75 lines
1.8 KiB
TypeScript
75 lines
1.8 KiB
TypeScript
/**
|
|
* @vitest-environment node
|
|
*/
|
|
import { http, HttpResponse } from 'msw'
|
|
import { setupServer } from 'msw/node'
|
|
|
|
function encodeBuffer(value: unknown) {
|
|
return Buffer.from(JSON.stringify(value)).buffer
|
|
}
|
|
|
|
const server = setupServer(
|
|
http.post('http://localhost/arrayBuffer', async ({ request }) => {
|
|
const requestBodyBuffer = await request.arrayBuffer()
|
|
return HttpResponse.arrayBuffer(requestBodyBuffer)
|
|
}),
|
|
)
|
|
|
|
beforeAll(() => {
|
|
server.listen()
|
|
})
|
|
|
|
afterAll(() => {
|
|
server.close()
|
|
})
|
|
|
|
test('reads text request body as array buffer', async () => {
|
|
const res = await fetch('http://localhost/arrayBuffer', {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
},
|
|
body: 'foo bar',
|
|
})
|
|
const body = await res.arrayBuffer()
|
|
|
|
expect(res.status).toBe(200)
|
|
expect(body).toEqual(encodeBuffer('foo bar'))
|
|
})
|
|
|
|
test('reads array buffer request body as array buffer', async () => {
|
|
const res = await fetch('http://localhost/arrayBuffer', {
|
|
method: 'POST',
|
|
body: encodeBuffer('foo bar'),
|
|
})
|
|
const body = await res.arrayBuffer()
|
|
|
|
expect(res.status).toBe(200)
|
|
expect(body).toEqual(encodeBuffer('foo bar'))
|
|
})
|
|
|
|
test('reads null request body as empty array buffer', async () => {
|
|
const res = await fetch('http://localhost/arrayBuffer', {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
},
|
|
body: undefined,
|
|
})
|
|
const body = await res.arrayBuffer()
|
|
|
|
expect(res.status).toBe(200)
|
|
expect(body).toEqual(encodeBuffer(''))
|
|
})
|
|
|
|
test('reads undefined request body as empty array buffer', async () => {
|
|
const res = await fetch('http://localhost/arrayBuffer', {
|
|
method: 'POST',
|
|
body: undefined,
|
|
})
|
|
const body = await res.arrayBuffer()
|
|
|
|
expect(res.status).toBe(200)
|
|
expect(body).toEqual(encodeBuffer(''))
|
|
})
|