feat: add test for GroupeGestionnaire#remove
This commit is contained in:
parent
ea7a5e6761
commit
8b1a14e16a
2 changed files with 29 additions and 6 deletions
|
@ -62,7 +62,7 @@ class GroupeGestionnaire < ApplicationRecord
|
|||
if gestionnaires_duplicate.present?
|
||||
alert = I18n.t('activerecord.errors.duplicate_email',
|
||||
count: invalid_emails.size,
|
||||
emails: gestionnaires_duplicate.map{ |gestionnaire| gestionnaire.email })
|
||||
emails: gestionnaires_duplicate.map(&:email))
|
||||
end
|
||||
|
||||
if gestionnaires_to_add.present?
|
||||
|
|
|
@ -21,20 +21,43 @@ describe GroupeGestionnaire, type: :model do
|
|||
describe "#add_gestionnaires" do
|
||||
let(:groupe_gestionnaire) { create(:groupe_gestionnaire) }
|
||||
let(:gestionnaire) { create(:gestionnaire) }
|
||||
let(:gestionnaire_to_add) { create(:gestionnaire) }
|
||||
|
||||
it 'adds the gestionnaire by id' do
|
||||
groupe_gestionnaire.add_gestionnaires(ids: [gestionnaire.id])
|
||||
expect(groupe_gestionnaire.reload.gestionnaires).to include(gestionnaire)
|
||||
groupe_gestionnaire.add_gestionnaires(ids: [gestionnaire_to_add.id], current_user: gestionnaire)
|
||||
expect(groupe_gestionnaire.reload.gestionnaires).to include(gestionnaire_to_add)
|
||||
end
|
||||
|
||||
it 'adds the existing gestionnaire by email' do
|
||||
groupe_gestionnaire.add_gestionnaires(emails: [gestionnaire.email])
|
||||
expect(groupe_gestionnaire.reload.gestionnaires).to include(gestionnaire)
|
||||
groupe_gestionnaire.add_gestionnaires(emails: [gestionnaire_to_add.email], current_user: gestionnaire)
|
||||
expect(groupe_gestionnaire.reload.gestionnaires).to include(gestionnaire_to_add)
|
||||
end
|
||||
|
||||
it 'adds the new gestionnaire by email' do
|
||||
groupe_gestionnaire.add_gestionnaires(emails: ['new_gestionnaire@ds.fr'])
|
||||
groupe_gestionnaire.add_gestionnaires(emails: ['new_gestionnaire@ds.fr'], current_user: gestionnaire)
|
||||
expect(groupe_gestionnaire.reload.gestionnaires.last.email).to eq('new_gestionnaire@ds.fr')
|
||||
end
|
||||
end
|
||||
|
||||
describe "#remove" do
|
||||
let(:gestionnaire) { create(:gestionnaire) }
|
||||
let(:gestionnaire_to_remove) { create(:gestionnaire) }
|
||||
let(:groupe_gestionnaire) { create(:groupe_gestionnaire, gestionnaires: [gestionnaire, gestionnaire_to_remove]) }
|
||||
|
||||
it 'removes the gestionnaire by id' do
|
||||
expect(groupe_gestionnaire.reload.gestionnaires.size).to eq(2)
|
||||
groupe_gestionnaire.remove(gestionnaire_to_remove.id, gestionnaire)
|
||||
expect(groupe_gestionnaire.reload.gestionnaires).not_to include(gestionnaire_to_remove)
|
||||
expect(groupe_gestionnaire.reload.gestionnaires.size).to eq(1)
|
||||
end
|
||||
|
||||
it 'does not remove the gestionnaire if last' do
|
||||
expect(groupe_gestionnaire.reload.gestionnaires.size).to eq(2)
|
||||
groupe_gestionnaire.remove(gestionnaire.id, gestionnaire)
|
||||
expect(groupe_gestionnaire.reload.gestionnaires.size).to eq(1)
|
||||
groupe_gestionnaire.remove(gestionnaire_to_remove.id, gestionnaire)
|
||||
expect(groupe_gestionnaire.reload.gestionnaires).to include(gestionnaire_to_remove)
|
||||
expect(groupe_gestionnaire.reload.gestionnaires.size).to eq(1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue