File: write_worker_spec.rb

package info (click to toggle)
ruby-mongo 2.21.3-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 14,764 kB
  • sloc: ruby: 108,806; makefile: 5; sh: 2
file content (39 lines) | stat: -rw-r--r-- 975 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# frozen_string_literal: true

require 'spec_helper'

describe Mongo::Retryable::WriteWorker do
  describe '#nro_write_with_retry' do
    context 'when session is nil' do
      let(:retryable) do
        authorized_client['write_worker_test']
      end

      let(:write_concern) do
        Mongo::WriteConcern.get(w: 0)
      end

      let(:write_worker) do
        described_class.new(retryable)
      end

      let(:context) do
        instance_double(Mongo::Operation::Context).tap do |context|
          allow(context).to receive(:session).and_return(nil)
        end
      end

      before do
        # We avoid actual execution of the operation to speed up and simplify
        # the spec.
        allow(write_worker).to receive(:legacy_write_with_retry).and_return(nil)
      end

      it 'does not raise' do
        expect do
          write_worker.nro_write_with_retry(write_concern, context: context)
        end.not_to raise_error
      end
    end
  end
end