UNPKG

msw

Version:

The industry standard for API mocking in JavaScript.

76 lines (63 loc) • 2.12 kB
// @vitest-environment node import { encodeBuffer } from '@mswjs/interceptors' import { serializeResponse } from './serialize-response' test('serializes response without body', async () => { const result = await serializeResponse(new Response(null)) expect(result.status).toBe(200) expect(result.statusText).toBe('OK') expect(result.headers).toEqual({}) expect(result.body).toBe('') }) test('serializes a plain text response', async () => { const result = await serializeResponse( new Response('hello world', { status: 201, statusText: 'Created', headers: { 'Content-Type': 'text/plain', }, }), ) expect(result.status).toBe(201) expect(result.statusText).toBe('Created') expect(result.headers).toEqual({ 'content-type': 'text/plain', }) expect(result.body).toBe('hello world') }) test('serializes a JSON response', async () => { const response = new Response(JSON.stringify({ users: ['John'] }), { headers: { 'Content-Type': 'application/json', }, }) const result = await serializeResponse(response) expect(result.headers).toEqual({ 'content-type': 'application/json', }) expect(result.body).toBe(JSON.stringify({ users: ['John'] })) }) test('serializes a ArrayBuffer response', async () => { const data = encodeBuffer('hello world') const response = new Response(data) const result = await serializeResponse(response) expect(result.body).toBe('hello world') }) test('serializes a Blob response', async () => { const response = new Response(new Blob(['hello world'])) const result = await serializeResponse(response) expect(result.body).toBe('hello world') }) test('serializes a FormData response', async () => { const data = new FormData() data.set('firstName', 'Alice') data.set('age', '32') const response = new Response(data) const result = await serializeResponse(response) expect(result.body).toContain( `Content-Disposition: form-data; name="firstName"\r\n\r\nAlice`, ) expect(result.body).toContain( `Content-Disposition: form-data; name="age"\r\n\r\n32`, ) })