Fix found Hound violations

This commit is contained in:
taitus
2019-04-23 16:56:18 +02:00
committed by voodoorai2000
parent abb81fccf4
commit d2506358ef
6 changed files with 73 additions and 67 deletions

View File

@@ -11,9 +11,9 @@ module RemotelyTranslatable
end end
def remote_translation_for(resource) def remote_translation_for(resource)
{ 'remote_translatable_id' => resource.id.to_s, { "remote_translatable_id" => resource.id.to_s,
'remote_translatable_type' => resource.class.to_s, "remote_translatable_type" => resource.class.to_s,
'locale' => I18n.locale } "locale" => I18n.locale }
end end
def translation_empty?(resource) def translation_empty?(resource)

View File

@@ -8,25 +8,27 @@ class RemoteTranslationsController < ApplicationController
@remote_translations.each do |remote_translation| @remote_translations.each do |remote_translation|
RemoteTranslation.create(remote_translation) unless translations_enqueued?(remote_translation) RemoteTranslation.create(remote_translation) unless translations_enqueued?(remote_translation)
end end
redirect_to request.referer, notice: t('remote_translations.create.enqueue_remote_translation') redirect_to request.referer, notice: t("remote_translations.create.enqueue_remote_translation")
end end
private private
def remote_translations_params def remote_translations_params
params.permit(:remote_translations) params.permit(:remote_translations)
end end
def set_remote_translations def set_remote_translations
decoded_remote_translations = ActiveSupport::JSON.decode(remote_translations_params["remote_translations"]) remote_translations = remote_translations_params["remote_translations"]
@remote_translations = decoded_remote_translations.map{ |remote_translation| decoded_remote_translations = ActiveSupport::JSON.decode(remote_translations)
remote_translation.slice("remote_translatable_id","remote_translatable_type","locale") @remote_translations = decoded_remote_translations.map{ |remote_translation|
} remote_translation.slice("remote_translatable_id",
end "remote_translatable_type",
"locale")
}
end
def translations_enqueued?(remote_translation)
def translations_enqueued?(remote_translation) RemoteTranslation.remote_translation_enqueued?(remote_translation)
RemoteTranslation.remote_translation_enqueued?(remote_translation) end
end
end end

View File

@@ -27,6 +27,7 @@ class RemoteTranslationsCaller
else else
remote_translation.update(error_message: resource.errors.messages) remote_translation.update(error_message: resource.errors.messages)
end end
resource.save
end end
def resource def resource

View File

@@ -3,11 +3,12 @@ require "rails_helper"
describe RemoteTranslationsController do describe RemoteTranslationsController do
describe "POST create" do describe "POST create" do
let(:debate) { create(:debate) }
before do before do
@debate = create(:debate) @remote_translations_params = [{ remote_translatable_id: debate.id.to_s,
@remote_translations_params = [{ remote_translatable_id: @debate.id.to_s, remote_translatable_type: debate.class.to_s,
remote_translatable_type: @debate.class.to_s, locale: :es }].to_json
locale: :es }].to_json
allow(controller.request).to receive(:referer).and_return("any_path") allow(controller.request).to receive(:referer).and_return("any_path")
Delayed::Worker.delay_jobs = true Delayed::Worker.delay_jobs = true
end end
@@ -23,7 +24,7 @@ describe RemoteTranslationsController do
end end
it "create remote translation when same remote translation with error_message is enqueued" do 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") create(:remote_translation, remote_translatable: debate, locale: :es, error_message: "Has errors")
post :create, remote_translations: @remote_translations_params post :create, remote_translations: @remote_translations_params
@@ -31,7 +32,7 @@ describe RemoteTranslationsController do
end end
it "not create remote translation when same remote translation is enqueued" do it "not create remote translation when same remote translation is enqueued" do
create(:remote_translation, remote_translatable: @debate, locale: :es) create(:remote_translation, remote_translatable: debate, locale: :es)
post :create, remote_translations: @remote_translations_params post :create, remote_translations: @remote_translations_params

View File

