demarches-normaliennes/spec/models/groupe_gestionnaire_spec.rb
2023-10-03 13:51:57 +02:00

40 lines
1.4 KiB
Ruby

describe GroupeGestionnaire, type: :model do
describe 'associations' do
it { is_expected.to belong_to(:groupe_gestionnaire).optional }
it { is_expected.to have_many(:children) }
it { is_expected.to have_many(:administrateurs) }
it { is_expected.to have_and_belong_to_many(:gestionnaires) }
end
describe "#add" do
let(:groupe_gestionnaire) { create(:groupe_gestionnaire) }
let(:gestionnaire) { create(:gestionnaire) }
subject { groupe_gestionnaire.add(gestionnaire) }
it 'adds the gestionnaire to the groupe gestionnaire' do
subject
expect(groupe_gestionnaire.reload.gestionnaires).to include(gestionnaire)
end
end
describe "#add_gestionnaires" do
let(:groupe_gestionnaire) { create(:groupe_gestionnaire) }
let(:gestionnaire) { create(:gestionnaire) }
it 'adds the gestionnaire by id' do
groupe_gestionnaire.add_gestionnaires(ids: [gestionnaire.id])
expect(groupe_gestionnaire.reload.gestionnaires).to include(gestionnaire)
end
it 'adds the existing gestionnaire by email' do
groupe_gestionnaire.add_gestionnaires(emails: [gestionnaire.email])
expect(groupe_gestionnaire.reload.gestionnaires).to include(gestionnaire)
end
it 'adds the new gestionnaire by email' do
groupe_gestionnaire.add_gestionnaires(emails: ['new_gestionnaire@ds.fr'])
expect(groupe_gestionnaire.reload.gestionnaires.last.email).to eq('new_gestionnaire@ds.fr')
end
end
end