Sha256: 945748d3bc79c65dd1f8e7d64b5a47b7b1eeb1a81d1ee746ebdcc5ab2b2b052c

Contents?: true

Size: 1.01 KB

Versions: 9

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?(Numeric)
            "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

9 entries across 9 versions & 1 rubygems

Version Path
rspec-sidekiq-4.2.0 lib/rspec/sidekiq/matchers/be_retryable.rb
rspec-sidekiq-4.1.0 lib/rspec/sidekiq/matchers/be_retryable.rb
rspec-sidekiq-4.0.2 lib/rspec/sidekiq/matchers/be_retryable.rb
rspec-sidekiq-4.0.1 lib/rspec/sidekiq/matchers/be_retryable.rb
rspec-sidekiq-4.0.0 lib/rspec/sidekiq/matchers/be_retryable.rb
rspec-sidekiq-4.0.0.pre lib/rspec/sidekiq/matchers/be_retryable.rb
rspec-sidekiq-3.1.0 lib/rspec/sidekiq/matchers/be_retryable.rb
rspec-sidekiq-3.0.3 lib/rspec/sidekiq/matchers/be_retryable.rb
rspec-sidekiq-3.0.2 lib/rspec/sidekiq/matchers/be_retryable.rb