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.
46 lines
1.4 KiB
Ruby
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
|