test: adiciona script local para simular e testar a configuração de webhook do Wuzapi.
This commit is contained in:
parent
9cf411cc3f
commit
ad308c4f11
56
local_test_wuzapi.rb
Normal file
56
local_test_wuzapi.rb
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
# local_test_wuzapi.rb
|
||||||
|
|
||||||
|
# 1. Mock do Client para não fazer requisição real, apenas imprimir o que seria enviado
|
||||||
|
module Wuzapi
|
||||||
|
class Client
|
||||||
|
def request(method, path, payload, headers)
|
||||||
|
puts "\n--- [SIMULAÇÃO DE ENVIO] ---"
|
||||||
|
puts "Method: #{method.upcase}"
|
||||||
|
puts "Path: #{path}"
|
||||||
|
puts "Payload: #{JSON.pretty_generate(payload)}"
|
||||||
|
puts "Headers: #{headers}"
|
||||||
|
puts "--------------------------\n"
|
||||||
|
|
||||||
|
# Retorna falso sucesso só para o script continuar
|
||||||
|
{ 'success' => true }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# 2. Setup do cenário
|
||||||
|
# Precisamos de um Channel::Whatsapp e Inbox para o teste
|
||||||
|
# Se não existir, criamos em memória (mas o find precisa achar)
|
||||||
|
|
||||||
|
puts 'Procurando uma Inbox de Whatsapp para teste...'
|
||||||
|
inbox = Inbox.where(channel_type: 'Channel::Whatsapp').last
|
||||||
|
|
||||||
|
unless inbox
|
||||||
|
puts 'Nenhuma inbox de Whatsapp encontrada no banco local.'
|
||||||
|
puts 'Criando uma em memória para teste...'
|
||||||
|
|
||||||
|
# Mockando comportamentos necessários se não tiver banco real
|
||||||
|
account = Account.first || Account.create!(name: 'Test Account')
|
||||||
|
channel = Channel::Whatsapp.new(phone_number: '+5511999999999', account: account)
|
||||||
|
channel.save!(validate: false)
|
||||||
|
inbox = Inbox.create!(channel: channel, account: account, name: 'Test Inbox')
|
||||||
|
end
|
||||||
|
|
||||||
|
puts "Usando Inbox ##{inbox.id} com telefone #{inbox.channel.phone_number}"
|
||||||
|
|
||||||
|
# 3. Executando o teste
|
||||||
|
puts "\nTestando Wuzapi::ProvisioningService..."
|
||||||
|
|
||||||
|
# Instancia o serviço com URL fake
|
||||||
|
service = Wuzapi::ProvisioningService.new('http://api.wuzapi.test', 'admin_token')
|
||||||
|
|
||||||
|
# Executa setup_webhook
|
||||||
|
# Isso deve chamar o nosso Client mockado e imprimir o payload com os eventos corretos e a URL certa
|
||||||
|
begin
|
||||||
|
service.setup_webhook('user_token_123', inbox.id, 'webhook_secret_abc')
|
||||||
|
puts "\n[SUCESSO] Teste concluído. Verifique se o Payload acima contém:"
|
||||||
|
puts "1. 'events' => ['Message', 'ReadReceipt', ...]"
|
||||||
|
puts "2. 'webhook' => '.../webhooks/whatsapp/#{inbox.channel.phone_number.delete('+')}'"
|
||||||
|
rescue StandardError => e
|
||||||
|
puts "\n[ERRO] Ocorreu um erro durante o teste: #{e.message}"
|
||||||
|
puts e.backtrace
|
||||||
|
end
|
||||||
Loading…
Reference in New Issue
Block a user