msw 2.0.14 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli/index.js +11 -3
- package/cli/init.js +126 -73
- package/config/scripts/postinstall.js +8 -20
- package/lib/browser/index.js +111 -176
- package/lib/browser/index.js.map +1 -1
- package/lib/browser/index.mjs +111 -179
- package/lib/browser/index.mjs.map +1 -1
- package/lib/core/{GraphQLHandler-JB4bsrLF.d.ts → GraphQLHandler-2guuZL5R.d.ts} +1 -1
- package/lib/core/{GraphQLHandler-mT-MmgeB.d.mts → GraphQLHandler-fe5IYUg3.d.mts} +1 -1
- package/lib/core/HttpResponse.d.mts +1 -1
- package/lib/core/HttpResponse.d.ts +1 -1
- package/lib/core/{RequestHandler-rmY-HeFN.d.ts → RequestHandler-TRh8Eh4H.d.ts} +9 -1
- package/lib/core/{RequestHandler-YiqamK0M.d.mts → RequestHandler-nfjVJ8Tp.d.mts} +9 -1
- package/lib/core/SetupApi.d.mts +1 -1
- package/lib/core/SetupApi.d.ts +1 -1
- package/lib/core/SetupApi.js +5 -0
- package/lib/core/SetupApi.js.map +1 -1
- package/lib/core/SetupApi.mjs +5 -0
- package/lib/core/SetupApi.mjs.map +1 -1
- package/lib/core/delay.js +24 -46
- package/lib/core/delay.js.map +1 -1
- package/lib/core/delay.mjs +24 -46
- package/lib/core/delay.mjs.map +1 -1
- package/lib/core/graphql.d.mts +2 -2
- package/lib/core/graphql.d.ts +2 -2
- package/lib/core/graphql.js +3 -19
- package/lib/core/graphql.js.map +1 -1
- package/lib/core/graphql.mjs +3 -21
- package/lib/core/graphql.mjs.map +1 -1
- package/lib/core/handlers/GraphQLHandler.d.mts +2 -2
- package/lib/core/handlers/GraphQLHandler.d.ts +2 -2
- package/lib/core/handlers/GraphQLHandler.js +51 -77
- package/lib/core/handlers/GraphQLHandler.js.map +1 -1
- package/lib/core/handlers/GraphQLHandler.mjs +51 -77
- package/lib/core/handlers/GraphQLHandler.mjs.map +1 -1
- package/lib/core/handlers/HttpHandler.d.mts +1 -1
- package/lib/core/handlers/HttpHandler.d.ts +1 -1
- package/lib/core/handlers/HttpHandler.js +29 -55
- package/lib/core/handlers/HttpHandler.js.map +1 -1
- package/lib/core/handlers/HttpHandler.mjs +29 -55
- package/lib/core/handlers/HttpHandler.mjs.map +1 -1
- package/lib/core/handlers/RequestHandler.d.mts +1 -1
- package/lib/core/handlers/RequestHandler.d.ts +1 -1
- package/lib/core/handlers/RequestHandler.js +79 -103
- package/lib/core/handlers/RequestHandler.js.map +1 -1
- package/lib/core/handlers/RequestHandler.mjs +79 -105
- package/lib/core/handlers/RequestHandler.mjs.map +1 -1
- package/lib/core/http.d.mts +1 -1
- package/lib/core/http.d.ts +1 -1
- package/lib/core/index.d.mts +2 -2
- package/lib/core/index.d.ts +2 -2
- package/lib/core/sharedOptions.d.mts +1 -1
- package/lib/core/sharedOptions.d.ts +1 -1
- package/lib/core/utils/HttpResponse/decorators.d.mts +1 -1
- package/lib/core/utils/HttpResponse/decorators.d.ts +1 -1
- package/lib/core/utils/HttpResponse/decorators.js +7 -24
- package/lib/core/utils/HttpResponse/decorators.js.map +1 -1
- package/lib/core/utils/HttpResponse/decorators.mjs +7 -26
- package/lib/core/utils/HttpResponse/decorators.mjs.map +1 -1
- package/lib/core/utils/getResponse.d.mts +1 -1
- package/lib/core/utils/getResponse.d.ts +1 -1
- package/lib/core/utils/getResponse.js +11 -26
- package/lib/core/utils/getResponse.js.map +1 -1
- package/lib/core/utils/getResponse.mjs +11 -26
- package/lib/core/utils/getResponse.mjs.map +1 -1
- package/lib/core/utils/handleRequest.d.mts +1 -1
- package/lib/core/utils/handleRequest.d.ts +1 -1
- package/lib/core/utils/handleRequest.js +49 -72
- package/lib/core/utils/handleRequest.js.map +1 -1
- package/lib/core/utils/handleRequest.mjs +49 -72
- package/lib/core/utils/handleRequest.mjs.map +1 -1
- package/lib/core/utils/internal/Disposable.js +3 -27
- package/lib/core/utils/internal/Disposable.js.map +1 -1
- package/lib/core/utils/internal/Disposable.mjs +3 -27
- package/lib/core/utils/internal/Disposable.mjs.map +1 -1
- package/lib/core/utils/internal/parseGraphQLRequest.d.mts +2 -2
- package/lib/core/utils/internal/parseGraphQLRequest.d.ts +2 -2
- package/lib/core/utils/internal/parseGraphQLRequest.js +72 -112
- package/lib/core/utils/internal/parseGraphQLRequest.js.map +1 -1
- package/lib/core/utils/internal/parseGraphQLRequest.mjs +72 -113
- package/lib/core/utils/internal/parseGraphQLRequest.mjs.map +1 -1
- package/lib/core/utils/internal/parseMultipartData.d.mts +1 -1
- package/lib/core/utils/internal/parseMultipartData.d.ts +1 -1
- package/lib/core/utils/internal/parseMultipartData.js +3 -4
- package/lib/core/utils/internal/parseMultipartData.js.map +1 -1
- package/lib/core/utils/internal/parseMultipartData.mjs +3 -4
- package/lib/core/utils/internal/parseMultipartData.mjs.map +1 -1
- package/lib/core/utils/internal/requestHandlerUtils.d.mts +1 -1
- package/lib/core/utils/internal/requestHandlerUtils.d.ts +1 -1
- package/lib/core/utils/internal/tryCatch.js +1 -1
- package/lib/core/utils/internal/tryCatch.js.map +1 -1
- package/lib/core/utils/internal/tryCatch.mjs +1 -1
- package/lib/core/utils/internal/tryCatch.mjs.map +1 -1
- package/lib/core/utils/logging/serializeRequest.js +9 -31
- package/lib/core/utils/logging/serializeRequest.js.map +1 -1
- package/lib/core/utils/logging/serializeRequest.mjs +9 -31
- package/lib/core/utils/logging/serializeRequest.mjs.map +1 -1
- package/lib/core/utils/logging/serializeResponse.js +11 -33
- package/lib/core/utils/logging/serializeResponse.js.map +1 -1
- package/lib/core/utils/logging/serializeResponse.mjs +11 -33
- package/lib/core/utils/logging/serializeResponse.mjs.map +1 -1
- package/lib/core/utils/request/getRequestCookies.js +9 -18
- package/lib/core/utils/request/getRequestCookies.js.map +1 -1
- package/lib/core/utils/request/getRequestCookies.mjs +9 -20
- package/lib/core/utils/request/getRequestCookies.mjs.map +1 -1
- package/lib/core/utils/request/onUnhandledRequest.d.mts +1 -1
- package/lib/core/utils/request/onUnhandledRequest.d.ts +1 -1
- package/lib/core/utils/request/onUnhandledRequest.js +62 -84
- package/lib/core/utils/request/onUnhandledRequest.js.map +1 -1
- package/lib/core/utils/request/onUnhandledRequest.mjs +62 -84
- package/lib/core/utils/request/onUnhandledRequest.mjs.map +1 -1
- package/lib/core/utils/request/readResponseCookies.js +1 -18
- package/lib/core/utils/request/readResponseCookies.js.map +1 -1
- package/lib/core/utils/request/readResponseCookies.mjs +1 -20
- package/lib/core/utils/request/readResponseCookies.mjs.map +1 -1
- package/lib/iife/index.js +678 -958
- package/lib/iife/index.js.map +1 -1
- package/lib/mockServiceWorker.js +2 -2
- package/lib/native/index.js +5 -23
- package/lib/native/index.js.map +1 -1
- package/lib/native/index.mjs +5 -24
- package/lib/native/index.mjs.map +1 -1
- package/lib/node/index.js +5 -23
- package/lib/node/index.js.map +1 -1
- package/lib/node/index.mjs +5 -24
- package/lib/node/index.mjs.map +1 -1
- package/package.json +32 -37
- package/src/browser/setupWorker/setupWorker.ts +6 -0
- package/src/browser/setupWorker/start/createStartHandler.ts +0 -8
- package/src/core/handlers/GraphQLHandler.test.ts +7 -3
- package/src/core/handlers/HttpHandler.test.ts +7 -2
- package/src/core/handlers/RequestHandler.ts +24 -4
- package/src/core/utils/getResponse.ts +12 -6
- package/src/core/utils/handleRequest.test.ts +20 -0
- package/src/core/utils/handleRequest.ts +4 -3
|
@@ -64,6 +64,7 @@ export type ResponseResolverInfo<
|
|
|
64
64
|
RequestBodyType extends DefaultBodyType = DefaultBodyType,
|
|
65
65
|
> = {
|
|
66
66
|
request: StrictRequest<RequestBodyType>
|
|
67
|
+
requestId: string
|
|
67
68
|
} & ResolverExtraInfo
|
|
68
69
|
|
|
69
70
|
export type ResponseResolver<
|
|
@@ -93,6 +94,7 @@ export interface RequestHandlerExecutionResult<
|
|
|
93
94
|
handler: RequestHandler
|
|
94
95
|
parsedResult?: ParsedResult
|
|
95
96
|
request: Request
|
|
97
|
+
requestId: string
|
|
96
98
|
response?: Response
|
|
97
99
|
}
|
|
98
100
|
|
|
@@ -220,6 +222,7 @@ export abstract class RequestHandler<
|
|
|
220
222
|
*/
|
|
221
223
|
public async run(args: {
|
|
222
224
|
request: StrictRequest<any>
|
|
225
|
+
requestId: string
|
|
223
226
|
resolutionContext?: ResponseResolutionContext
|
|
224
227
|
}): Promise<RequestHandlerExecutionResult<ParsedResult> | null> {
|
|
225
228
|
if (this.isUsed && this.options?.once) {
|
|
@@ -263,15 +266,30 @@ export abstract class RequestHandler<
|
|
|
263
266
|
request: args.request,
|
|
264
267
|
parsedResult,
|
|
265
268
|
})
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
269
|
+
|
|
270
|
+
const mockedResponsePromise = (
|
|
271
|
+
executeResolver({
|
|
272
|
+
...resolverExtras,
|
|
273
|
+
requestId: args.requestId,
|
|
274
|
+
request: args.request,
|
|
275
|
+
}) as Promise<Response>
|
|
276
|
+
).catch((errorOrResponse) => {
|
|
277
|
+
// Allow throwing a Response instance in a response resolver.
|
|
278
|
+
if (errorOrResponse instanceof Response) {
|
|
279
|
+
return errorOrResponse
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
// Otherwise, throw the error as-is.
|
|
283
|
+
throw errorOrResponse
|
|
284
|
+
})
|
|
285
|
+
|
|
286
|
+
const mockedResponse = await mockedResponsePromise
|
|
270
287
|
|
|
271
288
|
const executionResult = this.createExecutionResult({
|
|
272
289
|
// Pass the cloned request to the result so that logging
|
|
273
290
|
// and other consumers could read its body once more.
|
|
274
291
|
request: requestClone,
|
|
292
|
+
requestId: args.requestId,
|
|
275
293
|
response: mockedResponse,
|
|
276
294
|
parsedResult,
|
|
277
295
|
})
|
|
@@ -330,12 +348,14 @@ export abstract class RequestHandler<
|
|
|
330
348
|
|
|
331
349
|
private createExecutionResult(args: {
|
|
332
350
|
request: Request
|
|
351
|
+
requestId: string
|
|
333
352
|
parsedResult: ParsedResult
|
|
334
353
|
response?: Response
|
|
335
354
|
}): RequestHandlerExecutionResult<ParsedResult> {
|
|
336
355
|
return {
|
|
337
356
|
handler: this,
|
|
338
357
|
request: args.request,
|
|
358
|
+
requestId: args.requestId,
|
|
339
359
|
response: args.response,
|
|
340
360
|
parsedResult: args.parsedResult,
|
|
341
361
|
}
|
|
@@ -16,16 +16,22 @@ export interface ResponseResolutionContext {
|
|
|
16
16
|
/**
|
|
17
17
|
* Returns a mocked response for a given request using following request handlers.
|
|
18
18
|
*/
|
|
19
|
-
export const getResponse = async <Handler extends Array<RequestHandler>>(
|
|
20
|
-
request
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
export const getResponse = async <Handler extends Array<RequestHandler>>({
|
|
20
|
+
request,
|
|
21
|
+
requestId,
|
|
22
|
+
handlers,
|
|
23
|
+
resolutionContext,
|
|
24
|
+
}: {
|
|
25
|
+
request: Request
|
|
26
|
+
requestId: string
|
|
27
|
+
handlers: Handler
|
|
28
|
+
resolutionContext?: ResponseResolutionContext
|
|
29
|
+
}): Promise<ResponseLookupResult | null> => {
|
|
24
30
|
let matchingHandler: RequestHandler | null = null
|
|
25
31
|
let result: RequestHandlerExecutionResult<any> | null = null
|
|
26
32
|
|
|
27
33
|
for (const handler of handlers) {
|
|
28
|
-
result = await handler.run({ request, resolutionContext })
|
|
34
|
+
result = await handler.run({ request, requestId, resolutionContext })
|
|
29
35
|
|
|
30
36
|
// If the handler produces some result for this request,
|
|
31
37
|
// it automatically becomes matching.
|
|
@@ -355,6 +355,26 @@ it('returns undefined without warning on a passthrough request', async () => {
|
|
|
355
355
|
expect(handleRequestOptions.onMockedResponse).not.toHaveBeenCalled()
|
|
356
356
|
})
|
|
357
357
|
|
|
358
|
+
it('calls the handler with the requestId', async () => {
|
|
359
|
+
const { emitter } = setup()
|
|
360
|
+
|
|
361
|
+
const requestId = uuidv4()
|
|
362
|
+
const request = new Request(new URL('http://localhost/user'))
|
|
363
|
+
const handlerFn = vi.fn()
|
|
364
|
+
const handlers: Array<RequestHandler> = [http.get('/user', handlerFn)]
|
|
365
|
+
|
|
366
|
+
await handleRequest(
|
|
367
|
+
request,
|
|
368
|
+
requestId,
|
|
369
|
+
handlers,
|
|
370
|
+
options,
|
|
371
|
+
emitter,
|
|
372
|
+
handleRequestOptions,
|
|
373
|
+
)
|
|
374
|
+
|
|
375
|
+
expect(handlerFn).toHaveBeenCalledWith(expect.objectContaining({ requestId }))
|
|
376
|
+
})
|
|
377
|
+
|
|
358
378
|
it('marks the first matching one-time handler as used', async () => {
|
|
359
379
|
const { emitter } = setup()
|
|
360
380
|
|
|
@@ -61,11 +61,12 @@ export async function handleRequest(
|
|
|
61
61
|
|
|
62
62
|
// Resolve a mocked response from the list of request handlers.
|
|
63
63
|
const lookupResult = await until(() => {
|
|
64
|
-
return getResponse(
|
|
64
|
+
return getResponse({
|
|
65
65
|
request,
|
|
66
|
+
requestId,
|
|
66
67
|
handlers,
|
|
67
|
-
handleRequestOptions?.resolutionContext,
|
|
68
|
-
)
|
|
68
|
+
resolutionContext: handleRequestOptions?.resolutionContext,
|
|
69
|
+
})
|
|
69
70
|
})
|
|
70
71
|
|
|
71
72
|
if (lookupResult.error) {
|