diff --git a/app/services/types_de_champ_service.rb b/app/services/types_de_champ_service.rb index b8397d3a4..eba9a549a 100644 --- a/app/services/types_de_champ_service.rb +++ b/app/services/types_de_champ_service.rb @@ -12,8 +12,18 @@ class TypesDeChampService if param_second[:libelle].empty? parameters[attributes].delete(param_first.to_s) end + + if param_second['drop_down_list_attributes'] && param_second['drop_down_list_attributes']['value'] + param_second['drop_down_list_attributes']['value'] = self.clean_value (param_second['drop_down_list_attributes']['value']) + end end parameters end -end \ No newline at end of file + + private + + def self.clean_value value + value.split("\r\n").map{ |v| v.strip }.join("\r\n") + end +end diff --git a/spec/services/type_de_champ_service_spec.rb b/spec/services/type_de_champ_service_spec.rb new file mode 100644 index 000000000..e1e61ef91 --- /dev/null +++ b/spec/services/type_de_champ_service_spec.rb @@ -0,0 +1,30 @@ +require 'spec_helper' + +describe TypesDeChampService do + let(:params) do + ActionController::Parameters.new({ + procedure: { + types_de_champ_attributes: { + "0" => { + libelle: 'top', + drop_down_list_attributes: { + value: "un\r\n deux\r\n -- commentaire --\r\n trois", + id: '5218' + } + } + } + } + }) + end + + let(:result) { TypesDeChampService.create_update_procedure_params(params) } + + describe 'self.create_update_procedure_params' do + describe 'the drop down list attributes' do + subject { result['types_de_champ_attributes']['0']['drop_down_list_attributes'] } + it 'has its value stripped' do + expect(subject['value']).to eq("un\r\ndeux\r\n-- commentaire --\r\ntrois") + end + end + end +end