We forgot to do so in commitb896fc4bb. Back then, we said: > Note that we aren't providing a proper aria-label for markers on the > map we use in the form to create a proposal or an investment. Adding > one isn't trivial given the current code, and keyboard users can't add > a marker in the first place. We'll have to revisit this issue when we > add keyboard support for this. However, in the admin section, the marker is already there, so it should have a label. In this case, we're using the coordinates as label because it's the most relevant text for the marker in the context of a form. We could also use "Default map location" instead, but that information is already present on the page. Axe was reporting the same accessibility error we mentioned in commitb896fc4bbin this situation.
347 lines
11 KiB
Ruby
347 lines
11 KiB
Ruby
require "rails_helper"
|
|
|
|
describe "Admin settings", :admin do
|
|
scenario "Index" do
|
|
visit admin_settings_path
|
|
|
|
expect(page).to have_content "Level 1 public official"
|
|
expect(page).to have_content "Maximum ratio of anonymous votes per Debate"
|
|
expect(page).to have_content "Comments body max length"
|
|
end
|
|
|
|
scenario "Update" do
|
|
visit admin_settings_path
|
|
|
|
within "tr", text: "Level 1 public official" do
|
|
fill_in "Level 1 public official", with: "Super Users of level 1"
|
|
click_button "Update"
|
|
end
|
|
|
|
expect(page).to have_content "Value updated"
|
|
end
|
|
|
|
describe "Map settings initialization" do
|
|
scenario "Map is only initialized when the map settings tab content is shown" do
|
|
Setting["feature.map"] = true
|
|
|
|
visit admin_settings_path
|
|
|
|
expect(page).not_to have_css ".map-location.leaflet-container", visible: :all
|
|
|
|
click_link "Map configuration"
|
|
|
|
expect(page).to have_css ".map-location.leaflet-container"
|
|
end
|
|
end
|
|
|
|
describe "Update map" do
|
|
scenario "Should not be able when map feature deactivated" do
|
|
Setting["feature.map"] = false
|
|
|
|
visit admin_settings_path
|
|
click_link "Map configuration"
|
|
|
|
expect(page).to have_content "To show the map to users you must enable " \
|
|
'"Proposals and budget investments geolocation" ' \
|
|
'on "Features" tab.'
|
|
expect(page).not_to have_css ".map-location"
|
|
end
|
|
|
|
scenario "Should update marker" do
|
|
Setting["feature.map"] = true
|
|
|
|
visit admin_settings_path
|
|
click_link "Map configuration"
|
|
|
|
expect(page).to have_css ".map-location"
|
|
expect(page).not_to have_content "To show the map to users you must enable " \
|
|
'"Proposals and budget investments geolocation" ' \
|
|
'on "Features" tab.'
|
|
|
|
expect(page).to have_field "Latitude", with: "51.48"
|
|
expect(page).to have_field "Longitude", with: "0.0"
|
|
expect(page).to have_css ".map-icon[aria-label='Latitude: 51.48. Longitude: 0.0']"
|
|
|
|
within "#map-form" do
|
|
find(".map-location").click
|
|
click_button "Update"
|
|
end
|
|
|
|
expect(page).to have_content "Map configuration updated successfully"
|
|
expect(page).to have_field "Latitude"
|
|
expect(page).to have_css ".map-icon"
|
|
expect(page).not_to have_field "Latitude", with: "51.48"
|
|
expect(page).not_to have_css ".map-icon[aria-label='Latitude: 51.48. Longitude: 0.0']"
|
|
end
|
|
end
|
|
|
|
describe "Update content types" do
|
|
scenario "stores the correct mime types" do
|
|
Setting["uploads.images.content_types"] = "image/png"
|
|
setting = Setting.find_by!(key: "uploads.images.content_types")
|
|
|
|
visit admin_settings_path
|
|
click_link "Images and documents"
|
|
|
|
within "#edit_setting_#{setting.id}" do
|
|
expect(find_field("PNG")).to be_checked
|
|
expect(find_field("JPG")).not_to be_checked
|
|
expect(find_field("GIF")).not_to be_checked
|
|
|
|
check "GIF"
|
|
|
|
click_button "Update"
|
|
end
|
|
|
|
expect(page).to have_content "Value updated"
|
|
|
|
click_link "Images and documents"
|
|
|
|
within "#edit_setting_#{setting.id}" do
|
|
expect(find_field("PNG")).to be_checked
|
|
expect(find_field("GIF")).to be_checked
|
|
expect(find_field("JPG")).not_to be_checked
|
|
end
|
|
end
|
|
end
|
|
|
|
describe "Update Remote Census Configuration" do
|
|
before do
|
|
Setting["feature.remote_census"] = true
|
|
end
|
|
|
|
scenario "Should not be able when remote census feature deactivated" do
|
|
Setting["feature.remote_census"] = nil
|
|
visit admin_settings_path
|
|
find("#remote-census-tab").click
|
|
|
|
expect(page).to have_content "To configure remote census (SOAP) you must enable " \
|
|
'"Configure connection to remote census (SOAP)" ' \
|
|
'on "Features" tab.'
|
|
end
|
|
|
|
scenario "Should be able when remote census feature activated" do
|
|
visit admin_settings_path
|
|
find("#remote-census-tab").click
|
|
|
|
expect(page).to have_content("General Information")
|
|
expect(page).to have_content("Request Data")
|
|
expect(page).to have_content("Response Data")
|
|
expect(page).not_to have_content "To configure remote census (SOAP) you must enable " \
|
|
'"Configure connection to remote census (SOAP)" ' \
|
|
'on "Features" tab.'
|
|
end
|
|
end
|
|
|
|
describe "Should redirect to same tab after update setting" do
|
|
context "remote census" do
|
|
before do
|
|
Setting["feature.remote_census"] = true
|
|
end
|
|
|
|
scenario "On #tab-remote-census-configuration" do
|
|
visit admin_settings_path
|
|
find("#remote-census-tab").click
|
|
|
|
within "tr", text: "Endpoint" do
|
|
fill_in "Endpoint", with: "example.org/webservice"
|
|
click_button "Update"
|
|
end
|
|
|
|
expect(page).to have_current_path(admin_settings_path)
|
|
expect(page).to have_css("div#tab-remote-census-configuration.is-active")
|
|
end
|
|
end
|
|
|
|
scenario "On #tab-configuration" do
|
|
visit admin_settings_path
|
|
|
|
within "tr", text: "Level 1 public official" do
|
|
fill_in "Level 1 public official", with: "Super Users of level 1"
|
|
click_button "Update"
|
|
end
|
|
|
|
expect(page).to have_current_path(admin_settings_path)
|
|
expect(page).to have_css("div#tab-configuration.is-active")
|
|
end
|
|
|
|
context "map configuration" do
|
|
before do
|
|
Setting["feature.map"] = true
|
|
end
|
|
|
|
scenario "On #tab-map-configuration" do
|
|
visit admin_settings_path
|
|
click_link "Map configuration"
|
|
|
|
within "tr", text: "Latitude" do
|
|
fill_in "Latitude", with: "-3.636"
|
|
click_button "Update"
|
|
end
|
|
|
|
expect(page).to have_current_path(admin_settings_path)
|
|
expect(page).to have_css("div#tab-map-configuration.is-active")
|
|
end
|
|
|
|
scenario "On #tab-map-configuration when using the interactive map" do
|
|
visit admin_settings_path(anchor: "tab-map-configuration")
|
|
within "#map-form" do
|
|
click_button "Update"
|
|
end
|
|
|
|
expect(page).to have_content("Map configuration updated successfully.")
|
|
expect(page).to have_current_path(admin_settings_path)
|
|
expect(page).to have_css("div#tab-map-configuration.is-active")
|
|
end
|
|
end
|
|
|
|
scenario "On #tab-proposals" do
|
|
visit admin_settings_path
|
|
find("#proposals-tab").click
|
|
|
|
within "tr", text: "Polls description" do
|
|
fill_in "Polls description", with: "Polls description"
|
|
click_button "Update"
|
|
end
|
|
|
|
expect(page).to have_current_path(admin_settings_path)
|
|
expect(page).to have_css("div#tab-proposals.is-active")
|
|
end
|
|
|
|
scenario "On #tab-participation-processes" do
|
|
visit admin_settings_path
|
|
find("#participation-processes-tab").click
|
|
within("tr", text: "Debates") { click_button "Yes" }
|
|
|
|
expect(page).to have_current_path(admin_settings_path)
|
|
expect(page).to have_css("div#tab-participation-processes.is-active")
|
|
end
|
|
|
|
scenario "On #tab-feature-flags" do
|
|
visit admin_settings_path
|
|
find("#features-tab").click
|
|
within("tr", text: "Featured proposals") { click_button "No" }
|
|
|
|
expect(page).to have_current_path(admin_settings_path)
|
|
expect(page).to have_css("div#tab-feature-flags.is-active")
|
|
end
|
|
|
|
scenario "On #tab-sdg-configuration" do
|
|
Setting["feature.sdg"] = true
|
|
visit admin_settings_path
|
|
click_link "SDG configuration"
|
|
|
|
within("tr", text: "Related SDG in debates") do
|
|
click_button "Yes"
|
|
|
|
expect(page).to have_button "No"
|
|
end
|
|
|
|
expect(page).to have_current_path(admin_settings_path)
|
|
expect(page).to have_css("h2", exact_text: "SDG configuration")
|
|
end
|
|
|
|
scenario "On #tab-images-and-documents" do
|
|
Setting["feature.sdg"] = true
|
|
visit admin_settings_path(anchor: "tab-images-and-documents")
|
|
within("tr", text: "Maximum number of documents") do
|
|
fill_in "Maximum number of documents", with: 5
|
|
click_button "Update"
|
|
end
|
|
|
|
expect(page).to have_current_path(admin_settings_path)
|
|
expect(page).to have_field("Maximum number of documents", with: 5)
|
|
end
|
|
end
|
|
|
|
describe "Skip verification" do
|
|
scenario "deactivate skip verification" do
|
|
Setting["feature.user.skip_verification"] = "true"
|
|
|
|
visit admin_settings_path
|
|
find("#features-tab").click
|
|
|
|
within("tr", text: "Skip user verification") do
|
|
click_button "Yes"
|
|
|
|
expect(page).to have_button "No"
|
|
end
|
|
end
|
|
|
|
scenario "activate skip verification" do
|
|
Setting["feature.user.skip_verification"] = nil
|
|
|
|
visit admin_settings_path
|
|
find("#features-tab").click
|
|
|
|
within("tr", text: "Skip user verification") do
|
|
click_button "No"
|
|
|
|
expect(page).to have_button "Yes"
|
|
end
|
|
end
|
|
end
|
|
|
|
describe "SDG configuration tab" do
|
|
scenario "is enabled when the sdg feature is enabled" do
|
|
Setting["feature.sdg"] = true
|
|
|
|
visit admin_settings_path
|
|
click_link "SDG configuration"
|
|
|
|
expect(page).to have_css "h2", exact_text: "SDG configuration"
|
|
end
|
|
|
|
scenario "is disabled when the sdg feature is disabled" do
|
|
Setting["feature.sdg"] = false
|
|
|
|
visit admin_settings_path
|
|
click_link "SDG configuration"
|
|
|
|
expect(page).to have_content "To show the configuration options from " \
|
|
"Sustainable Development Goals you must " \
|
|
'enable "SDG" on "Features" tab.'
|
|
end
|
|
|
|
scenario "is enabled right after enabling the feature" do
|
|
Setting["feature.sdg"] = false
|
|
|
|
visit admin_settings_path
|
|
|
|
click_link "Features"
|
|
|
|
within("tr", text: "SDG") do
|
|
click_button "No"
|
|
|
|
expect(page).to have_button "Yes"
|
|
end
|
|
|
|
click_link "SDG configuration"
|
|
|
|
expect(page).to have_css "h2", exact_text: "SDG configuration"
|
|
end
|
|
end
|
|
|
|
describe "Machine learning settings" do
|
|
scenario "show the machine learning feature but not its settings" do
|
|
Setting["feature.machine_learning"] = true
|
|
|
|
visit admin_settings_path
|
|
|
|
expect(page).not_to have_content "Machine Learning"
|
|
expect(page).not_to have_content "Comments Summary"
|
|
expect(page).not_to have_content "Related Content"
|
|
expect(page).not_to have_content "Tags"
|
|
expect(page).not_to have_css ".translation_missing"
|
|
|
|
click_link "Features"
|
|
|
|
expect(page).to have_content "Machine Learning"
|
|
expect(page).not_to have_content "Comments Summary"
|
|
expect(page).not_to have_content "Related Content"
|
|
expect(page).not_to have_content "Tags"
|
|
expect(page).not_to have_css ".translation_missing"
|
|
end
|
|
end
|
|
end
|