Skip to content

Commit 57d0f0a

Browse files
committed
added test for parsing v2 thin events with livemode and reason
added attr_reader to ThinEvent for livemode and reason
1 parent 7227c88 commit 57d0f0a

File tree

2 files changed

+34
-1
lines changed

2 files changed

+34
-1
lines changed

lib/stripe/thin_event.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
module Stripe
44
class ThinEvent
5-
attr_reader :id, :type, :created, :context, :related_object
5+
attr_reader :id, :type, :created, :context, :related_object, :livemode, :reason
66

77
def initialize(event_payload = {})
88
@id = event_payload[:id]

test/stripe/v2_event_test.rb

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,26 @@ def retrieve_event(evt_id)
3636
},
3737
}.to_json
3838

39+
@v2_push_payload_with_livemode_and_reason = {
40+
"id" => "evt_234",
41+
"object" => "v2.core.event",
42+
"type" => "v1.billing.meter.error_report_triggered",
43+
"created" => "2022-02-15T00:27:45.330Z",
44+
"related_object" => {
45+
"id" => "mtr_123",
46+
"type" => "billing.meter",
47+
"url" => "/v1/billing/meters/mtr_123",
48+
},
49+
"livemode" => true,
50+
"reason" => {
51+
"type" => "a.b.c",
52+
"request" => {
53+
"id" => "r_123",
54+
"idempotency_key" => "key",
55+
},
56+
},
57+
}.to_json
58+
3959
@v2_pull_payload = {
4060
"id" => "evt_234",
4161
"object" => "v2.core.event",
@@ -78,6 +98,19 @@ def retrieve_event(evt_id)
7898
assert_equal "2022-02-15T00:27:45.330Z", event.created
7999
end
80100

101+
should "parse v2 events with livemode and reason" do
102+
event = parse_signed_event(@v2_push_payload_with_livemode_and_reason)
103+
assert event.is_a?(Stripe::ThinEvent)
104+
assert_equal "evt_234", event.id
105+
assert_equal "v1.billing.meter.error_report_triggered", event.type
106+
assert_equal "2022-02-15T00:27:45.330Z", event.created
107+
assert_true event.livemode
108+
assert_not_nil event.reason
109+
assert_equal "a.b.c", event.reason[:type]
110+
assert_equal "r_123", event.reason[:request][:id]
111+
assert_equal "key", event.reason[:request][:idempotency_key]
112+
end
113+
81114
should "raise a JSON::ParserError from an invalid JSON payload" do
82115
assert_raises Stripe::SignatureVerificationError do
83116
parse_signed_event(@v2_push_payload, "Bad secret")

0 commit comments

Comments
 (0)