From d8115f1222ddc04f4d2a959743263f0d65949550 Mon Sep 17 00:00:00 2001 From: Phillip Davis Date: Wed, 25 Feb 2026 17:09:42 -0500 Subject: [PATCH] test(webhook): unregistered JID writes no stanza When the webhook references a phone number with no Redis JID mapping, the handler returns 403 and writes no XMPP stanza. --- test/test_webhook_handler.rb | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/test/test_webhook_handler.rb b/test/test_webhook_handler.rb index 6d197a8cf678c7a3d9f74df1cef8d06e9e95c51c..aa6e77c62b95f97e533a144687e1e638cac34a00 100644 --- a/test/test_webhook_handler.rb +++ b/test/test_webhook_handler.rb @@ -218,4 +218,27 @@ class WebhookHandlerTest < Minitest::Test assert_equal 0, entries.length end em :test_message_received_empty_params_writes_no_stanza + + def test_message_received_unregistered_jid_writes_no_stanza + payload = { + "type" => "message-received", + "to" => "+15559999999", + "message" => { + "id" => "bw-unreg-001", + "direction" => "in", + "owner" => "+15559999999", + "from" => "+15551234567", + "to" => ["+15559999999"], + "time" => "2025-01-13T10:00:00Z", + "text" => "Hello" + } + } + + result = invoke_webhook(payload) + assert_equal [403, {}, "Customer not found\n"], result + assert_empty written + entries = REDIS.stream_entries("messages").sync + assert_equal 0, entries.length + end + em :test_message_received_unregistered_jid_writes_no_stanza end