diff --git a/app/helpers/default_form_builder.rb b/app/helpers/default_form_builder.rb index 735317198..406893109 100644 --- a/app/helpers/default_form_builder.rb +++ b/app/helpers/default_form_builder.rb @@ -3,4 +3,8 @@ class DefaultFormBuilder < ActionView::Helpers::FormBuilder self.multipart = true @template.legal_document_field(@object_name, method, objectify_options(options)) end + + def money_field(method, options = {}) + @template.money_field(@object_name, method, objectify_options(options)) + end end diff --git a/app/helpers/form_helper.rb b/app/helpers/form_helper.rb index a3a139e09..ee300e4b6 100644 --- a/app/helpers/form_helper.rb +++ b/app/helpers/form_helper.rb @@ -5,4 +5,11 @@ module FormHelper file_field(object_name, method, options) end + + def money_field(object_name, method, options = {}) + options[:pattern] = '^[0-9.]+$' unless options[:pattern] + options[:maxlength] = 255 unless options[:maxlength] + + text_field(object_name, method, options) + end end diff --git a/spec/views/shared_examples/money_form_field.rb b/spec/views/shared_examples/money_form_field.rb new file mode 100644 index 000000000..25d20f358 --- /dev/null +++ b/spec/views/shared_examples/money_form_field.rb @@ -0,0 +1,11 @@ +RSpec.shared_examples 'money form field' do + it 'has max length' do + render + expect(field[:maxlength]).to eq('255') + end + + it 'has money pattern' do + render + expect(field[:pattern]).to eq('^[0-9.]+$') + end +end