102 lines
3.6 KiB
Ruby
102 lines
3.6 KiB
Ruby
describe CommentaireGroupeGestionnaire, type: :model do
|
|
describe 'associations' do
|
|
it { is_expected.to belong_to(:groupe_gestionnaire) }
|
|
it { is_expected.to belong_to(:gestionnaire).optional }
|
|
it { is_expected.to belong_to(:sender) }
|
|
end
|
|
|
|
describe "#create" do
|
|
let(:commentaire_groupe_gestionnaire) { create :commentaire_groupe_gestionnaire, sender: sender, gestionnaire: gestionnaire }
|
|
|
|
context 'when created by an administrateur' do
|
|
let(:sender) { create(:administrateur) }
|
|
let(:gestionnaire) { nil }
|
|
it 'set correctly sender_email and gestionnaire_email' do
|
|
expect(commentaire_groupe_gestionnaire.sender_email).to eq(sender.email)
|
|
expect(commentaire_groupe_gestionnaire.gestionnaire_email).to eq(nil)
|
|
end
|
|
end
|
|
|
|
context 'when answer by a gestionnaire' do
|
|
let(:sender) { create(:administrateur) }
|
|
let(:gestionnaire) { create(:gestionnaire) }
|
|
|
|
it 'set correctly sender_email and gestionnaire_email' do
|
|
expect(commentaire_groupe_gestionnaire.sender_email).to eq(sender.email)
|
|
expect(commentaire_groupe_gestionnaire.gestionnaire_email).to eq(gestionnaire.email)
|
|
end
|
|
end
|
|
end
|
|
|
|
describe "#soft_deletable?" do
|
|
subject { commentaire_groupe_gestionnaire.soft_deletable?(user) }
|
|
|
|
let(:commentaire_groupe_gestionnaire) { build :commentaire_groupe_gestionnaire, sender: sender, gestionnaire: gestionnaire }
|
|
|
|
context 'with a commentaire_groupe_gestionnaire created by an administrateur deleted by administrateur' do
|
|
let(:sender) { create(:administrateur) }
|
|
let(:user) { sender }
|
|
let(:gestionnaire) { nil }
|
|
|
|
it { is_expected.to be_falsy }
|
|
end
|
|
|
|
context 'with a commentaire_groupe_gestionnaire created by an administrateur deleted by gestionnaire' do
|
|
let(:sender) { create(:administrateur) }
|
|
let(:user) { create(:gestionnaire) }
|
|
let(:gestionnaire) { nil }
|
|
|
|
it { is_expected.to be_falsy }
|
|
end
|
|
|
|
context 'with a commentaire_groupe_gestionnaire created by an gestionnaire deleted by gestionnaire' do
|
|
let(:sender) { create(:gestionnaire) }
|
|
let(:user) { sender }
|
|
let(:gestionnaire) { sender }
|
|
|
|
it { is_expected.to be_truthy }
|
|
end
|
|
|
|
context 'with a commentaire_groupe_gestionnaire created by an gestionnaire deleted by administrateur' do
|
|
let(:sender) { create(:gestionnaire) }
|
|
let(:user) { create(:administrateur) }
|
|
let(:gestionnaire) { sender }
|
|
|
|
it { is_expected.to be_falsy }
|
|
end
|
|
end
|
|
|
|
describe "#sent_by?" do
|
|
subject { commentaire_groupe_gestionnaire.sent_by?(user) }
|
|
|
|
let(:commentaire_groupe_gestionnaire) { build :commentaire_groupe_gestionnaire, sender: sender }
|
|
|
|
context 'with a commentaire_groupe_gestionnaire created by an administrateur so sent by administrateur' do
|
|
let(:sender) { create(:administrateur) }
|
|
let(:user) { sender }
|
|
|
|
it { is_expected.to be_truthy }
|
|
end
|
|
|
|
context 'with a commentaire_groupe_gestionnaire created by an administrateur so not sent by gestionnaire' do
|
|
let(:sender) { create(:administrateur) }
|
|
let(:user) { create(:gestionnaire) }
|
|
|
|
it { is_expected.to be_falsy }
|
|
end
|
|
|
|
context 'with a commentaire_groupe_gestionnaire created by an gestionnaire so sent by gestionnaire' do
|
|
let(:sender) { create(:gestionnaire) }
|
|
let(:user) { sender }
|
|
|
|
it { is_expected.to be_truthy }
|
|
end
|
|
|
|
context 'with a commentaire_groupe_gestionnaire created by an gestionnaire so not sent by administrateur' do
|
|
let(:sender) { create(:gestionnaire) }
|
|
let(:user) { create(:administrateur) }
|
|
|
|
it { is_expected.to be_falsy }
|
|
end
|
|
end
|
|
end
|