test(webhook): unregistered JID writes no stanza
Phillip Davis
created
When the webhook references a phone number with no Redis JID mapping,
the handler returns 403 and writes no XMPP stanza.
Change summary
test/test_webhook_handler.rb | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
Detailed changes
@@ -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