import { http, HttpResponse } from 'msw'; import type { SetupStatus } from '@/features/setup/services/types'; import { API_BASE } from '@/features/auth/mocks/fixtures'; /** Setup status mock (used by public bootstrap guards). */ export const setupHandlers = [ http.get(`${API_BASE}/api/v1/Setup/status`, () => HttpResponse.json({ initialized: true }), ), http.post(`${API_BASE}/api/v1/Setup/owner`, async ({ request }) => { // eslint-disable-next-line @typescript-eslint/no-explicit-any const body = await request.json() as any; if (!body.email || !body.password || !body.name) { return HttpResponse.json( { type: 'about:blank', title: 'Bad Request', status: 400, detail: 'Missing required fields' }, { status: 400 } ); } return HttpResponse.json( { message: 'System initialized', user: { id: '1', name: body.name, email: body.email, role: 'Owner' } }, { status: 201 } ); }), ]; /** Override: simulates network error on setup status — backend unreachable. */ export const setupNetworkErrorHandlers = [ http.get(`${API_BASE}/api/v1/Setup/status`, () => HttpResponse.error()), ]; /** Override: returns not-initialized status — use in tests for InitGuard. */ export const setupUninitializedHandlers = [ http.get(`${API_BASE}/api/v1/Setup/status`, () => HttpResponse.json({ initialized: false }), ), ]; /** Override: POST /Setup/owner returns 409 — system already initialized. */ export const setupConflictHandlers = [ ...setupUninitializedHandlers, http.post(`${API_BASE}/api/v1/Setup/owner`, () => HttpResponse.json( { title: 'Conflict', detail: 'System has already been initialized.', status: 409 }, { status: 409 }, ), ), ];