diff --git a/lib/custom_wizard/validators/update.rb b/lib/custom_wizard/validators/update.rb index d71bded127..631dab5548 100644 --- a/lib/custom_wizard/validators/update.rb +++ b/lib/custom_wizard/validators/update.rb @@ -28,7 +28,7 @@ def validate_field(field) file_types = field.file_types format = field.format - if required && !value + if required && !value.present? @updater.errors.add(field_id, I18n.t('wizard.field.required', label: label)) end diff --git a/plugin.rb b/plugin.rb index 51774b6477..a3d61ac430 100644 --- a/plugin.rb +++ b/plugin.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true # name: discourse-custom-wizard # about: Forms for Discourse. Better onboarding, structured posting, data enrichment, automated actions and much more. -# version: 2.0.7 +# version: 2.0.8 # authors: Angus McLeod, Faizaan Gagan, Robert Barrow, Keegan George, Kaitlin Maddever # url: https://github.com/paviliondev/discourse-custom-wizard # contact_emails: development@pavilion.tech diff --git a/spec/components/custom_wizard/update_validator_spec.rb b/spec/components/custom_wizard/update_validator_spec.rb index 7caa1784d4..db5c8ff98b 100644 --- a/spec/components/custom_wizard/update_validator_spec.rb +++ b/spec/components/custom_wizard/update_validator_spec.rb @@ -114,6 +114,16 @@ def perform_validation(step_id, submission) ).to eq(I18n.t('wizard.field.required', label: 'Textarea')) end + it 'requires required fields with blank string values' do + @template[:steps][0][:fields][1][:required] = true + CustomWizard::Template.save(@template) + + updater = perform_validation('step_1', step_1_field_2: "") + expect( + updater.errors.messages[:step_1_field_2].first + ).to eq(I18n.t('wizard.field.required', label: 'Textarea')) + end + context "subscription fields" do before do enable_subscription("standard")