- Create concern to reuse the logic of detection of non-existent
translations in Controllers.
- Add detect_remote_translation method:
* This method will be called from controllers to recover resources
without translation.
* Receive arrays of resources.
* Return an array with hashes of remote_translations values for
every resources that have not translations.
* This array will be the param that will be sent from view to
RemoteTranslationController for create remote translations instances.
67 lines
1.9 KiB
Ruby
67 lines
1.9 KiB
Ruby
require "rails_helper"
|
|
include RemotelyTranslatable
|
|
|
|
describe RemotelyTranslatable do
|
|
|
|
before do
|
|
Setting["feature.remote_translations"] = true
|
|
end
|
|
|
|
after do
|
|
Setting["feature.remote_translations"] = nil
|
|
end
|
|
|
|
describe "#detect_remote_translations" do
|
|
|
|
describe "Should detect remote_translations" do
|
|
|
|
it "When collections and featured_proposals are not defined in current locale" do
|
|
proposals = create_list(:proposal, 3)
|
|
featured_proposals = create_featured_proposals
|
|
|
|
I18n.with_locale(:es) do
|
|
expect(detect_remote_translations(proposals, featured_proposals).count).to eq 6
|
|
end
|
|
end
|
|
|
|
it "When we have nil as argument and collections are not defined in current locale" do
|
|
proposals = create_list(:proposal, 3)
|
|
|
|
I18n.with_locale(:es) do
|
|
expect(detect_remote_translations(proposals, nil).count).to eq 3
|
|
end
|
|
end
|
|
|
|
it "When we have [] as argument and collections are not defined in current locale" do
|
|
proposals = create_list(:proposal, 3)
|
|
|
|
I18n.with_locale(:es) do
|
|
expect(detect_remote_translations(proposals, []).count).to eq 3
|
|
end
|
|
end
|
|
|
|
it "When widget feeds are not defined in current locale" do
|
|
create_list(:proposal, 3)
|
|
create_list(:debate, 3)
|
|
create_list(:legislation_process, 3)
|
|
create(:widget_feed, kind: "proposals")
|
|
create(:widget_feed, kind: "debates")
|
|
create(:widget_feed, kind: "processes")
|
|
widget_feeds = Widget::Feed.active
|
|
|
|
I18n.with_locale(:es) do
|
|
expect(detect_remote_translations(widget_feeds).count).to eq 9
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
it "When defined in current locale should not detect remote_translations" do
|
|
proposal = create(:proposal)
|
|
comment = create(:comment, commentable: proposal)
|
|
|
|
expect(detect_remote_translations([proposal, comment])).to eq []
|
|
end
|
|
end
|
|
end
|