Skip to content

Commit

Permalink
Simplify tests using delayed_job
Browse files Browse the repository at this point in the history
Among other advantages, now we can run these tests with
`rspec --tag delayed_jobs`.
  • Loading branch information
javierm committed Sep 20, 2019
1 parent 6e32801 commit 64db5fa
Show file tree
Hide file tree
Showing 6 changed files with 14 additions and 42 deletions.
7 changes: 1 addition & 6 deletions spec/controllers/remote_translation_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,14 @@

describe RemoteTranslationsController do

describe "POST create" do
describe "POST create", :delay_jobs do
let(:debate) { create(:debate) }

before do
@remote_translations_params = [{ remote_translatable_id: debate.id.to_s,
remote_translatable_type: debate.class.to_s,
locale: :es }].to_json
request.env["HTTP_REFERER"] = "any_path"
Delayed::Worker.delay_jobs = true
end

after do
Delayed::Worker.delay_jobs = false
end

it "create correctly remote translation" do
Expand Down
7 changes: 1 addition & 6 deletions spec/features/notifications_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@
end
end

describe "#send_pending" do
describe "#send_pending", :delay_jobs do
let!(:user1) { create(:user) }
let!(:user2) { create(:user) }
let!(:user3) { create(:user) }
Expand All @@ -192,11 +192,6 @@
create(:notification, notifiable: proposal_notification, user: user2)
create(:notification, notifiable: proposal_notification, user: user3)
reset_mailer
Delayed::Worker.delay_jobs = true
end

after do
Delayed::Worker.delay_jobs = false
end

it "sends pending proposal notifications" do
Expand Down
7 changes: 1 addition & 6 deletions spec/models/newsletter_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@
end
end

describe "#deliver" do
describe "#deliver", :delay_jobs do
let!(:proposals) { Array.new(3) { create(:proposal) } }

let!(:recipients) { proposals.map(&:author).map(&:email) }
Expand All @@ -73,11 +73,6 @@
before do
create(:debate)
reset_mailer
Delayed::Worker.delay_jobs = true
end

after do
Delayed::Worker.delay_jobs = false
end

it "sends an email with the newsletter to every recipient" do
Expand Down
11 changes: 1 addition & 10 deletions spec/models/remote_translation_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -28,16 +28,7 @@
expect(remote_translation).not_to be_valid
end

describe "#enqueue_remote_translation" do

before do
Delayed::Worker.delay_jobs = true
end

after do
Delayed::Worker.delay_jobs = false
end

describe "#enqueue_remote_translation", :delay_jobs do
it "after create enqueue Delayed Job" do
expect { remote_translation.save }.to change { Delayed::Job.count }.by(1)
end
Expand Down
16 changes: 2 additions & 14 deletions spec/shared/features/remotely_translatable.rb
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,7 @@
expect(page).not_to have_button("Translate page")
end

describe "with delayed job active" do
before { Delayed::Worker.delay_jobs = true }
after { Delayed::Worker.delay_jobs = false }

describe "with delayed job active", :delay_jobs do
scenario "should not be present when an equal RemoteTranslation is enqueued", :js do
create(:remote_translation, remote_translatable: resource, locale: :de)
visit path
Expand Down Expand Up @@ -154,16 +151,7 @@

context "After click remote translations button" do

describe "with delayed jobs" do

before do
Delayed::Worker.delay_jobs = true
end

after do
Delayed::Worker.delay_jobs = false
end

describe "with delayed jobs", :delay_jobs do
scenario "the remote translation button should not be present", :js do
visit path
select("Deutsch", from: "locale-switcher")
Expand Down
8 changes: 8 additions & 0 deletions spec/spec_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,14 @@
Bullet.end_request
end

config.before(:each, :delay_jobs) do
Delayed::Worker.delay_jobs = true
end

config.after(:each, :delay_jobs) do
Delayed::Worker.delay_jobs = false
end

config.before(:each, :with_frozen_time) do
travel_to Time.now # TODO: use `freeze_time` after migrating to Rails 5.
end
Expand Down

0 comments on commit 64db5fa

Please sign in to comment.