2024-04-29 00:17:15 +02:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2022-07-21 16:52:31 +02:00
|
|
|
require 'system/administrateurs/procedure_spec_helper'
|
|
|
|
|
2023-11-06 15:15:51 +01:00
|
|
|
describe 'Administrateurs can manage administrateurs', js: true do
|
2022-07-21 16:52:31 +02:00
|
|
|
include ProcedureSpecHelper
|
|
|
|
|
2024-06-01 22:50:48 +02:00
|
|
|
let(:administrateur) { administrateurs(:default_admin) }
|
|
|
|
let(:procedure) { create(:procedure) }
|
2022-07-21 16:52:31 +02:00
|
|
|
let(:manager) { false }
|
|
|
|
before do
|
2024-06-01 22:50:48 +02:00
|
|
|
procedure.administrateurs_procedures.update_all(manager:)
|
2022-07-21 16:52:31 +02:00
|
|
|
login_as administrateur.user, scope: :user
|
|
|
|
end
|
|
|
|
|
2024-05-31 08:20:45 +02:00
|
|
|
scenario "card is clickable, and i can send invitation when i'm not a manager" do
|
|
|
|
another_administrateur = create(:administrateur)
|
2022-07-21 16:52:31 +02:00
|
|
|
visit admin_procedure_path(procedure)
|
|
|
|
find('#administrateurs').click
|
2024-05-28 10:58:03 +02:00
|
|
|
expect(page).to have_css("h1", text: "Administrateurs")
|
2022-07-21 16:52:31 +02:00
|
|
|
|
2024-05-31 08:20:45 +02:00
|
|
|
fill_in('administrateur_email', with: another_administrateur.email)
|
2022-07-21 16:52:31 +02:00
|
|
|
|
2024-05-31 08:20:45 +02:00
|
|
|
click_on 'Ajouter comme administrateur'
|
|
|
|
within('.alert-success') do
|
|
|
|
expect(page).to have_content(another_administrateur.email)
|
2022-07-21 16:52:31 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context 'as admin flagged from manager' do
|
|
|
|
let(:manager) { true }
|
|
|
|
scenario 'the administrator from manager can not add another administrator' do
|
|
|
|
administrateur.administrateurs_procedures.update_all(manager: true)
|
|
|
|
visit admin_procedure_administrateurs_path(procedure)
|
|
|
|
|
|
|
|
expect(page).to have_css("#administrateur_email[disabled=\"disabled\"]")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|