Skip to content

Commit 74c4a3a

Browse files
authoredNov 9, 2024··
fix(handleRequest): remove transformResponse option (#2351)
1 parent cfcc617 commit 74c4a3a

File tree

2 files changed

+3
-101
lines changed

2 files changed

+3
-101
lines changed
 

‎src/core/utils/handleRequest.test.ts

+1-86
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
/**
2-
* @vitest-environment jsdom
3-
*/
1+
// @vitest-environment jsdom
42
import { Emitter } from 'strict-event-emitter'
53
import { createRequestId } from '@mswjs/interceptors'
64
import { LifeCycleEventsMap, SharedOptions } from '../sharedOptions'
@@ -239,89 +237,6 @@ test('returns the mocked response for a request with a matching request handler'
239237
})
240238
})
241239

242-
test('returns a transformed response if the "transformResponse" option is provided', async () => {
243-
const { emitter, events } = setup()
244-
245-
const requestId = createRequestId()
246-
const request = new Request(new URL('http://localhost/user'))
247-
const mockedResponse = HttpResponse.json({ firstName: 'John' })
248-
const handlers: Array<RequestHandler> = [
249-
http.get('/user', () => {
250-
return mockedResponse
251-
}),
252-
]
253-
const transformResponseImpelemntation = (response: Response): Response => {
254-
return new Response('transformed', response)
255-
}
256-
const transformResponse = vi
257-
.fn<[Response], Response>()
258-
.mockImplementation(transformResponseImpelemntation)
259-
const finalResponse = transformResponseImpelemntation(mockedResponse)
260-
const lookupResult = {
261-
handler: handlers[0],
262-
response: mockedResponse,
263-
request,
264-
parsedResult: {
265-
match: { matches: true, params: {} },
266-
cookies: {},
267-
},
268-
}
269-
270-
const result = await handleRequest(
271-
request,
272-
requestId,
273-
handlers,
274-
options,
275-
emitter,
276-
{
277-
...handleRequestOptions,
278-
transformResponse,
279-
},
280-
)
281-
282-
expect(result?.status).toEqual(finalResponse.status)
283-
expect(result?.statusText).toEqual(finalResponse.statusText)
284-
expect(Object.fromEntries(result!.headers.entries())).toEqual(
285-
Object.fromEntries(mockedResponse.headers.entries()),
286-
)
287-
288-
expect(events).toEqual([
289-
['request:start', { request, requestId }],
290-
['request:match', { request, requestId }],
291-
['request:end', { request, requestId }],
292-
])
293-
expect(handleRequestOptions.onPassthroughResponse).not.toHaveBeenCalled()
294-
295-
expect(transformResponse).toHaveBeenCalledTimes(1)
296-
const [responseParam] = transformResponse.mock.calls[0]
297-
298-
expect(responseParam.status).toBe(mockedResponse.status)
299-
expect(responseParam.statusText).toBe(mockedResponse.statusText)
300-
expect(Object.fromEntries(responseParam.headers.entries())).toEqual(
301-
Object.fromEntries(mockedResponse.headers.entries()),
302-
)
303-
304-
expect(handleRequestOptions.onMockedResponse).toHaveBeenCalledTimes(1)
305-
const [mockedResponseParam, lookupResultParam] =
306-
handleRequestOptions.onMockedResponse.mock.calls[0]
307-
308-
expect(mockedResponseParam.status).toBe(finalResponse.status)
309-
expect(mockedResponseParam.statusText).toBe(finalResponse.statusText)
310-
expect(Object.fromEntries(mockedResponseParam.headers.entries())).toEqual(
311-
Object.fromEntries(mockedResponse.headers.entries()),
312-
)
313-
expect(await mockedResponseParam.text()).toBe('transformed')
314-
315-
expect(lookupResultParam).toEqual({
316-
handler: lookupResult.handler,
317-
parsedResult: lookupResult.parsedResult,
318-
response: expect.objectContaining({
319-
status: lookupResult.response.status,
320-
statusText: lookupResult.response.statusText,
321-
}),
322-
})
323-
})
324-
325240
it('returns undefined without warning on a passthrough request', async () => {
326241
const { emitter, events } = setup()
327242

‎src/core/utils/handleRequest.ts

+2-15
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,6 @@ export interface HandleRequestOptions {
2222
baseUrl?: string
2323
}
2424

25-
/**
26-
* Transforms a `MockedResponse` instance returned from a handler
27-
* to a response instance supported by the lower tooling (i.e. interceptors).
28-
*/
29-
transformResponse?(response: Response): Response
30-
3125
/**
3226
* Invoked whenever a request is performed as-is.
3327
*/
@@ -118,16 +112,9 @@ export async function handleRequest(
118112
const requiredLookupResult =
119113
lookupResult.data as RequiredDeep<HandlersExecutionResult>
120114

121-
const transformedResponse =
122-
handleRequestOptions?.transformResponse?.(response) ||
123-
(response as any as Response)
124-
125-
handleRequestOptions?.onMockedResponse?.(
126-
transformedResponse,
127-
requiredLookupResult,
128-
)
115+
handleRequestOptions?.onMockedResponse?.(response, requiredLookupResult)
129116

130117
emitter.emit('request:end', { request, requestId })
131118

132-
return transformedResponse
119+
return response
133120
}

0 commit comments

Comments
 (0)
Please sign in to comment.