import { describe, expect, it, vi } from 'vitest';

const DummyWidget = () => null;
const DASHBOARD_ROUTE_REGISTRATION_TIMEOUT_MS = 15_000;

describe('CRM dashboard route widget registration', () => {
  it('treats host-registered dashboard widgets as already installed', async () => {
    vi.resetModules();
    const route = await import('../src/dashboard-route');
    const contributions = await import('../src/host-contributions');

    contributions.registerCrmDashboardWidgetContribution({
      registry: route.crmDashboardWidgets,
      widgets: {
        MetricWidget: DummyWidget,
        ChartWidget: DummyWidget,
        FunnelWidget: DummyWidget,
        GaugeWidget: DummyWidget,
        IcicleWidget: DummyWidget,
      },
    });

    expect(() => route.ensureCrmDashboardWidgetsRegistered()).not.toThrow();
  }, DASHBOARD_ROUTE_REGISTRATION_TIMEOUT_MS);
});
