Use admin table settings component to render featured settings

Now, with the same template we can render all kind of settings.
This commit is contained in:
Senén Rodero Rodríguez
2023-11-22 21:32:37 +01:00
committed by Javi Martín
parent e7223ba865
commit 6a64f38d17
13 changed files with 96 additions and 106 deletions

View File

@@ -1,10 +1,14 @@
require "rails_helper"
describe Admin::Settings::TableComponent do
describe "#display_setting_name" do
it "returns correct table header" do
describe "#key_header" do
it "returns correct table header for the setting name colums" do
settings = Setting.limit(2)
render_inline Admin::Settings::TableComponent.new settings: settings, setting_name: "feature"
expect(page).to have_content("Feature")
render_inline Admin::Settings::TableComponent.new settings: settings, setting_name: "setting"
expect(page).to have_content("Setting")
@@ -25,4 +29,38 @@ describe Admin::Settings::TableComponent do
expect(page).to have_content("Response Data")
end
end
describe "#value_header" do
it "returns correct table header for the setting interface column" do
settings = Setting.limit(2)
render_inline Admin::Settings::TableComponent.new settings: settings, setting_name: "feature"
expect(page).to have_content("Enabled")
render_inline Admin::Settings::TableComponent.new settings: settings, setting_name: "setting"
expect(page).to have_content("Value")
end
end
describe "#table_class" do
it "returns a CSS class when all given settings are features, otherwise returns a mixed class" do
settings = [Setting.find_by(key: "feature.map"), Setting.find_by(key: "process.debates")]
render_inline Admin::Settings::TableComponent.new settings: settings, setting_name: "feature"
expect(page).to have_css(".featured-settings-table")
expect(page).not_to have_css(".mixed-settings-table")
end
it "returns a CSS class when all given settings are features, otherwise returns a mixed class" do
settings = [Setting.find_by(key: "feature.map"), Setting.find_by(key: "mailer_from_name")]
render_inline Admin::Settings::TableComponent.new settings: settings, setting_name: "feature"
expect(page).not_to have_css(".featured-settings-table")
expect(page).to have_css(".mixed-settings-table")
end
end
end

View File

@@ -27,56 +27,12 @@ describe Setting do
end
end
describe "#type" do
it "returns the key prefix for 'process' settings" do
process_setting = Setting.create!(key: "process.whatever")
expect(process_setting.type).to eq "process"
end
it "returns the key prefix for 'feature' settings" do
feature_setting = Setting.create!(key: "feature.whatever")
expect(feature_setting.type).to eq "feature"
end
it "returns the key prefix for 'map' settings" do
map_setting = Setting.create!(key: "map.whatever")
expect(map_setting.type).to eq "map"
end
it "returns the key prefix for 'html' settings" do
html_setting = Setting.create!(key: "html.whatever")
expect(html_setting.type).to eq "html"
end
it "returns the key prefix for 'homepage' settings" do
homepage_setting = Setting.create!(key: "homepage.whatever")
expect(homepage_setting.type).to eq "homepage"
end
it "returns the key prefix for 'sdg' settings" do
sdg_setting = Setting.create!(key: "sdg.whatever")
expect(sdg_setting.type).to eq "sdg"
end
it "returns the key prefix for 'remote_census.general' settings" do
remote_census_general_setting = Setting.create!(key: "remote_census.general.whatever")
expect(remote_census_general_setting.type).to eq "remote_census.general"
end
it "returns the key prefix for 'remote_census_request' settings" do
remote_census_request_setting = Setting.create!(key: "remote_census.request.whatever")
expect(remote_census_request_setting.type).to eq "remote_census.request"
end
it "returns the key prefix for 'remote_census_response' settings" do
remote_census_response_setting = Setting.create!(key: "remote_census.response.whatever")
expect(remote_census_response_setting.type).to eq "remote_census.response"
end
it "returns 'configuration' for the rest of the settings" do
configuration_setting = Setting.create!(key: "whatever")
expect(configuration_setting.type).to eq "configuration"
describe "#feature?" do
it "returns true if the key prefix is process, feature or sdg" do
expect(Setting.find_by!(key: "process.debates").feature?).to be true
expect(Setting.find_by!(key: "feature.map").feature?).to be true
expect(Setting.find_by!(key: "sdg.process.debates").feature?).to be true
expect(Setting.find_by!(key: "uploads.documents.max_size").feature?).to be false
end
end