Class: RSpec::ActiveJob::Matchers::EnqueueA

Inherits:
Object
  • Object
show all
Defined in:
lib/rspec/active_job/enqueue_a.rb

Instance Method Summary collapse

Constructor Details

#initialize(job_class = nil) ⇒ EnqueueA

Returns a new instance of EnqueueA.



7
8
9
# File 'lib/rspec/active_job/enqueue_a.rb', line 7

def initialize(job_class = nil)
  @job_class = job_class
end

Instance Method Details

#descriptionObject



72
73
74
75
76
# File 'lib/rspec/active_job/enqueue_a.rb', line 72

def description
  return "enqueue a job" unless job_class
  return "enqueue a #{job_class.name}" unless argument_list_matcher
  "enqueue a #{job_class.name} with #{argument_list_matcher.expected_args}"
end

#failure_messageObject



45
46
47
48
49
50
51
# File 'lib/rspec/active_job/enqueue_a.rb', line 45

def failure_message
  enqueued_nothing_message ||
    enqueued_wrong_class_message ||
    enqueued_at_wrong_time_message ||
    enqueued_wrong_number_of_times_message ||
    wrong_arguments_message
end

#failure_message_when_negatedObject



53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/rspec/active_job/enqueue_a.rb', line 53

def failure_message_when_negated
  return "expected to not enqueue a job" unless job_class

  message = "expected to not enqueue a #{job_class}"
  if @argument_list_matcher
    message += " with #{argument_list_matcher.expected_args}"
  end

  message += ", but enqueued a #{enqueued_jobs.last[:job]}"

  return message unless enqueued_correct_class?

  message + " with #{new_jobs_with_correct_class.first[:args]}"
end

#matches?(actual) ⇒ Boolean

Returns:

  • (Boolean)


11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/rspec/active_job/enqueue_a.rb', line 11

def matches?(actual)
  raise "must use a block with enqueue_a" if !actual.is_a?(Proc) && @job_class

  if actual.is_a?(Proc)
    @before_jobs = enqueued_jobs.dup
    actual.call
    all_checks_pass?
  else
    @job_class = actual
    @before_jobs = []
    all_checks_pass?
  end
end

#onceObject



35
36
37
38
# File 'lib/rspec/active_job/enqueue_a.rb', line 35

def once
  @number_of_times = 1
  self
end

#supports_block_expectations?Boolean

Returns:

  • (Boolean)


68
69
70
# File 'lib/rspec/active_job/enqueue_a.rb', line 68

def supports_block_expectations?
  true
end

#times(n) ⇒ Object



40
41
42
43
# File 'lib/rspec/active_job/enqueue_a.rb', line 40

def times(n)
  @number_of_times = n
  self
end

#to_run_at(time) ⇒ Object



30
31
32
33
# File 'lib/rspec/active_job/enqueue_a.rb', line 30

def to_run_at(time)
  @run_time = time.to_f
  self
end

#with(*args) ⇒ Object



25
26
27
28
# File 'lib/rspec/active_job/enqueue_a.rb', line 25

def with(*args)
  @argument_list_matcher = RSpec::Mocks::ArgumentListMatcher.new(*args)
  self
end