Skip to content

Commit efc8f03

Browse files
committed
Added feature specs for have_enqueued_job matcher
1 parent 98ce767 commit efc8f03

File tree

2 files changed

+87
-0
lines changed

2 files changed

+87
-0
lines changed
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
Feature: have_enqueued_job matcher
2+
3+
The `have_enqueued_job` matcher is used to check if given ActiveJob job was enqueued.
4+
5+
Background:
6+
Given active job is available
7+
8+
Scenario: Checking job class name
9+
Given a file named "spec/jobs/upload_backups_job_spec.rb" with:
10+
"""ruby
11+
require "rails_helper"
12+
13+
RSpec.describe UploadBackupsJob do
14+
it "matches with enqueued job" do
15+
ActiveJob::Base.queue_adapter = :test
16+
expect {
17+
UploadBackupsJob.perform_later
18+
}.to have_enqueued_job(UploadBackupsJob)
19+
end
20+
end
21+
"""
22+
When I run `rspec spec/jobs/upload_backups_job_spec.rb`
23+
Then the examples should all pass
24+
25+
Scenario: Checking passed arguments to job
26+
Given a file named "spec/jobs/upload_backups_job_spec.rb" with:
27+
"""ruby
28+
require "rails_helper"
29+
30+
RSpec.describe UploadBackupsJob do
31+
it "matches with enqueued job" do
32+
ActiveJob::Base.queue_adapter = :test
33+
expect {
34+
UploadBackupsJob.perform_later("users-backup.txt", "products-backup.txt")
35+
}.to have_enqueued_job.with("users-backup.txt", "products-backup.txt")
36+
end
37+
end
38+
"""
39+
When I run `rspec spec/jobs/upload_backups_job_spec.rb`
40+
Then the examples should all pass
41+
42+
Scenario: Checking job enqueued time
43+
Given a file named "spec/jobs/upload_backups_job_spec.rb" with:
44+
"""ruby
45+
require "rails_helper"
46+
47+
RSpec.describe UploadBackupsJob do
48+
it "matches with enqueued job" do
49+
ActiveJob::Base.queue_adapter = :test
50+
expect {
51+
UploadBackupsJob.set(:wait_until => Date.tomorrow.noon).perform_later
52+
}.to have_enqueued_job.at(Date.tomorrow.noon)
53+
end
54+
end
55+
"""
56+
When I run `rspec spec/jobs/upload_backups_job_spec.rb`
57+
Then the examples should all pass
58+
59+
Scenario: Checking job queue name
60+
Given a file named "spec/jobs/upload_backups_job_spec.rb" with:
61+
"""ruby
62+
require "rails_helper"
63+
64+
RSpec.describe UploadBackupsJob do
65+
it "matches with enqueued job" do
66+
ActiveJob::Base.queue_adapter = :test
67+
expect {
68+
UploadBackupsJob.perform_later
69+
}.to have_enqueued_job.on_queue("default")
70+
end
71+
end
72+
"""
73+
When I run `rspec spec/jobs/upload_backups_job_spec.rb`
74+
Then the examples should all pass
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,17 @@
1+
begin
2+
require "active_job"
3+
rescue LoadError # rubocop:disable Lint/HandleExceptions
4+
end
5+
6+
require "rspec/rails/feature_check"
7+
18
Then /^the example(s)? should( all)? pass$/ do |_, _|
29
step %q{the output should contain "0 failures"}
310
step %q{the exit status should be 0}
411
end
12+
13+
Given /active job is available/ do
14+
if !RSpec::Rails::FeatureCheck.has_active_job?
15+
pending "ActiveJob is not available"
16+
end
17+
end

0 commit comments

Comments
 (0)