Submit blank value if nothing selected

If a checkbox is not selected, the browser does not submit it at all.
This commit is contained in:
David Cook
2024-08-07 09:34:15 +10:00
parent ffe3f12a23
commit a95aa1b3e9
3 changed files with 14 additions and 1 deletions

View File

@@ -15,7 +15,7 @@ module Admin
private
def connected_apps_enabled
params.require(:preferences).require(:connected_apps_enabled).join(",")
params.require(:preferences).require(:connected_apps_enabled).compact_blank.join(",")
end
end
end

View File

@@ -11,6 +11,9 @@
= t('.info_html')
.field
-# Blank value in case nothing is selected
= hidden_field_tag("preferences[connected_apps_enabled][]", "")
- ConnectedApp::TYPES.each do |type|
%label
= check_box_tag("preferences[connected_apps_enabled][]", type,

View File

@@ -22,5 +22,15 @@ RSpec.describe "Connected App Settings", feature: :connected_apps do
expect{
click_button "Update"
}.to change{ Spree::Config.connected_apps_enabled }.to("discover_regen,affiliate_sales_data")
expect(page).to have_field "Discover Regenerative portal", checked: true
expect(page).to have_field "DFC anonymised orders API for research purposes", checked: true
uncheck "Discover Regenerative portal"
uncheck "DFC anonymised orders API for research purposes"
expect{
click_button "Update"
}.to change{ Spree::Config.connected_apps_enabled }.to("")
end
end