← back to Angels Flowers

test-utils/index.tsx

37 lines

import { ReactElement, ReactNode } from 'react';
import { render, RenderOptions } from '@testing-library/react';

interface AllTheProvidersProps {
  children: ReactNode;
}

/**
 * Wrapper component that can be extended with providers as needed.
 * Currently returns children directly, but can be extended to include
 * ThemeProvider or other context providers when testing components
 * that require them.
 */
function AllTheProviders({ children }: AllTheProvidersProps) {
  return <>{children}</>;
}

/**
 * Custom render function that wraps components with necessary providers
 * for testing. This can be extended to include ThemeProvider or other
 * context providers as needed.
 *
 * Usage:
 *   import { render } from '@/test-utils';
 *   render(<MyComponent />);
 */
const customRender = (
  ui: ReactElement,
  options?: Omit<RenderOptions, 'wrapper'>
) => render(ui, { wrapper: AllTheProviders, ...options });

// Re-export everything from React Testing Library
export * from '@testing-library/react';

// Override render with our custom version
export { customRender as render };