Skip to content

Commit b8c6ad9

Browse files
p-mongop
authored andcommitted
Fix RUBY-1752 Stubbing out Time.now in tests can cause tests to break (#1289)
1 parent 1939f37 commit b8c6ad9

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

lib/mongo/server/description.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ def initialize(address, config = {}, average_round_trip_time = nil)
196196
@features = Features.new(wire_versions, me || @address.to_s)
197197
end
198198
@average_round_trip_time = average_round_trip_time
199-
@last_update_time = Time.now.freeze
199+
@last_update_time = Time.now.dup.freeze
200200

201201
if Mongo::Lint.enabled?
202202
# prepopulate cache instance variables

spec/mongo/server/description_spec.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,20 @@
4949
end
5050
end
5151

52+
describe '#initialize' do
53+
context 'when Time.now is mocked' do
54+
it 'does not freeze mocked time' do
55+
obj = Time.now
56+
expect(Time).to receive(:now).at_least(:once).and_return(obj)
57+
expect(obj.frozen?).to be false
58+
59+
description = described_class.new(address)
60+
expect(description.last_update_time).to eq(obj)
61+
expect(obj.frozen?).to be false
62+
end
63+
end
64+
end
65+
5266
describe '#arbiters' do
5367

5468
context 'when the replica set has arbiters' do

0 commit comments

Comments
 (0)