1# frozen_string_literal: true
2
3require "test_helper"
4require_relative "../../sgx-bwmsgsv2"
5require "rantly/minitest_extensions"
6require_relative "generators/webhook"
7require_relative "generators/message"
8
9def panic(e)
10 $panic = e
11end
12
13MMS_PROXY = "https://proxy.test.example.com/"
14
15class WebhookPropertyTest < Minitest::Test
16 def setup
17 reset_stanzas!
18 reset_redis!
19 end
20
21 def test_single_recipient_message_delivered_sends_one_receipt
22 property_of {
23 Webhook
24 .new(REDIS)
25 .type { "message-delivered" }
26 .message { |registered, jid, dir, top_level_to|
27 Message
28 .new(REDIS)
29 .to { [top_level_to] }
30 .generate(registered, jid, dir)
31 }
32 .generate
33 }.check { |metadata, example|
34 result = invoke_webhook(example)
35 assert_equal 200, result[0]
36 assert_equal 1, written.length, "Should only send the delivery receipt"
37 receipt = written.shift
38 assert_equal(
39 receipt.to,
40 metadata["jid"],
41 "Should send receipt to customer's jid"
42 )
43 assert_equal(
44 receipt.from.to_s,
45 "#{example["to"]}@#{ARGV[0]}",
46 "Should send receipt from sender's Cheogram jid"
47 )
48 }
49 end
50 em :test_single_recipient_message_delivered_sends_one_receipt
51end