Simplify tests using delayed_job

Among other advantages, now we can run these tests with
`rspec --tag delayed_jobs`.
This commit is contained in:
Javi Martín
2019-09-14 01:02:24 +02:00
parent 7be72df5bf
commit eb7a052207
6 changed files with 14 additions and 42 deletions

View File

@@ -2,7 +2,7 @@ require "rails_helper"
describe RemoteTranslationsController do
describe "POST create" do
describe "POST create", :delay_jobs do
let(:debate) { create(:debate) }
before do
@@ -10,11 +10,6 @@ describe RemoteTranslationsController do
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

View File

@@ -181,7 +181,7 @@ describe "Notifications" do
end
end
describe "#send_pending" do
describe "#send_pending", :delay_jobs do
let!(:user1) { create(:user) }
let!(:user2) { create(:user) }
let!(:user3) { create(:user) }
@@ -192,11 +192,6 @@ describe "Notifications" do
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

View File

@@ -64,7 +64,7 @@ describe Newsletter do
end
end
describe "#deliver" do
describe "#deliver", :delay_jobs do
let!(:proposals) { Array.new(3) { create(:proposal) } }
let!(:recipients) { proposals.map(&:author).map(&:email) }
@@ -73,11 +73,6 @@ describe Newsletter do
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

View File

@@ -28,16 +28,7 @@ describe RemoteTranslation do
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

View File

@@ -48,10 +48,7 @@ shared_examples "remotely_translatable" do |factory_name, path_name, path_argume
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
@@ -154,16 +151,7 @@ shared_examples "remotely_translatable" do |factory_name, path_name, path_argume
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")

View File

@@ -93,6 +93,14 @@ RSpec.configure do |config|
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