Skip to content

Commit 3f3a921

Browse files
authored
test: Fix flaky transport specs with timecop (#2978)
1 parent 74a27cd commit 3f3a921

1 file changed

Lines changed: 34 additions & 28 deletions

File tree

sentry-ruby/spec/sentry/transport_spec.rb

Lines changed: 34 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -34,24 +34,28 @@
3434
let(:envelope) { subject.envelope_from_event(event) }
3535

3636
it "generates correct envelope content" do
37-
result, _ = subject.serialize_envelope(envelope)
37+
result = nil
3838

39-
envelope_header, item_header, item = result.split("\n")
40-
envelope_header_parsed = JSON.parse(envelope_header)
39+
Timecop.freeze do |frozen_time|
40+
result, _ = subject.serialize_envelope(envelope)
4141

42-
expect(envelope_header_parsed).to eq({
43-
"event_id" => event.event_id,
44-
"dsn" => Sentry::TestHelper::DUMMY_DSN,
45-
"sdk" => Sentry.sdk_meta,
46-
"sent_at" => Time.now.utc.iso8601,
47-
"trace" => dynamic_sampling_context
48-
})
42+
envelope_header, item_header, item = result.split("\n")
43+
envelope_header_parsed = JSON.parse(envelope_header)
4944

50-
expect(item_header).to eq(
51-
'{"type":"event","content_type":"application/json"}'
52-
)
45+
expect(envelope_header_parsed).to eq({
46+
"event_id" => event.event_id,
47+
"dsn" => Sentry::TestHelper::DUMMY_DSN,
48+
"sdk" => Sentry.sdk_meta,
49+
"sent_at" => frozen_time.utc.iso8601,
50+
"trace" => dynamic_sampling_context
51+
})
52+
53+
expect(item_header).to eq(
54+
'{"type":"event","content_type":"application/json"}'
55+
)
5356

54-
expect(item).to eq(event.to_h.to_json)
57+
expect(item).to eq(event.to_h.to_json)
58+
end
5559
end
5660
end
5761

@@ -69,24 +73,26 @@
6973
let(:envelope) { subject.envelope_from_event(event) }
7074

7175
it "generates correct envelope content" do
72-
result, _ = subject.serialize_envelope(envelope)
76+
Timecop.freeze do |frozen_time|
77+
result, _ = subject.serialize_envelope(envelope)
7378

74-
envelope_header, item_header, item = result.split("\n")
75-
envelope_header_parsed = JSON.parse(envelope_header)
79+
envelope_header, item_header, item = result.split("\n")
80+
envelope_header_parsed = JSON.parse(envelope_header)
7681

77-
expect(envelope_header_parsed).to eq({
78-
"event_id" => event.event_id,
79-
"dsn" => Sentry::TestHelper::DUMMY_DSN,
80-
"sdk" => Sentry.sdk_meta,
81-
"sent_at" => Time.now.utc.iso8601,
82-
"trace" => dynamic_sampling_context
83-
})
82+
expect(envelope_header_parsed).to eq({
83+
"event_id" => event.event_id,
84+
"dsn" => Sentry::TestHelper::DUMMY_DSN,
85+
"sdk" => Sentry.sdk_meta,
86+
"sent_at" => frozen_time.utc.iso8601,
87+
"trace" => dynamic_sampling_context
88+
})
8489

85-
expect(item_header).to eq(
86-
'{"type":"transaction","content_type":"application/json"}'
87-
)
90+
expect(item_header).to eq(
91+
'{"type":"transaction","content_type":"application/json"}'
92+
)
8893

89-
expect(item).to eq(event.to_h.to_json)
94+
expect(item).to eq(event.to_h.to_json)
95+
end
9096
end
9197

9298
context "with profiling on transaction" do

0 commit comments

Comments
 (0)