Skip to main content
Glama
msw-mocks.ts2.61 kB
import { http, HttpResponse, delay } from 'msw'; import { setupServer } from 'msw/node'; // ============================================ // Mock Database // ============================================ const users = [ { id: 1, name: 'John Doe', email: 'john@example.com' }, { id: 2, name: 'Jane Doe', email: 'jane@example.com' }, ]; // ============================================ // Handlers // ============================================ export const handlers = [ // GET Users http.get('https://api.example.com/users', async () => { // Simulate network delay await delay(500); return HttpResponse.json(users); }), // GET User by ID http.get('https://api.example.com/users/:id', async ({ params }) => { const { id } = params; const user = users.find(u => u.id === Number(id)); if (!user) { return new HttpResponse(null, { status: 404 }); } return HttpResponse.json(user); }), // POST Create User http.post('https://api.example.com/users', async ({ request }) => { const newUser = (await request.json()) as any; // Basic validation mock if (!newUser.email) { return HttpResponse.json( { error: 'Email required' }, { status: 400 } ); } return HttpResponse.json( { id: 3, ...newUser }, { status: 201 } ); }), // AUTH Login http.post('https://api.example.com/login', async ({ request }) => { const { email } = (await request.json()) as any; if (email === 'admin@example.com') { return HttpResponse.json({ token: 'mock-jwt-token', user: { id: 1, role: 'admin' } }); } return HttpResponse.json( { message: 'Invalid credentials' }, { status: 401 } ); }), ]; // ============================================ // Server Setup (Node environment) // ============================================ // Use this in your setupTests.ts export const server = setupServer(...handlers); /* // In setupTests.ts: beforeAll(() => server.listen()); afterEach(() => server.resetHandlers()); afterAll(() => server.close()); */ // ============================================ // Browser Setup (Client environment) // ============================================ /* import { setupWorker } from 'msw/browser'; const worker = setupWorker(...handlers); // In main.tsx: if (process.env.NODE_ENV === 'development') { worker.start(); } */

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/millsydotdev/Code-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server