Files
grecia/spec/features/admin/site_customization/information_texts_spec.rb
Javi Martín 44d137a4c0 Simplify translatable tests in admin section
These feature tests were taking too long, we can't run them for every
single model.

I'm taking the approach of using one different model for each test, but
in theory only using a few models covering every possible scenario
would be enough.
2019-09-23 18:01:44 +02:00

135 lines
4.4 KiB
Ruby

require "rails_helper"
describe "Admin custom information texts" do
before do
admin = create(:administrator)
login_as(admin.user)
end
scenario "page is correctly loaded" do
visit admin_site_customization_information_texts_path
click_link "Basic customization"
expect(page).to have_content "Help about debates"
expect(page).to have_content "Help about proposals"
expect(page).to have_content "Help about voting"
expect(page).to have_content "Help about collaborative legislation"
expect(page).to have_content "Help with participatory budgets"
within("#information-texts-tabs") { click_link "Debates" }
expect(page).to have_content "Help about debates"
within("#information-texts-tabs") { click_link "Community" }
expect(page).to have_content "Access the community"
within("#information-texts-tabs") { click_link "Proposals" }
expect(page).to have_content "Create proposal"
within "#information-texts-tabs" do
click_link "Polls"
end
expect(page).to have_content "Results"
click_link "Layouts"
expect(page).to have_content "Accessibility"
click_link "Emails"
expect(page).to have_content "Confirm your email"
within "#information-texts-tabs" do
click_link "Management"
end
expect(page).to have_content "This user account is already verified."
click_link "Welcome"
expect(page).to have_content "See all debates"
end
scenario "check that tabs are highlight when click it" do
visit admin_site_customization_information_texts_path
within("#information-texts-tabs") { click_link "Proposals" }
expect(find("a[href=\"/admin/site_customization/information_texts?tab=proposals\"].is-active"))
.to have_content "Proposals"
end
context "Globalization" do
scenario "Add a translation", :js do
key = "debates.index.section_footer.title"
visit admin_site_customization_information_texts_path
select "Français", from: :add_language
fill_in "contents[content_#{key}]values[value_fr]", with: "Aide personalise sur les débats"
click_button "Save"
expect(page).to have_content "Translation updated successfully"
visit admin_site_customization_information_texts_path
select "Français", from: :select_language
expect(page).to have_content "Aide personalise sur les débats"
expect(page).not_to have_content "Aide sur les débats"
end
scenario "Update a translation", :js do
key = "proposals.form.proposal_title"
create(:i18n_content, key: key, value_fr: "Titre de la proposition")
visit admin_site_customization_information_texts_path(tab: "proposals")
select "Français", from: :select_language
fill_in "contents_content_#{key}values_value_fr", with: "Titre personalise de la proposition"
click_button "Save"
expect(page).to have_content "Translation updated successfully"
visit admin_site_customization_information_texts_path(tab: "proposals")
select "Français", from: :select_language
expect(page).to have_content "Titre personalise de la proposition"
expect(page).not_to have_content "Titre de la proposition"
end
scenario "Remove a translation", :js do
first_key = "debates.form.debate_title"
debate_title = create(:i18n_content, key: first_key,
value_en: "Custom debate title",
value_es: "Título personalizado de debate")
second_key = "debates.new.start_new"
page_title = create(:i18n_content, key: second_key,
value_en: "Start a new debate",
value_es: "Empezar un debate")
visit admin_site_customization_information_texts_path(tab: "debates")
select "Español", from: :select_language
click_link "Remove language"
click_button "Save"
expect(page).not_to have_link "Español"
visit admin_site_customization_information_texts_path(tab: "debates")
select "English", from: :select_language
expect(page).to have_content "Start a new debate"
expect(page).to have_content "Custom debate title"
debate_title.reload
page_title.reload
expect(page_title.value_es).to be(nil)
expect(debate_title.value_es).to be(nil)
expect(page_title.value_en).to eq("Start a new debate")
expect(debate_title.value_en).to eq("Custom debate title")
end
end
end