diff --git a/app/models/remote_translation.rb b/app/models/remote_translation.rb index 85fc77bdd..63b4cfc92 100644 --- a/app/models/remote_translation.rb +++ b/app/models/remote_translation.rb @@ -4,7 +4,7 @@ class RemoteTranslation < ApplicationRecord validates :remote_translatable_id, presence: true validates :remote_translatable_type, presence: true validates :locale, presence: true - validates :locale, inclusion: { in: RemoteTranslations::Microsoft::AvailableLocales.available_locales } + validates :locale, inclusion: { in: ->(_) { RemoteTranslations::Microsoft::AvailableLocales.available_locales }} validate :already_translated_resource after_create :enqueue_remote_translation diff --git a/spec/models/remote_translation_spec.rb b/spec/models/remote_translation_spec.rb index 399952939..e0364033c 100644 --- a/spec/models/remote_translation_spec.rb +++ b/spec/models/remote_translation_spec.rb @@ -37,6 +37,18 @@ describe RemoteTranslation do expect(remote_translation).not_to be_valid end + it "checks available locales dynamically" do + allow(RemoteTranslations::Microsoft::AvailableLocales) + .to receive(:available_locales).and_return(["en"]) + + expect(remote_translation).not_to be_valid + + allow(RemoteTranslations::Microsoft::AvailableLocales) + .to receive(:available_locales).and_return(["es"]) + + expect(remote_translation).to be_valid + 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)