Sha256: 2849d00e2bb95eaaa37c7909a0895681506fff9b994f5bb0a4379a3254be604b

Contents?: true

Size: 1.01 KB

Versions: 1

Compression:

Stored size: 1.01 KB

Contents

module RSpec
  module Sidekiq
    module Matchers
      def have_enqueued_job *expected_arguments
        HaveEnqueuedJob.new expected_arguments
      end

      class HaveEnqueuedJob
        def initialize expected_arguments
          @expected_arguments = expected_arguments
        end

        def description
          "have an enqueued #{@klass} job with arguments #{@expected_arguments}"
        end

        def failure_message
          "expected to have an enqueued #{@klass} job with arguments #{@expected_arguments}\n\n" +
          "found: #{@actual}"
        end

        def matches? klass
          @klass = klass
          @actual = klass.jobs.map { |job| job["args"] }
          @actual.any? { |arguments| Array(@expected_arguments) == arguments }
        end

        def negative_failure_message
          "expected to not have an enqueued #{@klass} job with arguments #{@expected_arguments}"
        end
        alias_method :failure_message_when_negated, :negative_failure_message
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rspec-sidekiq-1.1.0 lib/rspec/sidekiq/matchers/have_enqueued_job.rb