add message when path is already taken when publishing a procedure

This commit is contained in:
Lisa Durand 2024-03-14 17:17:47 +01:00
parent 5f826cfd88
commit e757eefd37
12 changed files with 70 additions and 15 deletions

View file

@ -52,7 +52,10 @@ describe 'As an administrateur I wanna clone a procedure', js: true do
# then publish
find('#publish-procedure-link').click
expect(find_field('procedure_path').value).to eq 'libelle-de-la-procedure'
expect(find_field('procedure_path').value).to eq 'libelle-de-la-procedure-2'
fill_in 'procedure_path', with: 'libelle-de-la-procedure'
expect(page).to have_content 'Si vous publiez cette démarche, lancienne sera dépubliée et ne sera plus accessible au public.'
fill_in 'lien_site_web', with: 'http://some.website'
click_on 'publish'
@ -87,7 +90,9 @@ describe 'As an administrateur I wanna clone a procedure', js: true do
# then publish
find('#publish-procedure-link').click
expect(find_field('procedure_path').value).to eq 'libelle-de-la-procedure'
expect(find_field('procedure_path').value).to eq 'libelle-de-la-procedure-2'
fill_in 'procedure_path', with: 'libelle-de-la-procedure'
expect(page).to have_content 'Si vous publiez cette démarche, lancienne sera dépubliée et ne sera plus accessible au public.'
fill_in 'lien_site_web', with: 'http://some.website'
click_on 'publish'

View file

@ -4,6 +4,8 @@ describe 'Publishing a procedure', js: true do
include ProcedureSpecHelper
let(:administrateur) { create(:administrateur) }
let(:other_administrateur) { create(:administrateur) }
let(:instructeurs) { [administrateur.user.instructeur] }
let!(:procedure) do
create(:procedure_with_dossiers,
@ -14,6 +16,16 @@ describe 'Publishing a procedure', js: true do
instructeurs: instructeurs,
administrateur: administrateur)
end
let!(:other_procedure) do
create(:procedure_with_dossiers,
:published,
:with_path,
:with_type_de_champ,
:with_service,
:with_zone,
instructeurs: instructeurs,
administrateur: other_administrateur)
end
before do
login_as administrateur.user, scope: :user
@ -70,6 +82,19 @@ describe 'Publishing a procedure', js: true do
expect(page).to have_button('Publier', disabled: true)
end
end
context 'when the procedure has the same path as another procedure from another admin ' do
scenario 'an error message prevents the publication' do
expect(find_field('procedure_path').value).to eq procedure.path
fill_in 'procedure_path', with: other_procedure.path
expect(page).to have_content 'vous devez la modifier afin de pouvoir publier votre démarche'
fill_in 'lien_site_web', with: 'http://some.website'
within('form') { click_on 'Publier' }
expect(page).to have_text('Le champ « Lien public » est déjà utilisé par une démarche.')
end
end
end
context 'when a procedure is closed' do