msw 2.6.8 → 2.7.0
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/init.js +9 -9
- package/cli/invariant.js +2 -2
- package/lib/core/{GraphQLHandler-Cjm7JNGi.d.ts → GraphQLHandler-C5CUIS_N.d.ts} +1 -1
- package/lib/core/{GraphQLHandler-B6uni-E_.d.mts → GraphQLHandler-CLv2BIIm.d.mts} +1 -1
- package/lib/core/{HttpResponse-DzhqZzTK.d.ts → HttpResponse-5Sn2vNaJ.d.ts} +1 -1
- package/lib/core/{HttpResponse-63H9vVoL.d.mts → HttpResponse-CFPhtDH3.d.mts} +1 -1
- package/lib/core/HttpResponse.d.mts +1 -1
- package/lib/core/HttpResponse.d.ts +1 -1
- package/lib/core/HttpResponse.js +3 -0
- package/lib/core/HttpResponse.js.map +1 -1
- package/lib/core/HttpResponse.mjs +3 -0
- package/lib/core/HttpResponse.mjs.map +1 -1
- package/lib/core/SetupApi.d.mts +1 -1
- package/lib/core/SetupApi.d.ts +1 -1
- package/lib/core/getResponse.d.mts +1 -1
- package/lib/core/getResponse.d.ts +1 -1
- package/lib/core/graphql.d.mts +2 -2
- package/lib/core/graphql.d.ts +2 -2
- package/lib/core/handlers/GraphQLHandler.d.mts +2 -2
- package/lib/core/handlers/GraphQLHandler.d.ts +2 -2
- package/lib/core/handlers/HttpHandler.d.mts +1 -1
- package/lib/core/handlers/HttpHandler.d.ts +1 -1
- package/lib/core/handlers/RequestHandler.d.mts +1 -1
- package/lib/core/handlers/RequestHandler.d.ts +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/passthrough.d.mts +1 -1
- package/lib/core/passthrough.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/executeHandlers.d.mts +1 -1
- package/lib/core/utils/executeHandlers.d.ts +1 -1
- package/lib/core/utils/handleRequest.d.mts +1 -1
- package/lib/core/utils/handleRequest.d.ts +1 -1
- package/lib/core/utils/internal/isHandlerKind.d.mts +1 -1
- package/lib/core/utils/internal/isHandlerKind.d.ts +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/parseMultipartData.d.mts +1 -1
- package/lib/core/utils/internal/parseMultipartData.d.ts +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/ws/handleWebSocketEvent.d.mts +1 -1
- package/lib/core/ws/handleWebSocketEvent.d.ts +1 -1
- package/lib/iife/index.js +3 -0
- package/lib/iife/index.js.map +1 -1
- package/lib/mockServiceWorker.js +1 -1
- package/package.json +4 -3
- package/src/core/HttpResponse.test.ts +81 -10
- package/src/core/HttpResponse.ts +8 -1
package/lib/mockServiceWorker.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* - Please do NOT serve this file on production.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
const PACKAGE_VERSION = '2.
|
|
11
|
+
const PACKAGE_VERSION = '2.7.0'
|
|
12
12
|
const INTEGRITY_CHECKSUM = '00729d72e3b82faf54ca8b9621dbb96f'
|
|
13
13
|
const IS_MOCKED_RESPONSE = Symbol('isMockedResponse')
|
|
14
14
|
const activeClientIds = new Set()
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "msw",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.7.0",
|
|
4
4
|
"description": "Seamless REST/GraphQL API mocking library for browser and Node.js.",
|
|
5
5
|
"main": "./lib/core/index.js",
|
|
6
6
|
"module": "./lib/core/index.mjs",
|
|
@@ -127,12 +127,12 @@
|
|
|
127
127
|
"@open-draft/until": "^2.1.0",
|
|
128
128
|
"@types/cookie": "^0.6.0",
|
|
129
129
|
"@types/statuses": "^2.0.4",
|
|
130
|
-
"chalk": "^4.1.2",
|
|
131
130
|
"graphql": "^16.8.1",
|
|
132
131
|
"headers-polyfill": "^4.0.2",
|
|
133
132
|
"is-node-process": "^1.2.0",
|
|
134
133
|
"outvariant": "^1.4.3",
|
|
135
134
|
"path-to-regexp": "^6.3.0",
|
|
135
|
+
"picocolors": "^1.1.1",
|
|
136
136
|
"strict-event-emitter": "^0.5.1",
|
|
137
137
|
"type-fest": "^4.26.1",
|
|
138
138
|
"yargs": "^17.7.2"
|
|
@@ -213,11 +213,12 @@
|
|
|
213
213
|
"check:exports": "node \"./config/scripts/validate-esm.js\"",
|
|
214
214
|
"test": "pnpm test:unit && pnpm test:node && pnpm test:browser && pnpm test:native",
|
|
215
215
|
"test:unit": "vitest",
|
|
216
|
-
"test:node": "vitest
|
|
216
|
+
"test:node": "vitest --config=./test/node/vitest.config.mts",
|
|
217
217
|
"test:native": "vitest --config=./test/native/vitest.config.mts",
|
|
218
218
|
"test:browser": "playwright test -c ./test/browser/playwright.config.ts",
|
|
219
219
|
"test:modules:node": "vitest --config=./test/modules/node/vitest.config.mts",
|
|
220
220
|
"test:modules:browser": "playwright test -c ./test/modules/browser/playwright.config.ts",
|
|
221
|
+
"test:e2e": "vitest run --config=./test/e2e/vitest.config.mts",
|
|
221
222
|
"test:ts": "vitest --typecheck --config=./test/typings/vitest.config.mts",
|
|
222
223
|
"release": "release publish",
|
|
223
224
|
"postinstall": "node -e \"try{require('./config/scripts/postinstall')}catch(e){}\""
|
|
@@ -253,18 +253,89 @@ describe('HttpResponse.html()', () => {
|
|
|
253
253
|
})
|
|
254
254
|
})
|
|
255
255
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
256
|
+
describe('HttpResponse.arrayBuffer()', () => {
|
|
257
|
+
it('creates an array buffer response', async () => {
|
|
258
|
+
const buffer = new TextEncoder().encode('hello world')
|
|
259
|
+
const response = HttpResponse.arrayBuffer(buffer)
|
|
259
260
|
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
261
|
+
expect(response.status).toBe(200)
|
|
262
|
+
expect(response.statusText).toBe('OK')
|
|
263
|
+
expect(response.body).toBeInstanceOf(ReadableStream)
|
|
263
264
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
265
|
+
const responseData = await response.arrayBuffer()
|
|
266
|
+
expect(responseData).toEqual(buffer.buffer)
|
|
267
|
+
expect(Object.fromEntries(response.headers.entries())).toEqual({
|
|
268
|
+
'content-length': '11',
|
|
269
|
+
'content-type': 'application/octet-stream',
|
|
270
|
+
})
|
|
271
|
+
})
|
|
272
|
+
|
|
273
|
+
it('allows overriding the "Content-Type" response header', async () => {
|
|
274
|
+
const buffer = new TextEncoder().encode('hello world')
|
|
275
|
+
const response = HttpResponse.arrayBuffer(buffer, {
|
|
276
|
+
headers: {
|
|
277
|
+
'Content-Type': 'text/plain; charset=utf-8',
|
|
278
|
+
},
|
|
279
|
+
})
|
|
280
|
+
|
|
281
|
+
expect(response.status).toBe(200)
|
|
282
|
+
expect(response.statusText).toBe('OK')
|
|
283
|
+
expect(response.body).toBeInstanceOf(ReadableStream)
|
|
284
|
+
|
|
285
|
+
const responseData = await response.arrayBuffer()
|
|
286
|
+
expect(responseData).toEqual(buffer.buffer)
|
|
287
|
+
expect(Object.fromEntries(response.headers.entries())).toEqual({
|
|
288
|
+
'content-length': '11',
|
|
289
|
+
'content-type': 'text/plain; charset=utf-8',
|
|
290
|
+
})
|
|
291
|
+
})
|
|
292
|
+
|
|
293
|
+
it('creates an array buffer response from a shared array buffer', async () => {
|
|
294
|
+
const arrayBuffer = new TextEncoder().encode('hello world')
|
|
295
|
+
|
|
296
|
+
// Copy the data from the array buffer to a shared array buffer
|
|
297
|
+
const sharedBuffer = new SharedArrayBuffer(11)
|
|
298
|
+
const sharedView = new Uint8Array(sharedBuffer)
|
|
299
|
+
sharedView.set(arrayBuffer)
|
|
300
|
+
|
|
301
|
+
const response = HttpResponse.arrayBuffer(sharedBuffer)
|
|
302
|
+
|
|
303
|
+
expect(response.status).toBe(200)
|
|
304
|
+
expect(response.statusText).toBe('OK')
|
|
305
|
+
expect(response.body).toBeInstanceOf(ReadableStream)
|
|
306
|
+
|
|
307
|
+
const responseData = await response.arrayBuffer()
|
|
308
|
+
expect(responseData).toEqual(arrayBuffer.buffer)
|
|
309
|
+
expect(Object.fromEntries(response.headers.entries())).toEqual({
|
|
310
|
+
'content-length': '11',
|
|
311
|
+
'content-type': 'application/octet-stream',
|
|
312
|
+
})
|
|
313
|
+
})
|
|
314
|
+
|
|
315
|
+
it('allows overriding the "Content-Type" response header for shared array buffers', async () => {
|
|
316
|
+
const arrayBuffer = new TextEncoder().encode('hello world')
|
|
317
|
+
|
|
318
|
+
// Copy the data from the array buffer to a shared array buffer
|
|
319
|
+
const sharedBuffer = new SharedArrayBuffer(11)
|
|
320
|
+
const sharedView = new Uint8Array(sharedBuffer)
|
|
321
|
+
sharedView.set(arrayBuffer)
|
|
322
|
+
|
|
323
|
+
const response = HttpResponse.arrayBuffer(sharedBuffer, {
|
|
324
|
+
headers: {
|
|
325
|
+
'Content-Type': 'text/plain; charset=utf-8',
|
|
326
|
+
},
|
|
327
|
+
})
|
|
328
|
+
|
|
329
|
+
expect(response.status).toBe(200)
|
|
330
|
+
expect(response.statusText).toBe('OK')
|
|
331
|
+
expect(response.body).toBeInstanceOf(ReadableStream)
|
|
332
|
+
|
|
333
|
+
const responseData = await response.arrayBuffer()
|
|
334
|
+
expect(responseData).toEqual(arrayBuffer.buffer)
|
|
335
|
+
expect(Object.fromEntries(response.headers.entries())).toEqual({
|
|
336
|
+
'content-length': '11',
|
|
337
|
+
'content-type': 'text/plain; charset=utf-8',
|
|
338
|
+
})
|
|
268
339
|
})
|
|
269
340
|
})
|
|
270
341
|
|
package/src/core/HttpResponse.ts
CHANGED
|
@@ -153,9 +153,16 @@ export class HttpResponse extends Response {
|
|
|
153
153
|
*
|
|
154
154
|
* HttpResponse.arrayBuffer(buffer)
|
|
155
155
|
*/
|
|
156
|
-
static arrayBuffer(
|
|
156
|
+
static arrayBuffer(
|
|
157
|
+
body?: ArrayBuffer | SharedArrayBuffer,
|
|
158
|
+
init?: HttpResponseInit,
|
|
159
|
+
): Response {
|
|
157
160
|
const responseInit = normalizeResponseInit(init)
|
|
158
161
|
|
|
162
|
+
if (!responseInit.headers.has('Content-Type')) {
|
|
163
|
+
responseInit.headers.set('Content-Type', 'application/octet-stream')
|
|
164
|
+
}
|
|
165
|
+
|
|
159
166
|
if (body && !responseInit.headers.has('Content-Length')) {
|
|
160
167
|
responseInit.headers.set('Content-Length', body.byteLength.toString())
|
|
161
168
|
}
|