test(webhook): single recipient with media stanza

Phillip Davis created

Change summary

test/test_webhook_handler.rb | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)

Detailed changes

test/test_webhook_handler.rb 🔗

@@ -338,4 +338,41 @@ class WebhookHandlerTest < Minitest::Test
 		assert_equal "true", uri_addr['delivered']
 	end
 	em :test_message_received_group_stanza_has_addresses
+
+	def test_message_received_single_recipient_with_media_stanza
+		payload = {
+			"type" => "message-received",
+			"to" => "+15550000000",
+			"message" => {
+				"id" => "bw-in-media-001",
+				"direction" => "in",
+				"owner" => "+15550000000",
+				"from" => "+15551234567",
+				"to" => ["+15550000000"],
+				"time" => "2025-01-13T10:00:00Z",
+				"text" => "Check this",
+				"media" => ["https://example.com/image.jpg"]
+			}
+		}
+
+		invoke_webhook(payload)
+
+		assert_equal 2, written.length
+
+		oob_msg = written[0]
+		assert_equal "test@example.com", oob_msg.to.to_s
+		assert_equal "+15551234567@component", oob_msg.from.to_s
+		oob_x = oob_msg.find_first("x")
+		refute_nil oob_x
+		assert_equal "jabber:x:oob", oob_x['xmlns']
+		oob_url = oob_x.find_first("url")
+		refute_nil oob_url
+		assert_equal "https://example.com/image.jpg", oob_url.text
+
+		text_msg = written[1]
+		assert_equal "test@example.com", text_msg.to.to_s
+		assert_equal "+15551234567@component", text_msg.from.to_s
+		assert_equal "Check this", text_msg.body
+	end
+	em :test_message_received_single_recipient_with_media_stanza
 end