@@ -1,4 +1,4 @@
require 'rails_helper' require "rails_helper"
describe RemoteTranslationsCaller do describe RemoteTranslationsCaller do
@@ -6,18 +6,18 @@ describe RemoteTranslationsCaller do
RemoteTranslation.skip_callback(:create, :after, :enqueue_remote_translation) RemoteTranslation.skip_callback(:create, :after, :enqueue_remote_translation)
end end
describe '#call' do describe "#call" do
context 'Debates' do context "Debates" do
let(:debate) { create(:debate) } let(:debate) { create(:debate) }
let(:remote_translation) { create(:remote_translation, let(:remote_translation) { create(:remote_translation,
remote_translatable: debate, locale: :es) } remote_translatable: debate, locale: :es) }
let(:remote_translation_caller) { described_class.new(remote_translation) } let(:remote_translation_caller) { described_class.new(remote_translation) }
it 'returns the resource with new translation persisted' do it "returns the resource with new translation persisted" do
microsoft_translate_client_response = ["Título traducido", "Descripción traducida"] response = ["Título traducido", "Descripción traducida"]
expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(microsoft_translate_client_response) expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(response)
remote_translation_caller.call remote_translation_caller.call
@@ -25,8 +25,8 @@ describe RemoteTranslationsCaller do
end end
it "when new translation locale is distinct to default_locale skip length validations" do it "when new translation locale is distinct to default_locale skip length validations" do
microsoft_translate_client_response = ["TT", "Descripción traducida"] response = ["TT", "Descripción traducida"]
expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(microsoft_translate_client_response) expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(response)
remote_translation_caller.call remote_translation_caller.call
@@ -36,8 +36,8 @@ describe RemoteTranslationsCaller do
end end
it "when new translation locale is distinct to default_locale not skip presence validations" do it "when new translation locale is distinct to default_locale not skip presence validations" do
microsoft_translate_client_response = ["", "Descripción traducida"] response = ["", "Descripción traducida"]
expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(microsoft_translate_client_response) expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(response)
remote_translation_caller.call remote_translation_caller.call
@@ -47,8 +47,8 @@ describe RemoteTranslationsCaller do
end end
it "destroy remote translation instance" do it "destroy remote translation instance" do
microsoft_translate_client_response = ["Título traducido", "Descripción traducida"] response = ["Título traducido", "Descripción traducida"]
expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(microsoft_translate_client_response) expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(response)
remote_translation_caller.call remote_translation_caller.call
@@ -56,16 +56,17 @@ describe RemoteTranslationsCaller do
end end
end end
context 'Proposals' do context "Proposals" do
let!(:proposal) { create(:proposal) } let!(:proposal) { create(:proposal) }
let(:remote_translation) { create(:remote_translation, let(:remote_translation) { create(:remote_translation,
remote_translatable: proposal, locale: :es) } remote_translatable: proposal, locale: :es) }
let(:remote_translation_caller) { described_class.new(remote_translation) } let(:remote_translation_caller) { described_class.new(remote_translation) }
it 'returns the resource with new translation persisted' do it "returns the resource with new translation persisted" do
microsoft_translate_client_response = ["Título traducido", "Descripción traducida", "Pregunta traducida", "Resumen traducido", nil] response = ["Título traducido", "Descripción traducida", "Pregunta traducida",
expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(microsoft_translate_client_response) "Resumen traducido", nil]
expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(response)
remote_translation_caller.call remote_translation_caller.call
@@ -73,8 +74,8 @@ describe RemoteTranslationsCaller do
end end
it "when new translation locale is distinct to default_locale skip lenght validations" do it "when new translation locale is distinct to default_locale skip lenght validations" do
microsoft_translate_client_response = ["TT", "Descripción traducida", "Pregunta traducida", "Resumen traducido", nil] response = ["TT", "Descripción traducida", "Pregunta traducida", "Resumen traducido", nil]
expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(microsoft_translate_client_response) expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(response)
remote_translation_caller.call remote_translation_caller.call
@@ -84,8 +85,8 @@ describe RemoteTranslationsCaller do
end end
it "when new translation locale is distinct to default_locale do not skip presence validations" do it "when new translation locale is distinct to default_locale do not skip presence validations" do
microsoft_translate_client_response = ["", "Descripción traducida", "Pregunta traducida", "Resumen traducido", nil] response = ["", "Descripción traducida", "Pregunta traducida", "Resumen traducido", nil]
expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(microsoft_translate_client_response) expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(response)
remote_translation_caller.call remote_translation_caller.call
@@ -95,8 +96,9 @@ describe RemoteTranslationsCaller do
end end
it "destroy remote translation instance" do it "destroy remote translation instance" do
microsoft_translate_client_response = ["Título traducido", "Descripción traducida", "Pregunta traducida", "Resumen traducido", nil] response = ["Título traducido", "Descripción traducida", "Pregunta traducida",
expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(microsoft_translate_client_response) "Resumen traducido", nil]
expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(response)
remote_translation_caller.call remote_translation_caller.call
@@ -104,7 +106,7 @@ describe RemoteTranslationsCaller do
end end
end end
context 'Budget Investments' do context "Budget Investments" do
let(:budget_investment) { create(:budget_investment) } let(:budget_investment) { create(:budget_investment) }
let(:remote_translation) { create(:remote_translation, let(:remote_translation) { create(:remote_translation,
@@ -112,9 +114,9 @@ describe RemoteTranslationsCaller do
locale: :es) } locale: :es) }
let(:remote_translation_caller) { described_class.new(remote_translation) } let(:remote_translation_caller) { described_class.new(remote_translation) }
it 'returns the resource with new translation persisted' do it "returns the resource with new translation persisted" do
microsoft_translate_client_response = ["Título traducido", "Descripción traducida"] response = ["Título traducido", "Descripción traducida"]
expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(microsoft_translate_client_response) expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(response)
remote_translation_caller.call remote_translation_caller.call
@@ -122,8 +124,8 @@ describe RemoteTranslationsCaller do
end end
it "when new translation locale is distinct to default_locale skip lenght validations" do it "when new translation locale is distinct to default_locale skip lenght validations" do
microsoft_translate_client_response = ["TT", "Descripción traducida"] response = ["TT", "Descripción traducida"]
expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(microsoft_translate_client_response) expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(response)
remote_translation_caller.call remote_translation_caller.call
@@ -133,8 +135,8 @@ describe RemoteTranslationsCaller do
end end
it "when new translation locale is distinct to default_locale not skip presence validations" do it "when new translation locale is distinct to default_locale not skip presence validations" do
microsoft_translate_client_response = ["", "Descripción traducida"] response = ["", "Descripción traducida"]
expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(microsoft_translate_client_response) expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(response)
remote_translation_caller.call remote_translation_caller.call
@@ -144,8 +146,8 @@ describe RemoteTranslationsCaller do
end end
it "destroy remote translation instance" do it "destroy remote translation instance" do
microsoft_translate_client_response = ["Título traducido", "Descripción traducida"] response = ["Título traducido", "Descripción traducida"]
expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(microsoft_translate_client_response) expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(response)
remote_translation_caller.call remote_translation_caller.call
@@ -153,16 +155,16 @@ describe RemoteTranslationsCaller do
end end
end end
context 'Comments' do context "Comments" do
let(:comment) { create(:comment) } let(:comment) { create(:comment) }
let(:remote_translation) { create(:remote_translation, let(:remote_translation) { create(:remote_translation,
remote_translatable: comment, locale: :es) } remote_translatable: comment, locale: :es) }
let(:remote_translation_caller) { described_class.new(remote_translation) } let(:remote_translation_caller) { described_class.new(remote_translation) }
it 'returns the resource with new translation persisted' do it "returns the resource with new translation persisted" do
microsoft_translate_client_response = ["Body traducido"] response = ["Body traducido"]
expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(microsoft_translate_client_response) expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(response)
remote_translation_caller.call remote_translation_caller.call
@@ -170,8 +172,8 @@ describe RemoteTranslationsCaller do
end end
it "when new translation locale is distinct to default_locale skip lenght validations" do it "when new translation locale is distinct to default_locale skip lenght validations" do
microsoft_translate_client_response = ["BT"] response = ["BT"]
expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(microsoft_translate_client_response) expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(response)
remote_translation_caller.call remote_translation_caller.call
@@ -181,8 +183,8 @@ describe RemoteTranslationsCaller do
end end
it "when new translation locale is distinct to default_locale not skip presence validations" do it "when new translation locale is distinct to default_locale not skip presence validations" do
microsoft_translate_client_response = [""] response = [""]
expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(microsoft_translate_client_response) expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(response)
remote_translation_caller.call remote_translation_caller.call
@@ -192,8 +194,8 @@ describe RemoteTranslationsCaller do
end end
it "destroy remote translation instance" do it "destroy remote translation instance" do
microsoft_translate_client_response = ["Body traducido"] response = ["Body traducido"]
expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(microsoft_translate_client_response) expect_any_instance_of(MicrosoftTranslateClient).to receive(:call).and_return(response)
remote_translation_caller.call remote_translation_caller.call

View File

@@ -28,9 +28,9 @@ describe RemoteTranslation do
expect(remote_translation).not_to be_valid expect(remote_translation).not_to be_valid
end end
describe '#enqueue_remote_translation' do describe "#enqueue_remote_translation" do
it 'after create enqueue Delayed Job' do it "after create enqueue Delayed Job" do
Delayed::Worker.delay_jobs = true Delayed::Worker.delay_jobs = true
expect { remote_translation.save }.to change { Delayed::Job.count }.by(1) expect { remote_translation.save }.to change { Delayed::Job.count }.by(1)