diff --git a/app/views/administrateurs/procedures/_informations.html.haml b/app/views/administrateurs/procedures/_informations.html.haml index 09cad0349..68c518519 100644 --- a/app/views/administrateurs/procedures/_informations.html.haml +++ b/app/views/administrateurs/procedures/_informations.html.haml @@ -102,8 +102,9 @@ %h3.header-subsection Ajouter des tags %p.explication Les tags sont des mots ou des expressions que vous attribuez aux démarches pour décrire leur contenu et pour les retrouver. Les tags sont partagés avec la communauté, ce qui vous permet de voir les tags attribués aux démarches créées par les autres administrateurs. -= hidden_field_tag 'procedure[tags]', nil += hidden_field_tag 'procedure[tags]', JSON.generate(@procedure.tags) = react_component("ComboMultiple", + id: "procedure_tags_combo", options: Procedure.tags, selected: @procedure.tags, disabled: [], diff --git a/spec/system/administrateurs/procedure_update_spec.rb b/spec/system/administrateurs/procedure_update_spec.rb index ae0296752..3997cddb9 100644 --- a/spec/system/administrateurs/procedure_update_spec.rb +++ b/spec/system/administrateurs/procedure_update_spec.rb @@ -58,4 +58,25 @@ describe 'Administrateurs can edit procedures', js: true do expect(page).to have_selector('.fr-breadcrumb li', text: 'Ma petite démarche') end end + + context 'when we associate tags' do + scenario 'the administrator can edit and persist the tags' do + procedure.update!(tags: ['social']) + + visit edit_admin_procedure_path(procedure) + select_combobox('procedure_tags_combo', 'planete', 'planete', check: false) + click_on 'Enregistrer' + + expect(procedure.reload.tags).to eq(['social', 'planete']) + end + + scenario 'the tags are persisted when non interacting with the tags combobox' do + procedure.update!(tags: ['social']) + + visit edit_admin_procedure_path(procedure) + click_on 'Enregistrer' + + expect(procedure.reload.tags).to eq(['social']) + end + end end