package render

import (
	"strings"
	"testing"

	"leadb2b.org/internal/api"
)

func TestBuildEmpresaFAQ_NoContact(t *testing.T) {
	fantasia := "Loja Centro"
	d := &api.EstabelecimentoDetailOut{
		CNPJ:                         "12345678000199",
		TipoUnidade:                  "Matriz",
		NomeFantasia:                 &fantasia,
		SituacaoCadastralDescricao:   "Ativa",
		DataSituacaoCadastralFormatada: "01/01/2020",
		DataInicioAtividadeFormatada: "2015-03-10",
		IdentificadorMatrizFilialDescricao: "Matriz",
		Empresa: api.EmpresaOut{
			CNPJBasico:                "12345678",
			RazaoSocial:               "ACME Comércio Ltda",
			NaturezaJuridicaDescricao: "Sociedade Empresária Limitada",
			CapitalSocial:             "100000",
			PorteEmpresa:              "01",
		},
		Endereco: api.EnderecoOut{
			TipoLogradouro: "Rua",
			Logradouro:     "Brasil",
			Numero:         "100",
			Bairro:         "Centro",
			CEP:            "01310100",
			UF:             "SP",
			EnderecoCompleto: "Rua Brasil, 100, Centro, São Paulo, SP, 01310-100",
		},
		CNAE: struct {
			Principal   api.CnaeOut   `json:"principal"`
			Secundarios []api.CnaeOut `json:"secundarios"`
		}{
			Principal: api.CnaeOut{Codigo: "4711301", Descricao: "Comércio varejista"},
		},
		Contatos: api.ContatosOut{
			Telefone1: &api.TelefoneOut{Completo: "(11) 99999-9999"},
			Email:     strPtr("contato@acme.com.br"),
		},
	}
	d.Endereco.Municipio.Descricao = "São Paulo"

	items := BuildEmpresaFAQ(d, true)
	if len(items) < 8 {
		t.Fatalf("expected several FAQ items, got %d", len(items))
	}
	all := ""
	for _, it := range items {
		all += it.Question + " " + it.Answer + "\n"
	}
	for _, bad := range []string{"telefone", "e-mail", "email", "contato@", "99999"} {
		if strings.Contains(strings.ToLower(all), bad) {
			t.Fatalf("FAQ must not expose contact info, found %q in:\n%s", bad, all)
		}
	}
}

func strPtr(s string) *string { return &s }
