34 lines
963 B
TypeScript
34 lines
963 B
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,
|
|
});
|
|
}
|
|
|