Multiple workspaces

Vitest is an extremely versatile testing framework. You can use it for your unit tests in Node.js, for your integration tests, for component-level testing with the Browser Mode, for benchmarking... All within the same tool. But those are still quite different tests and as such, they may require different configurations to run.
You can configure multiple test projects, or workspaces, within the same repository to help Vitest differentiate between all the layers of testing you have. This is a great way to utilize Vitest to the fullest while implementing a great test coverage.

Your task

This brings me to the application at hand, which has two testing layers: unit and integration tests. While the unit tests run in a regular Node.js environment, the integration tests are a bit different.
See, our application happened to use edge functions (find them in src/api). We still have to test those functions in isolation but that's where a Node.js test won't cut it. Edge environment is fundamentally different from Node.js both in available APIs and behaviors.
So to test our edge functions we are going to use a custom environment called edge-runtime. It's modelled after the common runtimes you can find in providers like Vercel or Netlify, and it will allow us to bring our edge functions to a similar habitat as production.
👨‍💼 In this exercise, your goal is to configure Vitest to have two different workspaces: one for the unit tests and another for the edge tests. Start from the instructions below.
🐨 First, install edge-runtime, @edge-runtime/vm, and @edge-runtime/types in your project. You will use these to procure the correct test environment for your edge functions.
npm install edge-runtime @edge-runtime/vm @edge-runtime/types --save-dev
🐨 Next, head to and complete it to have two different workspaces defined. Use different filename patterns to apply workspaces to their respective tests: **/*.test.ts for unit tests and **/*.edge.test.ts for the edge tests.
🐨 Once the Vitest is configured, head to the test files at and and follow the instructions to write a few tests.
And, of course, run npm test to verify that all the tests are running in their correct environments and passing. Good luck!

Please set the playground first

Loading "Multiple workspaces"
Loading "Multiple workspaces"