Mock Service Worker(msw) releases 2.0

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • console

    Oxide Web Console (by oxidecomputer)

  • Yeah, basically. We do it with a function call where the argument to the function is that interface representing all the API endpoints. `makeHandlers` handles parsing path params, query params, and request body and passes them to each endpoint handler. So the runtime validation of request bodies is also generated — we generate a zod schema for each request body in the OpenAPI definition and use it to parse the actual request body that comes in.

    big function call https://github.com/oxidecomputer/console/blob/bd65b9da7019ad...

    automatic body parsing and argument passing: https://github.com/oxidecomputer/console/blob/bd65b9da7019ad...

    When an endpoint gets added to the spec, we can rerun the generator and get type errors in the `makeHandlers` telling us endpdoints are missing.

  • oxide.ts

    TypeScript client for the Oxide API (by oxidecomputer)

  • Reposting at top level because the parent got flagged.

    At my job we've found working with MSW + OpenAPI to be near miraculous. I work on a web frontend and do most of my development against a mock API powered by MSW. This live preview runs against the mock API running fully in-browser.

    https://oxide-console-preview.vercel.app

    More details:

    https://github.com/oxidecomputer/oxide.ts

    https://github.com/oxidecomputer/console

    https://oxide.computer/podcasts/oxide-and-friends/1426644

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • orval

    orval is able to generate client with appropriate type-signatures (TypeScript) from any valid OpenAPI v3 or Swagger v2 specification, either in yaml or json formats. 🍺

  • we started using (and now contributing to) https://orval.dev/ this year which both generates the mocks using MSW as well as the client-side networking code (React Query in our case). It removes so much boilerplate its amazing.

    wrote up the basics of our workflow few weeks ago https://betaacid.co/blog/api-contracts

  • moonfire-nvr

    Moonfire NVR, a security camera network video recorder

  • How do folks test timing-related stuff with MSW? AFAIK, MSW doesn't get along with jest.useFakeTimers. It drives me nuts; I have a bunch of disabled tests in an open-source project and at least one that is flaky because it uses real timers where I'd like to be using fake timers. [1, 2]

    I've been thinking about ripping out MSW from my tests in favor of my own API-level mock for this reason. But it seems like many other folks are happy with MSW. I have to assume there's something I'm not getting. I'm a fish out of water with frontend stuff in general...

    [1] https://github.com/scottlamb/moonfire-nvr/blob/5ea5d27908f1a...

    [2] https://github.com/scottlamb/moonfire-nvr/blob/5ea5d27908f1a...

  • meetup-contacts-app-2021

    Modern, structured React application demo with pages, services. An Opinionated React App template for large projects.

  • One of the biggest advantages of MSW, is that you can use the same mock server in your unit tests (jest) on Node.js environment and run the full frontend in the Browser for development and preview.

    The best if you have totally the same mock data, so super easy to debug your tests.

    Also, you can use this trick to have scenarios, so you can demo different behaviours just by passing a query param. QA loves it as well.

    https://github.com/zoltan-nz/meetup-contacts-app-2021/blob/m...

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts