Sha256: 05106a6ed8a74d45417bc38e321f3deca1b5d931c973ed99d302e0fe88b361a7

Contents?: true

Size: 1.01 KB

Versions: 5

Compression:

Stored size: 1.01 KB

Contents

module RSpec
  module Sidekiq
    module Matchers
      def be_retryable(expected_retry)
        BeRetryable.new expected_retry
      end

      class BeRetryable
        def initialize(expected_retry)
          @expected_retry = expected_retry
        end

        def description
          if @expected_retry.is_a?(Fixnum)
            "retry #{@expected_retry} times"    # retry: 5
          elsif @expected_retry
            'retry the default number of times' # retry: true
          else
            'not retry'                         # retry: false
          end
        end

        def failure_message
          "expected #{@klass} to #{description} but got #{@actual}"
        end

        def matches?(job)
          @klass = job.is_a?(Class) ? job : job.class
          @actual = @klass.get_sidekiq_options['retry']
          @actual == @expected_retry
        end

        def failure_message_when_negated
          "expected #{@klass} to not #{description}".gsub 'not not ', ''
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rspec-sidekiq-3.0.1 lib/rspec/sidekiq/matchers/be_retryable.rb
rspec-sidekiq-3.0.0 lib/rspec/sidekiq/matchers/be_retryable.rb
rspec-sidekiq-2.2.0 lib/rspec/sidekiq/matchers/be_retryable.rb
rspec-sidekiq-2.1.0 lib/rspec/sidekiq/matchers/be_retryable.rb
rspec-sidekiq-2.0.0 lib/rspec/sidekiq/matchers/be_retryable.rb