import { vi } from 'vitest' import { getCookie, setCookie, getMethod, getHeader, getHeaders, setHeader, getRequestURL, createError, defineEventHandler, readBody, getQuery, getRouterParam, sendRedirect } from 'h3' // Register real h3 functions as globals so server code that relies on // Nitro auto-imports can find them in the test environment. vi.stubGlobal('getCookie', getCookie) vi.stubGlobal('setCookie', setCookie) vi.stubGlobal('getMethod', getMethod) vi.stubGlobal('getHeader', getHeader) vi.stubGlobal('getHeaders', getHeaders) vi.stubGlobal('setHeader', setHeader) vi.stubGlobal('getRequestURL', getRequestURL) vi.stubGlobal('createError', createError) vi.stubGlobal('defineEventHandler', defineEventHandler) vi.stubGlobal('readBody', readBody) vi.stubGlobal('getQuery', getQuery) vi.stubGlobal('getRouterParam', getRouterParam) vi.stubGlobal('sendRedirect', sendRedirect) vi.stubGlobal('useRuntimeConfig', () => ({ jwtSecret: 'test-jwt-secret', helcimApiToken: 'test-helcim-token' })) // Stubs for Nitro auto-imported server/utils (used by handlers that don't explicitly import them) vi.stubGlobal('requireAuth', vi.fn()) vi.stubGlobal('requireAdmin', vi.fn()) vi.stubGlobal('validateBody', vi.fn(async (event) => readBody(event))) vi.stubGlobal('logActivity', vi.fn()) vi.stubGlobal('validateTagSlugs', vi.fn()) // Real server/utils that are safe to use as-is in tests import { escapeRegex } from '../../server/utils/escapeRegex.js' vi.stubGlobal('escapeRegex', escapeRegex)