We applied the Capybara/SpecificMatcher in commit f52a86b46. However,
this rule doesn't convert methods finding <a> tags to methods finding
links because <a> tags only count as links when they've got the `href`
attribute. For instance, in the `xss_spec.rb` file we check what happens
when clicking on an anchor tag because we're testing that the `href`
attribute has been removed and so we can't use `click_link`.
So, basically, we can't enable a rule to automatically detect when we're
using `have_css` instead of `have_link`, but we should still do it
because `have_link` adds an extra check which affects accessibility
since it makes sure the tag has the `href` attribute and so it's
recognizable as a link by screen readers.
136 lines
4.5 KiB
Ruby
136 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(page).to have_link "Proposals",
|
|
href: "/admin/site_customization/information_texts?tab=proposals",
|
|
class: "is-active"
|
|
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
|