Files
leadradar/backend/tests/test_webhooks.py
T

28 lines
1.2 KiB
Python

from unittest.mock import patch
def test_n8n_webhook_flow(client, user_headers):
# Criar lead via import-selected
with patch('app.services.geocoding_service.GeocodingService.get_location_by_cep') as mock_geo:
mock_geo.return_value = {
'cep': '01310100', 'logradouro': 'Rua Teste', 'bairro': 'Centro',
'cidade': 'São Paulo', 'uf': 'SP', 'formatted_cep': '01310-100'
}
client.post('/api/v1/leads/import-selected', headers=user_headers, json={
'cep': '01310-100', 'ramo': 'Supermercado',
'selected_leads': [{'nome_empresa': 'Supermercado Teste', 'telefone': '(11) 99999-0000'}]
})
leads = client.get('/api/v1/leads', headers=user_headers).get_json()['leads']
assert len(leads) > 0
lead_id = leads[0]['id']
# Disparar webhook n8n
webhook_res = client.post('/api/v1/webhooks/n8n', json={
'lead_id': lead_id,
'event_type': 'mensagem_enviada',
'new_status': 'respondeu',
'mensagem': 'Cliente respondeu via WhatsApp demonstrando interesse.'
})
assert webhook_res.status_code == 200
assert webhook_res.get_json()['data']['status_atual'] == 'respondeu'