feat: formulario de edicao de contato na tela de detalhe do cliente

Adiciona UI (details/summary, sem JS) para editar nome/telefone/email
de um contato existente, usando a rota POST /clientes/{id}/contatos/{id}/editar
que ja existia no router e no db mas nunca tinha formulario associado.
Cobre com testes de rota (sucesso + telefone duplicado) e um teste
verificando que a tela de detalhe realmente renderiza o formulario.
This commit is contained in:
Gustavo
2026-08-13 10:52:50 -03:00
parent 0d839949fe
commit 9b04877d59
3 changed files with 65 additions and 0 deletions
+20
View File
@@ -29,6 +29,26 @@ def test_listar_clientes(monkeypatch):
assert "Cliente Um" in resposta.text
def test_detalhe_cliente_mostra_formulario_de_edicao_de_contato(monkeypatch):
monkeypatch.setattr(
router_clientes.db_clientes,
"obter_cliente",
lambda cid: {"ID": cid, "CODIGO": "000001", "RAZAO": "Cliente Um", "FANTASIA": "Um", "CNPJ": "11222333000181"},
)
monkeypatch.setattr(
router_clientes.db_contatos,
"listar_contatos_por_cliente",
lambda cid: [{"ID": 7, "NOME": "Fulano", "TELEFONE": "75999090001", "EMAIL": None}],
)
monkeypatch.setattr(router_clientes.db_chaves, "status_chaves", lambda codigo: None)
resposta = client.get("/clientes/1")
assert resposta.status_code == 200
assert '/clientes/1/contatos/7/editar' in resposta.text
assert 'value="Fulano"' in resposta.text
assert 'value="75999090001"' in resposta.text
def test_criar_cliente_codigo_duplicado_exige_confirmacao(monkeypatch):
monkeypatch.setattr(router_clientes.db_clientes, "codigo_em_uso", lambda codigo, ignorar_id=None: True)
criado = {}