describe('Relatórios - Analise Visual detalhes', () => {
  it('Mostra legendas e estado "Sem dados" quando apropriado', () => {
    // Fluxo sem dados
    cy.intercept('GET', '/api/financeiro/relatorios/fluxo*', {
      statusCode: 200,
      body: { totals: { entradas: 0, saidas: 0 }, series: [] }
    }).as('fluxoSemDados');

    cy.visit('/financeiro/relatorios');

    // Define período
    cy.get('#dataInicio').clear().type('2024-01-01');
    cy.get('#dataFim').clear().type('2024-01-31');

    cy.get('#btnGerar').click();
    cy.wait('@fluxoSemDados');

    cy.get('#graficoEntradaSaida').contains('Sem dados para o período').should('exist');
    cy.get('#graficoEvolucao').contains('Sem dados para o período').should('exist');

    // Fluxo com dados
    cy.intercept('GET', '/api/financeiro/relatorios/fluxo*', {
      statusCode: 200,
      body: {
        totals: { entradas: 1000, saidas: 400 },
        series: [
          { data: '2024-01-05', entradas: 600, saidas: 200 },
          { data: '2024-01-20', entradas: 400, saidas: 200 },
          { data: '2024-02-10', entradas: 200, saidas: 300 }
        ]
      }
    }).as('fluxoComDados');

    cy.get('#btnGerar').click();
    cy.wait('@fluxoComDados');

    cy.get('#graficoEntradaSaidaLegend').contains('Entradas').should('exist');
    cy.get('#graficoEntradaSaidaLegend').contains('Saídas').should('exist');
    cy.get('#graficoEvolucaoLegend').contains('Entradas').should('exist');
    cy.get('#graficoEvolucaoLegend').contains('Saídas').should('exist');

    // Deve haver barras renderizadas
    cy.get('#graficoEntradaSaida div[role="img"]').should('have.length', 2);
    cy.get('#graficoEvolucao').find('div').should('exist');
  });
});