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