@@ -289,4 +289,46 @@ class WebhookPropertyTest < Minitest::Test
}
end
em :test_inbound_received_emits_correct_in_stream_event
+
+ def test_inbound_resend_emits_correct_resend_stream_event
+ property_of {
+ Webhook
+ .new(REDIS)
+ .type { "message-received" }
+ .message { |registered, jid, dir, top_level_to|
+ Message
+ .new(REDIS)
+ .to {
+ array(integer(2)) { nanpa_phone } +
+ [top_level_to] +
+ array(integer(2)) { nanpa_phone }
+ }
+ .generate(registered, jid, dir)
+ }
+ .generate
+ }.check { |metadata, example|
+ result = invoke_webhook(
+ example,
+ extra_env: { "HTTP_X_JMP_RESEND_OF" => metadata["resend_id"] }
+ )
+ assert_equal 200, result[0]
+
+ entries = REDIS.stream_entries("messages").sync
+ assert_equal 1, entries.length
+
+ fields = entries.first[:fields]
+ expected_keys = %w[
+ event source original_stream_id owner
+ original_bandwidth_id
+ ].sort
+ assert_equal expected_keys, fields.keys.sort
+
+ assert_equal "resend", fields["event"]
+ assert_equal "bwmsgsv2", fields["source"]
+ assert_equal metadata["resend_id"], fields["original_stream_id"]
+ assert_equal example["message"]["owner"], fields["owner"]
+ assert_equal example["message"]["id"], fields["original_bandwidth_id"]
+ }
+ end
+ em :test_inbound_resend_emits_correct_resend_stream_event
end