mirror of
https://github.com/hanzoai/msw.git
synced 2026-09-24 17:00:34 +00:00
55 lines
1.6 KiB
TypeScript
55 lines
1.6 KiB
TypeScript
/**
|
|
* @vitest-environment node
|
|
*/
|
|
import * as path from 'path'
|
|
import * as fs from 'fs'
|
|
import { HttpResponse, http } from 'msw'
|
|
import { setupServer } from 'msw/node'
|
|
|
|
function getImageBuffer() {
|
|
return fs.readFileSync(path.resolve(__dirname, '../../../fixtures/image.jpg'))
|
|
}
|
|
|
|
const server = setupServer(
|
|
http.get('http://test.mswjs.io/image', () => {
|
|
const imageBuffer = getImageBuffer()
|
|
|
|
return HttpResponse.arrayBuffer(imageBuffer, {
|
|
headers: {
|
|
'Content-Type': 'image/jpeg',
|
|
'Content-Length': imageBuffer.byteLength.toString(),
|
|
},
|
|
})
|
|
}),
|
|
)
|
|
|
|
beforeAll(() => server.listen())
|
|
afterAll(() => server.close())
|
|
|
|
test('returns given buffer in the mocked response', async () => {
|
|
const response = await fetch('http://test.mswjs.io/image')
|
|
const actualImageBuffer = await response.arrayBuffer()
|
|
const expectedImageBuffer = getImageBuffer()
|
|
|
|
expect(response.status).toBe(200)
|
|
expect(response.headers.get('content-length')).toBe(
|
|
actualImageBuffer.byteLength.toString(),
|
|
)
|
|
expect(
|
|
Buffer.compare(Buffer.from(actualImageBuffer), expectedImageBuffer),
|
|
).toBe(0)
|
|
})
|
|
|
|
test('returns given blob in the mocked response', async () => {
|
|
const response = await fetch('http://test.mswjs.io/image')
|
|
const blob = await response.blob()
|
|
const expectedImageBuffer = getImageBuffer()
|
|
|
|
expect(response.status).toBe(200)
|
|
expect(blob.type).toBe('image/jpeg')
|
|
expect(blob.size).toBe(Number(response.headers.get('content-length')))
|
|
expect(
|
|
Buffer.compare(Buffer.from(await blob.arrayBuffer()), expectedImageBuffer),
|
|
).toBe(0)
|
|
})
|