Comments (5)
Support for multiple API may also be a viable option.
from msw.
To expand on functional composition, consider
msw.get('...', (req, { response, status, json }) => {
return response(
status(301),
json({ message: 'Item has been moved' }),
)
})
... // Inject context in another file
msw.init({ response: ..., status: ..., json: ... })
You can also implement Express style res
on top of this kind of protocol.
from msw.
@bebraw yeah, this is one of the ways to group essential utils without having to explicitly import them.
Maybe one thing I would move aside is the response
itself. It feels wrong to expose it on the same level with helper functions, when it must be obligatory to use in the handler. Do you think it's reasonable to allow to return anything from the handler function ((req, { ... }) => any
), but at the same time ship with some pre-defined helpers?
from msw.
I've adopted the functional composition approach. You can see the example of usage in the current README. With something like context
exposed as the third argument of the handler function, it eliminates the only issue I had against this approach—exposure of essential utils (json
, set
, etc.).
I like the current signature, and especially adore that a developer can write his own mocking helpers following a straightforward API.
msw.get('https://api.com/user/:username', (req, res, { status, json }) => {
return res(
status(301, 'Moved far away'),
json({ message: `The user "${req.params.username}" has been moved` }),
)
})
from msw.
Response mocking API has been defined in favor of functional composition. I will add/update any relevant documentation once GitBook unblocks my account.
Closing this issue, but welcome any succeeding discussion on the topic.
from msw.
Related Issues (20)
- Support aborting requests in handlers HOT 1
- Package ./node is not exported from package Users/User/Application/node_modules/msw HOT 7
- Playwright-based smoke tests are failing HOT 1
- Initial page load requests aren't intercepted since 2.1.0 HOT 7
- Range header for 206 Partial Content is not respected for binary media requests HOT 5
- Failed to fetch after first interception HOT 7
- TypeScript error using `passthrough()` in GraphQL mock HOT 1
- Node 20 types not supported HOT 1
- 2.1.0 breaks browser usage HOT 15
- Drop request parsing from "onUnhandledRequest" HOT 2
- Avoid barrel file exports HOT 44
- Drop `headers-polyfill` HOT 3
- Consider bundling browser entrypoints HOT 7
- "request" in worker.events.on('response:mocked') is always null HOT 3
- Feature Request: Support Passthrough from msw Endpoint to msw Endpoint HOT 2
- MSW fails to start Mock because worker update() fails. HOT 1
- Mocking with react-query and graphql-request stopped working after upgrade to the LTS version of msw HOT 1
- MSW fails to recognize a registered handler HOT 1
- MSW mock does not work in jest test HOT 1
- Request in worker.events.on('response:mocked', {request} is always null HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from msw.