122 lines
3.7 KiB
Ruby
122 lines
3.7 KiB
Ruby
require 'rails_helper'
|
|
|
|
feature "Translations" do
|
|
|
|
context "Milestones" do
|
|
|
|
let(:investment) { create(:budget_investment) }
|
|
let(:milestone) { create(:budget_investment_milestone,
|
|
investment: investment,
|
|
description_en: "Description in English",
|
|
description_es: "Descripción en Español") }
|
|
|
|
background do
|
|
admin = create(:administrator)
|
|
login_as(admin.user)
|
|
end
|
|
|
|
before do
|
|
@edit_milestone_url = edit_admin_budget_budget_investment_budget_investment_milestone_path(investment.budget, investment, milestone)
|
|
end
|
|
|
|
scenario "Add a translation", :js do
|
|
visit @edit_milestone_url
|
|
|
|
select "Français", from: "translation_locale"
|
|
fill_in 'budget_investment_milestone_description_fr', with: 'Description en Français'
|
|
|
|
click_button 'Update milestone'
|
|
expect(page).to have_content "Milestone updated successfully"
|
|
|
|
visit @edit_milestone_url
|
|
expect(page).to have_field('budget_investment_milestone_description_en', with: 'Description in English')
|
|
|
|
click_link "Español"
|
|
expect(page).to have_field('budget_investment_milestone_description_es', with: 'Descripción en Español')
|
|
|
|
click_link "Français"
|
|
expect(page).to have_field('budget_investment_milestone_description_fr', with: 'Description en Français')
|
|
end
|
|
|
|
scenario "Update a translation", :js do
|
|
visit @edit_milestone_url
|
|
|
|
click_link "Español"
|
|
fill_in 'budget_investment_milestone_description_es', with: 'Descripción correcta en Español'
|
|
|
|
click_button 'Update milestone'
|
|
expect(page).to have_content "Milestone updated successfully"
|
|
|
|
visit budget_investment_path(investment.budget, investment)
|
|
|
|
click_link("Milestones (1)")
|
|
expect(page).to have_content("Description in English")
|
|
|
|
select('Español', from: 'locale-switcher')
|
|
click_link("Seguimiento (1)")
|
|
|
|
expect(page).to have_content("Descripción correcta en Español")
|
|
end
|
|
|
|
scenario "Remove a translation", :js do
|
|
visit @edit_milestone_url
|
|
|
|
click_link "Español"
|
|
click_link "Remove language"
|
|
|
|
expect(page).not_to have_link "Español"
|
|
|
|
click_button "Update milestone"
|
|
visit @edit_milestone_url
|
|
expect(page).not_to have_link "Español"
|
|
end
|
|
|
|
context "Globalize javascript interface" do
|
|
|
|
scenario "Highlight current locale", :js do
|
|
visit @edit_milestone_url
|
|
|
|
expect(find("a.js-globalize-locale-link.is-active")).to have_content "English"
|
|
|
|
select('Español', from: 'locale-switcher')
|
|
|
|
expect(find("a.js-globalize-locale-link.is-active")).to have_content "Español"
|
|
end
|
|
|
|
scenario "Highlight selected locale", :js do
|
|
visit @edit_milestone_url
|
|
|
|
expect(find("a.js-globalize-locale-link.is-active")).to have_content "English"
|
|
|
|
click_link "Español"
|
|
|
|
expect(find("a.js-globalize-locale-link.is-active")).to have_content "Español"
|
|
end
|
|
|
|
scenario "Show selected locale form", :js do
|
|
visit @edit_milestone_url
|
|
|
|
expect(page).to have_field('budget_investment_milestone_description_en', with: 'Description in English')
|
|
|
|
click_link "Español"
|
|
|
|
expect(page).to have_field('budget_investment_milestone_description_es', with: 'Descripción en Español')
|
|
end
|
|
|
|
scenario "Select a locale and add it to the milestone form", :js do
|
|
visit @edit_milestone_url
|
|
|
|
select "Français", from: "translation_locale"
|
|
|
|
expect(page).to have_link "Français"
|
|
|
|
click_link "Français"
|
|
|
|
expect(page).to have_field('budget_investment_milestone_description_fr')
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
end
|