Merge pull request #3992 from consul/remote_translations_runtime
Check remote translations locales at runtime
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
require "rails_helper"
|
||||
|
||||
describe RemoteTranslationsController do
|
||||
describe RemoteTranslationsController, :remote_translations do
|
||||
describe "POST create", :delay_jobs do
|
||||
let(:debate) { create(:debate) }
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
require "rails_helper"
|
||||
|
||||
describe RemoteTranslations::Caller do
|
||||
describe RemoteTranslations::Caller, :remote_translations do
|
||||
before do
|
||||
RemoteTranslation.skip_callback(:create, :after, :enqueue_remote_translation)
|
||||
end
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
require "rails_helper"
|
||||
|
||||
describe RemoteTranslation do
|
||||
describe RemoteTranslation, :remote_translations do
|
||||
let(:remote_translation) { build(:remote_translation, locale: :es) }
|
||||
|
||||
it "is valid" do
|
||||
@@ -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)
|
||||
|
||||
@@ -69,6 +69,11 @@ RSpec.configure do |config|
|
||||
Delayed::Worker.delay_jobs = false
|
||||
end
|
||||
|
||||
config.before(:each, :remote_translations) do
|
||||
allow(RemoteTranslations::Microsoft::AvailableLocales)
|
||||
.to receive(:available_locales).and_return(I18n.available_locales.map(&:to_s))
|
||||
end
|
||||
|
||||
config.before(:each, :with_frozen_time) do
|
||||
travel_to Time.current # TODO: use `freeze_time` after migrating to Rails 5.2.
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user