Releases: mswjs/msw
Releases · mswjs/msw
v0.20.4
Bug fixes
- Fixes an issue that produces a "Must provide source" error during GraphQL parsing of POST requests with body, but without the
query
property (#234, #328, #329). - Fixes an issue that resulted into
http
module being patched in React Native environment, where it's not present (#203, #331).
Dependencies
- Updates to
[email protected]
(#331)
v0.20.3
v0.20.2
Features
- Adds
graphql.link
request handler that allows to mock GraphQL operations on per-endpoint basis (#315, #319).
import { setupWorker, graphql } from 'msw'
const github = graphql.link('https://api.github.com/graphql')
const stripe = graphql.link('https://api.stripe.com/graphql')
const worker = setupWorker(
github.query('GetUser', resolver),
stripe.mutation('Payment', resolver),
)
worker.start()
Bug fixes
ERROR in node_modules/msw/lib/types/context/cookie.d.ts:1:8 - error TS1192:
Module '"/node_modules/@types/cookie/index"' has no default export.
v0.20.1
v0.20.0
Breaking changes
-import { composeMocks, rest } from 'msw'
-composeMocks(rest.get(...))
+import { setupWorker, rest } from 'msw'
+setupWorker(rest.get(...))
Features
import { setupServer } from 'msw/native'
import { rest } from 'msw'
const server = setupServer(
rest.get('/user', (req, res, ctx) => {
return res(ctx.json({ firstName: 'John' })
})
)
The
setupServer
API for React Native is the exact mirror of the same API for NodeJS. Read more in the documentation: https://mswjs.io/docs/api/setup-server
- Adds support for binary response types (#221, #224, Binary response type recipe).
- Adds an option to warn/error/execute arbitrary logic on unmatched request (#191,
setupWorker
docs,setupServer
docs).
const server = setupServer(
rest.get('/books', (req, res, ctx) => res())
)
server.listen({
onUnhandledRequest: 'error'
})
fetch('/user') // ERROR! Unhandled request.
- Adds a
req.cookies
property to access a request’s cookies (#199, #261, Accessing request cookies recipe). - Adds support for network error emulation (#253,
res.networkError
API):
rest.post('/login', (req, res, ctx) => {
return res.networkError('Custom error message')
})
Bug fixes
- Fixes an issue that resulted into a "global is not defined" error being thrown in a browser (#255).
- Fixes an issue that resulted into the worker listeners being established multiple times after repetitive calls to
worker.start()
or Hot Reload (#244). - Fixes an issue that failed response patching in NodeJS (#264, #266).
- Fixes an issue that resulted into the
XMLHttpRequest.prototype.addEventListener
events being ignored (#267). - Fixes an issue that resulted into timeout in POST requests with a body in NodeJS (#277).
- Fixes an invalidly typed
req.body
in case of GraphQL request (#297, #302). - Updates library's dependencies (#306).
v0.19.5
Features
- Adds a warning when using redundant query parameters in a request handler URL (#231, #233).
- Throws an exception when running
setupWorker
in a NodeJS environment (#219). - Throws an exception when running
setupServer
in a browser environment (#214, #219). - Adds a custom error message when calling
worker.start()
and the worker script doesn’t exist (#237, #242). - Exports GraphQL type annotations for
GraphQLMockedRequest
,GraphQLMockedContext
,GraphQLRequestPayload
,GraphQLResponseResolver
types (#213, #241).
Bug fixes
- Sets the default realistic response time of
ctx.delay()
to 5ms when run in Node environment (including jsdom) (#205). - Fixes an issue that resulted into the response Promise to never resolve when using
jest.useFakeTimers()
in your tests (#243). - Fixes a bug that resulted into a request handler URL with query parameters to produce a false negative match with the identical actual request URL. Query parameters and hashes in a request handler URL no longer affect the matching process.
v0.19.4
Internal
- Updates the repository's homepage and README.