24 lines
1.0 KiB
Python
24 lines
1.0 KiB
Python
from unittest.mock import patch
|
|
|
|
def test_n8n_webhook_flow(client, user_headers):
|
|
# Criar lead
|
|
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/search-maps', headers=user_headers, json={'cep': '01310-100', 'ramo': 'Supermercado'})
|
|
|
|
leads = client.get('/api/v1/leads', headers=user_headers).get_json()['leads']
|
|
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'
|