Files
nairobi/spec/controllers/remote_translation_controller_spec.rb
Javi Martín a20622e2fa Allow remote translation tests to be run offline
The method `available_locales` in
`RemoteTranslations::Microsoft::AvailableLocales` needs to execute a
request to an external server in order to work, meaning it will fail if
the machine its executed on doesn't have an internet connection.

So we're stubbing the method in the tests using it.
2020-04-28 15:45:50 +02:00

46 lines
1.4 KiB
Ruby

require "rails_helper"
describe RemoteTranslationsController, :remote_translations do
describe "POST create", :delay_jobs do
let(:debate) { create(:debate) }
let(:remote_translations_params) do
[{ remote_translatable_id: debate.id.to_s,
remote_translatable_type: debate.class.to_s,
locale: :es }].to_json
end
before do
request.env["HTTP_REFERER"] = "any_path"
end
it "create correctly remote translation" do
post :create, params: { remote_translations: remote_translations_params }
expect(RemoteTranslation.count).to eq(1)
end
it "create remote translation when same remote translation with error_message is enqueued" do
create(:remote_translation, remote_translatable: debate, locale: :es, error_message: "Has errors")
post :create, params: { remote_translations: remote_translations_params }
expect(RemoteTranslation.count).to eq(2)
end
it "not create remote translation when same remote translation is enqueued" do
create(:remote_translation, remote_translatable: debate, locale: :es)
post :create, params: { remote_translations: remote_translations_params }
expect(RemoteTranslation.count).to eq(1)
end
it "redirect_to request referer after create" do
post :create, params: { remote_translations: remote_translations_params }
expect(subject).to redirect_to("any_path")
end
end
end