import { setupServer } from 'msw/node';
import { handlers, errorHandlers, performanceHandlers } from './handlers';

// Configuration du serveur MSW pour les tests
export const server = setupServer(...handlers);

// Fonction pour basculer vers les handlers d'erreur
export const switchToErrorHandlers = () => {
  server.use(...errorHandlers);
};

// Fonction pour basculer vers les handlers de performance
export const switchToPerformanceHandlers = () => {
  server.use(...performanceHandlers);
};

// Fonction pour réinitialiser les handlers
export const resetHandlers = () => {
  server.resetHandlers();
};

// Fonction pour restaurer les handlers par défaut
export const restoreHandlers = () => {
  server.restoreHandlers();
};

// Configuration globale pour les tests
beforeAll(() => {
  server.listen({
    onUnhandledRequest: 'warn',
  });
});

afterEach(() => {
  server.resetHandlers();
});

afterAll(() => {
  server.close();
});
