Source identity
| Field | Recorded value |
|---|---|
| Source type | GitHub source |
| Original record | Janady13/llms-txt-hub / apps/web/test/test-utils.tsx |
| Date | Not specified in source |
| Repository | Janady13/llms-txt-hub |
| Revision | e0f4bf978d4df168369c7601d9c5f5ea89e84377 |
| Branch | main |
| Path or archive member | apps/web/test/test-utils.tsx |
| Original SHA-256 | e3fb79977043536ca208f4a0f6657dca105b26ec8be788f2356a31d92f7fd82c |
| Git blob SHA | 22ac02df06f39ead312679ded9a70b89d670f9d4 |
| Reading-copy SHA-256 | e3fb79977043536ca208f4a0f6657dca105b26ec8be788f2356a31d92f7fd82c |
Recovered source transcript
Download complete source text ↓85 lines · 1.9 KB
import { type RenderOptions, type RenderResult, render as rtlRender } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import React from 'react'
import { Toaster } from 'sonner'
// Mock implementations
const MockThemeProvider = ({
children,
attribute,
defaultTheme,
enableSystem
}: {
children: React.ReactNode
attribute?: string
defaultTheme?: string
enableSystem?: boolean
}) => {
return <>{children}</>
}
const MockAuthProvider = ({ children }: { children: React.ReactNode }) => {
return <>{children}</>
}
// Mock auth context
export const mockAuthContext = {
user: null,
isLoading: false,
signIn: jest.fn(),
signOut: jest.fn()
}
// Mock theme context
export const mockThemeContext = {
theme: 'light',
setTheme: jest.fn()
}
/**
* Renders a React element with the test-only providers used across component tests.
*
* @param ui - React element to render
* @param options - Testing Library render options
* @returns The Testing Library render result
*/
function render(
ui: React.ReactElement,
{
authContext = mockAuthContext,
themeContext = mockThemeContext,
...options
}: RenderOptions & {
authContext?: typeof mockAuthContext
themeContext?: typeof mockThemeContext
} = {}
): RenderResult {
function Wrapper({ children }: { children: React.ReactNode }) {
return (
<MockThemeProvider attribute="class" defaultTheme="system" enableSystem>
<MockAuthProvider>
{children}
<Toaster />
</MockAuthProvider>
</MockThemeProvider>
)
}
return rtlRender(ui, { wrapper: Wrapper, ...options })
}
// Test utilities
export const createMockRouter = (props: any) => ({
push: jest.fn(),
replace: jest.fn(),
back: jest.fn(),
forward: jest.fn(),
refresh: jest.fn(),
prefetch: jest.fn(),
...props
})
// Re-export everything
export * from '@testing-library/react'
export { render, userEvent }