import React from 'react';
import { describe, it, expect } from 'vitest';
import { render, screen } from '@testing-library/react';
import { MemoryRouter } from 'react-router-dom';
import { I18nextProvider } from 'react-i18next';
import { ThemeProvider } from '@/app/providers/ThemeProvider';
import '@testing-library/jest-dom';
import { PortfolioExecutiveTimeline } from '@/features/projects/components/PortfolioExecutiveTimeline';
import i18n from '@/locales/i18n';
import type { PortfolioTimelineRow } from '@/features/projects/types/project.types';

const rows: PortfolioTimelineRow[] = [
  {
    id: 'project-p1',
    project_id: 'p1',
    title: 'Delivery Alpha',
    owner: 'PM',
    department: 'Operations',
    start_date: '2026-01-01',
    end_date: '2026-06-01',
    planned_start_date: '2026-01-01',
    planned_end_date: '2026-06-01',
    actual_start_date: null,
    actual_end_date: null,
    progress_percentage: 30,
    status: 'active',
    health: 'healthy',
    current_sprint: null,
    next_milestone: null,
    delayed_milestones_count: 0,
    milestones_count: 2,
    open_risks_count: 0,
    blocked_dependencies_count: 0,
    is_delayed: false,
    is_blocked: false,
    milestones: [
      { id: 'm1', name: 'Go Live', due_date: '2026-05-01', completed: false },
      { id: 'm2', name: 'UAT', due_date: '2026-04-01', completed: true },
    ],
  },
];

describe('PortfolioExecutiveTimeline', () => {
  it('renders milestone-oriented timeline without task columns', () => {
    render(
      <I18nextProvider i18n={i18n}>
        <ThemeProvider>
          <MemoryRouter>
            <PortfolioExecutiveTimeline
              rows={rows}
              rangeStart={new Date('2026-01-01')}
              rangeEnd={new Date('2026-12-31')}
              crossProjectDependencies={[
                {
                  id: 'dep-1',
                  source_project_id: 'p1',
                  target_project_id: 'p2',
                  source_item_type: 'milestone',
                  source_item_id: 'm1',
                  target_item_type: 'milestone',
                  target_item_id: 'm2',
                  dependency_type: 'FS',
                  status: 'open',
                  due_date: '2026-05-15',
                  owner_id: null,
                  notes: null,
                },
              ]}
            />
          </MemoryRouter>
        </ThemeProvider>
      </I18nextProvider>,
    );

    expect(screen.getByText('Delivery Alpha')).toBeInTheDocument();
    expect(screen.queryByText('Go Live')).not.toBeInTheDocument();
    expect(screen.queryByText('UAT')).not.toBeInTheDocument();
    expect(screen.getByText(/Dependencies|الاعتماديات/i)).toBeInTheDocument();
    expect(screen.getByText(/Critical|حرجة/i)).toBeInTheDocument();
    expect(screen.queryByRole('columnheader', { name: /Coordination/i })).not.toBeInTheDocument();
    expect(screen.queryByText(/Sprint/i)).not.toBeInTheDocument();
  });
});
