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