Add specs to check that the translations are being deleted correctly and the current locale tab is highlighted when the admin visits the edit milestone page.
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("span .js-globalize-locale-link.highlight")).to have_content "English"
|
|
|
|
select('Español', from: 'locale-switcher')
|
|
|
|
expect(find("span .js-globalize-locale-link.highlight")).to have_content "Español"
|
|
end
|
|
|
|
scenario "Highlight selected locale", :js do
|
|
visit @edit_milestone_url
|
|
|
|
expect(find("span .js-globalize-locale-link.highlight")).to have_content "English"
|
|
|
|
click_link "Español"
|
|
|
|
expect(find("span .js-globalize-locale-link.highlight")).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
|