# frozen_string_literal: true describe 'As an administrateur I can edit annotation', js: true do include ActionView::RecordIdentifier let(:administrateur) { procedure.administrateurs.first } let(:procedure) { create(:procedure) } before do login_as administrateur.user, scope: :user visit annotations_admin_procedure_path(procedure) end scenario 'with private tdc, having invalid order, it pops up errors summary' do click_on 'Ajouter une annotation' select('Titre de section', from: 'Type de champ') wait_until { procedure.reload.active_revision.types_de_champ_private.first&.type_champ == TypeDeChamp.type_champs.fetch(:header_section) } first_header = procedure.active_revision.types_de_champ_private.first select('Titre de niveau 1', from: dom_id(first_header, :header_section_level)) within(find('.type-de-champ-add-button', match: :first)) { click_on 'Ajouter une annotation' } wait_until { procedure.reload.active_revision.types_de_champ_private.count == 2 } second_header = procedure.active_revision.types_de_champ_private.last select('Titre de section', from: dom_id(second_header, :type_champ)) wait_until { procedure.reload.active_revision.types_de_champ_private.last&.type_champ == TypeDeChamp.type_champs.fetch(:header_section) } select('Titre de niveau 2', from: dom_id(second_header, :header_section_level)) within(".types-de-champ-block li:first-child") do accept_alert do click_on 'Supprimer' end end expect(page).to have_content("devrait être précédé d'un titre de niveau 1") # check summary procedure.reload.active_revision.types_de_champ_private.each do |header_section| expect(page).to have_link(header_section.libelle) end end end