People using these settings don't know about the hidden fields, but they do know about the fields that are actually displayed on the page. So we check that these fields are updated when the marker is updated.
344 lines
10 KiB
Ruby
344 lines
10 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 "#admin-map.leaflet-container", visible: :all
|
|
|
|
click_link "Map configuration"
|
|
|
|
expect(page).to have_css "#admin-map.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("#admin-map")
|
|
end
|
|
|
|
scenario "Should update marker" do
|
|
Setting["feature.map"] = true
|
|
|
|
visit admin_settings_path
|
|
click_link "Map configuration"
|
|
|
|
expect(page).to have_css("#admin-map")
|
|
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"
|
|
|
|
within "#map-form" do
|
|
find("#admin-map").click
|
|
click_button "Update"
|
|
end
|
|
|
|
expect(page).to have_content "Map configuration updated successfully"
|
|
expect(page).to have_field "Latitude"
|
|
expect(page).not_to have_field "Latitude", with: "51.48"
|
|
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
|