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

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