import { render, screen } from '@testing-library/react';
import { vi } from 'vitest';
import { I18nProvider } from '@/hooks/useI18n';
import { QueryProvider } from '@/providers/QueryProvider';
import ResourceFlowList from './ResourceFlowList';
// Mock translation to return readable strings for keys we use
vi.mock('../../../hooks/useI18n', async () => {
const actual = await vi.importActual('../../../hooks/useI18n');
return {
...actual,
useTranslation: () => ({
t: (k: string) => {
if (k === 'resourceFlows.title') return 'Resource Flows';
if (k === 'resourceFlows.inputs') return 'Inputs';
if (k === 'resourceFlows.outputs') return 'Outputs';
if (k === 'resourceFlows.noInputs') return 'No inputs';
if (k === 'resourceFlows.noOutputs') return 'No outputs';
return k;
},
}),
};
});
describe('ResourceFlowList', () => {
test('shows empty state when no data', () => {
vi.mock('../../../hooks/api', () => ({
useResourceFlowsByOrganization: () => ({ data: [], isLoading: false, error: null }),
}));
render(
);
expect(screen.getByText('Resource Flows')).toBeInTheDocument();
expect(screen.getByText('No input flows defined')).toBeInTheDocument();
});
test('renders tabs correctly', () => {
vi.mock('../../../hooks/api', () => ({
useResourceFlowsByOrganization: () => ({ data: [], isLoading: false, error: null }),
}));
render(
);
// Should render tab buttons
expect(screen.getByText('Inputs (0)')).toBeInTheDocument();
expect(screen.getByText('Outputs (0)')).toBeInTheDocument();
});
});