feat: rotas de CLIENTE_CONTATO na tela de detalhe do cliente
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
from fastapi import FastAPI
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
from app.auth import exigir_login
|
||||
from app.routers import contatos as router_contatos
|
||||
from app.routers import clientes as router_clientes
|
||||
|
||||
app_teste = FastAPI()
|
||||
app_teste.include_router(router_clientes.router)
|
||||
app_teste.include_router(router_contatos.router)
|
||||
app_teste.dependency_overrides[exigir_login] = lambda: "teste"
|
||||
client = TestClient(app_teste, follow_redirects=False)
|
||||
|
||||
|
||||
def test_adicionar_contato_com_sucesso(monkeypatch):
|
||||
monkeypatch.setattr(router_contatos.db_clientes, "obter_cliente", lambda cid: {"ID": cid, "CODIGO": "000001"})
|
||||
monkeypatch.setattr(router_contatos.db_contatos, "contato_duplicado", lambda cid, tel, ignorar_id=None: False)
|
||||
chamadas = {}
|
||||
monkeypatch.setattr(
|
||||
router_contatos.db_contatos,
|
||||
"inserir_contato",
|
||||
lambda cid, nome, tel, email=None: chamadas.setdefault("dados", (cid, nome, tel, email)),
|
||||
)
|
||||
|
||||
resposta = client.post("/clientes/1/contatos", data={"nome": "Fulano", "telefone": "(75) 99909-0001"})
|
||||
assert resposta.status_code == 303
|
||||
assert chamadas["dados"] == (1, "Fulano", "75999090001", None)
|
||||
|
||||
|
||||
def test_adicionar_contato_duplicado_avisa(monkeypatch):
|
||||
monkeypatch.setattr(router_contatos.db_clientes, "obter_cliente", lambda cid: {"ID": cid, "CODIGO": "000001"})
|
||||
monkeypatch.setattr(router_contatos.db_contatos, "contato_duplicado", lambda cid, tel, ignorar_id=None: True)
|
||||
# Also mock the clientes router's db functions for the redirect
|
||||
monkeypatch.setattr(router_clientes.db_clientes, "obter_cliente", lambda cid: {"ID": cid, "CODIGO": "000001", "RAZAO": "Cliente", "FANTASIA": "Cliente"})
|
||||
monkeypatch.setattr(router_clientes.db_contatos, "listar_contatos_por_cliente", lambda cid: [])
|
||||
monkeypatch.setattr(router_clientes.db_chaves, "status_chaves", lambda codigo: None)
|
||||
|
||||
resposta = client.post("/clientes/1/contatos", data={"nome": "Fulano", "telefone": "75999090001"}, follow_redirects=True)
|
||||
assert "já está cadastrado" in resposta.text
|
||||
|
||||
|
||||
def test_excluir_contato(monkeypatch):
|
||||
monkeypatch.setattr(router_contatos.db_clientes, "obter_cliente", lambda cid: {"ID": cid, "CODIGO": "000001"})
|
||||
chamadas = {}
|
||||
monkeypatch.setattr(
|
||||
router_contatos.db_contatos, "excluir_contato", lambda contato_id, cid: chamadas.setdefault("dados", (contato_id, cid))
|
||||
)
|
||||
|
||||
resposta = client.post("/clientes/1/contatos/5/excluir")
|
||||
assert resposta.status_code == 303
|
||||
assert chamadas["dados"] == (5, 1)
|
||||
Reference in New Issue
Block a user