From c112018ec3b736a8caf4fababcee8381efb554d4 Mon Sep 17 00:00:00 2001 From: Colin Darie Date: Wed, 8 Mar 2023 11:27:31 +0100 Subject: [PATCH] fix(administrateur): tags persistence when non interacting with tags combobox --- .../procedures/_informations.html.haml | 3 ++- .../administrateurs/procedure_update_spec.rb | 21 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) 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