ajuste no contas

This commit is contained in:
T3782834
2026-09-01 11:24:03 -03:00
parent 9ed4782f9d
commit 397b831fd3
428 changed files with 2294 additions and 4648 deletions

View File

@@ -600,3 +600,70 @@ async def test_cancelamento_redireciona_item_estrategico_para_workflow_correto(m
})
assert result["metadata"]["domain_redirect_from"] == "cancelar_vas_avulso"
assert result["metadata"]["domain_redirect_to"] == "tratar_vas_estrategico"
@pytest.mark.asyncio
async def test_cancelamento_usa_valor_vas_validado_quando_usuario_nao_informa_valor(monkeypatch):
import contas_mcp.servers.contas_mcp_server.main as main
class Runtime(FakeRuntime):
async def arun(self, name, payload, execution_id=None):
self.calls.append((name, payload, execution_id))
if name == "cancelamento_vas_avulso":
return {
"execution_id": "cancel-valor", "workflow_name": name, "workflow_version": 1, "status": "COMPLETED",
"output": {"cancelar_vas_avulso": {
"success": True,
"results": [{"success": True, "msisdn": "5511999999999", "subject": "Tamboro Mensal",
"service": {"name": "Tamboro Mensal", "details": {"valor": "14,99"}}}],
"contestation_candidates": [{"success": True, "msisdn": "5511999999999", "subject": "Tamboro Mensal",
"service": {"name": "Tamboro Mensal", "details": {"valor": "14,99"}}}],
}}, "state": {}, "trace": [],
}
return {
"execution_id": "cont-valor", "workflow_name": name, "workflow_version": 2, "status": "COMPLETED",
"output": {"registrar_protocolo": {"protocolo_id": "PRT-V"}, "abrir_contestacao_cliente": {"success": True, "items_response": []}},
"state": {}, "trace": [],
}
runtime = Runtime()
monkeypatch.setattr(main, "get_workflow_runtime", lambda: runtime)
monkeypatch.setattr(main, "service", FakeService())
await main._run_cancelamento_com_contestacao({"msisdn": "5511999999999", "subject": "Tamboro Mensal"})
item = runtime.calls[1][1]["items"][0]
assert item["claimedAmount"] == "14,99"
assert item["validatedAmount"] == "14,99"
@pytest.mark.asyncio
async def test_cancelamento_preserva_valor_informado_e_valor_vas_como_evidencias_distintas(monkeypatch):
import contas_mcp.servers.contas_mcp_server.main as main
class Runtime(FakeRuntime):
async def arun(self, name, payload, execution_id=None):
self.calls.append((name, payload, execution_id))
if name == "cancelamento_vas_avulso":
return {
"execution_id": "cancel-div", "workflow_name": name, "workflow_version": 1, "status": "COMPLETED",
"output": {"cancelar_vas_avulso": {
"success": True,
"results": [{"success": True, "msisdn": "5511999999999", "subject": "Tamboro Mensal",
"service": {"name": "Tamboro Mensal", "details": {"valor": "14,99"}}}],
"contestation_candidates": [{"success": True, "msisdn": "5511999999999", "subject": "Tamboro Mensal",
"service": {"name": "Tamboro Mensal", "details": {"valor": "14,99"}}}],
}}, "state": {}, "trace": [],
}
return {
"execution_id": "cont-div", "workflow_name": name, "workflow_version": 2, "status": "COMPLETED",
"output": {"registrar_protocolo": {"protocolo_id": "PRT-D"}, "abrir_contestacao_cliente": {"success": True, "items_response": []}},
"state": {}, "trace": [],
}
runtime = Runtime()
monkeypatch.setattr(main, "get_workflow_runtime", lambda: runtime)
monkeypatch.setattr(main, "service", FakeService())
await main._run_cancelamento_com_contestacao({
"msisdn": "5511999999999", "subject": "Tamboro Mensal", "valor": "29,98",
})
item = runtime.calls[1][1]["items"][0]
assert item["claimedAmount"] == "29,98"
assert item["validatedAmount"] == "14,99"