35 lines
1.0 KiB
TypeScript
35 lines
1.0 KiB
TypeScript
// __tests__/utils/test-utils.tsx
|
|
import { render, type RenderOptions } from '@testing-library/react';
|
|
import { type ReactElement, type ReactNode } from 'react';
|
|
import { ReactFlowProvider } from '@xyflow/react';
|
|
import useFlowStore from '../../src/pages/VisProgPage/visualProgrammingUI/VisProgStores';
|
|
|
|
/**
|
|
* Custom render function that wraps components with necessary providers
|
|
* This ensures all components have access to ReactFlow context
|
|
*/
|
|
export function renderWithProviders(
|
|
ui: ReactElement,
|
|
options?: Omit<RenderOptions, 'wrapper'>
|
|
) {
|
|
function Wrapper({ children }: { children: ReactNode }) {
|
|
return <ReactFlowProvider>{children}</ReactFlowProvider>;
|
|
}
|
|
|
|
return render(ui, { wrapper: Wrapper, ...options });
|
|
}
|
|
|
|
/**
|
|
* Helper to reset the Zustand store between tests
|
|
* This ensures test isolation
|
|
*/
|
|
export function resetFlowStore() {
|
|
useFlowStore.setState({
|
|
nodes: [],
|
|
edges: [],
|
|
edgeReconnectSuccessful: true,
|
|
});
|
|
}
|
|
|
|
// Re-export everything from testing library
|
|
export * from '@testing-library/react'; |