For the HashAlignment rule, we're using the default `key` style (keys are aligned and values aren't) instead of the `table` style (both keys and values are aligned) because, even if we used both in the application, we used the `key` style a lot more. Furthermore, the `table` style looks strange in places where there are both very long and very short keys and sometimes we weren't even consistent with the `table` style, aligning some keys without aligning other keys. Ideally we could align hashes to "either key or table", so developers can decide whether keeping the symmetry of the code is worth it in a case-per-case basis, but Rubocop doesn't allow this option.
134 lines
4.5 KiB
Ruby
134 lines
4.5 KiB
Ruby
require "rails_helper"
|
|
|
|
describe "Admin custom information texts", :admin do
|
|
scenario "page is correctly loaded" do
|
|
visit admin_site_customization_information_texts_path
|
|
|
|
click_link "Basic customization"
|
|
expect(page).to have_content "Help with debates"
|
|
expect(page).to have_content "Help with proposals"
|
|
expect(page).to have_content "Help with voting"
|
|
expect(page).to have_content "Help with collaborative legislation"
|
|
expect(page).to have_content "Help with participatory budgets"
|
|
|
|
within("#information-texts-tabs") { click_link "Debates" }
|
|
|
|
expect(page).to have_content "Edit debate"
|
|
|
|
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"
|
|
|
|
within("#information-texts-tabs") { click_link "Collaborative legislation" }
|
|
|
|
expect(page).to have_content "Help with collaborative legislation"
|
|
|
|
within("#information-texts-tabs") { click_link "Budgets" }
|
|
|
|
expect(page).to have_content "You have not voted any investment project."
|
|
|
|
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" 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" do
|
|
key = "proposals.show.share"
|
|
create(:i18n_content, key: key, value_fr: "Partager 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: "Partager personalise"
|
|
|
|
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 "Partager personalise"
|
|
expect(page).not_to have_content "Partager la proposition"
|
|
end
|
|
|
|
scenario "Remove a translation" do
|
|
featured = create(:i18n_content, key: "debates.index.featured_debates",
|
|
value_en: "Custom featured",
|
|
value_es: "Destacar personalizado")
|
|
|
|
page_title = create(:i18n_content, key: "debates.new.start_new",
|
|
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 featured"
|
|
|
|
featured.reload
|
|
page_title.reload
|
|
|
|
expect(page_title.value_es).to be nil
|
|
expect(featured.value_es).to be nil
|
|
expect(page_title.value_en).to eq "Start a new debate"
|
|
expect(featured.value_en).to eq "Custom featured"
|
|
end
|
|
end
|
|
end
|