import { render, screen } from '@testing-library/react';
import { describe, it, expect } from 'vitest';

import { SyncStatusIndicator } from './SyncStatusIndicator';

describe('SyncStatusIndicator', () => {
  it('shows not connected when isConnected is false', () => {
    render(
      <SyncStatusIndicator lastWebhookAt={null} lastPeriodicSyncAt={null} isConnected={false} />,
    );
    expect(screen.getByText('Not connected')).toBeInTheDocument();
  });

  it('shows real-time sync when webhook is more recent', () => {
    const now = new Date();
    const webhookTime = now.toISOString();
    const periodicTime = new Date(now.getTime() - 3600000).toISOString(); // 1 hour ago

    render(
      <SyncStatusIndicator
        lastWebhookAt={webhookTime}
        lastPeriodicSyncAt={periodicTime}
        isConnected={true}
      />,
    );
    expect(screen.getByText('Real-time sync')).toBeInTheDocument();
  });

  it('shows periodic sync when no webhook data', () => {
    render(
      <SyncStatusIndicator
        lastWebhookAt={null}
        lastPeriodicSyncAt={new Date().toISOString()}
        isConnected={true}
      />,
    );
    expect(screen.getByText('Periodic sync')).toBeInTheDocument();
  });
});
