Skip to content

Commit a634548

Browse files
committed
correctly identify/mock connections without session support
1 parent 8e5e3a7 commit a634548

5 files changed

Lines changed: 17 additions & 3 deletions

File tree

lib/mongo/operation/shared/sessions_supported.rb

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -138,9 +138,11 @@ def command(connection)
138138

139139
add_read_preference(sel, connection)
140140

141-
apply_cluster_time!(sel, connection)
142-
if session && (acknowledged_write? || session.in_transaction?)
143-
apply_session_options(sel, connection)
141+
if connection.description.logical_session_timeout
142+
apply_cluster_time!(sel, connection)
143+
if session && (acknowledged_write? || session.in_transaction?)
144+
apply_session_options(sel, connection)
145+
end
144146
end
145147

146148
sel

spec/mongo/operation/create/op_msg_spec.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,9 @@
148148

149149
it 'creates the correct OP_MSG message' do
150150
RSpec::Mocks.with_temporary_scope do
151+
# mimic lack of session support
152+
allow(authorized_primary.description).to receive(:logical_session_timeout).and_return(nil)
153+
151154
expect(expected_global_args[:session]).to be nil
152155
expect(Mongo::Protocol::Msg).to receive(:new).with([], {}, expected_global_args)
153156
op.send(:message, connection)

spec/mongo/operation/delete/op_msg_spec.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,9 @@
174174

175175
it 'creates the correct OP_MSG message' do
176176
RSpec::Mocks.with_temporary_scope do
177+
# mimic lack of session support
178+
allow(authorized_primary.description).to receive(:logical_session_timeout).and_return(nil)
179+
177180
expect(expected_global_args[:session]).to be nil
178181
expect(Mongo::Protocol::Msg).to receive(:new).with([], {}, expected_global_args, expected_payload_1)
179182
op.send(:message, connection)

spec/mongo/operation/insert/op_msg_spec.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,9 @@
185185

186186
it 'creates the correct OP_MSG message' do
187187
RSpec::Mocks.with_temporary_scope do
188+
# mimic lack of session support
189+
allow(authorized_primary.description).to receive(:logical_session_timeout).and_return(nil)
190+
188191
expect(expected_global_args).not_to have_key(:lsid)
189192
expect(Mongo::Protocol::Msg).to receive(:new).with([],
190193
{},

spec/mongo/operation/update/op_msg_spec.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,9 @@
175175

176176
it 'creates the correct OP_MSG message' do
177177
RSpec::Mocks.with_temporary_scope do
178+
# mimic lack of session support
179+
allow(authorized_primary.description).to receive(:logical_session_timeout).and_return(nil)
180+
178181
expect(Mongo::Protocol::Msg).to receive(:new).with([], {}, expected_global_args, expected_payload_1)
179182
op.send(:message, connection)
180183
end

0 commit comments

Comments
 (0)