diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2024-01-05 18:08:05 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2024-01-05 18:08:05 +0300 |
commit | 4ba8ae97071935c39216afc53304c60386bbfa68 (patch) | |
tree | 452038ff8d19dcf69453dde0079b1db4870a3aae /spec/models/member_spec.rb | |
parent | 7120254aee218529320c061696a2af530494e6aa (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/models/member_spec.rb')
-rw-r--r-- | spec/models/member_spec.rb | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/spec/models/member_spec.rb b/spec/models/member_spec.rb index 9ebff2a8886..9419bfa76a7 100644 --- a/spec/models/member_spec.rb +++ b/spec/models/member_spec.rb @@ -922,6 +922,40 @@ RSpec.describe Member, feature_category: :groups_and_projects do expect(member.invite_token).not_to be_nil expect_any_instance_of(described_class).not_to receive(:after_accept_invite) end + + context 'when after accepting invite' do + include NotificationHelpers + + let_it_be(:group) { create(:group, require_two_factor_authentication: true) } + let_it_be(:member, reload: true) { create(:group_member, :invited, source: group) } + let_it_be(:email) { member.invite_email } + let(:user) { build(:user, email: email) } + + it 'enqueues an email to user' do + member.accept_invite!(user) + + expect_enqueud_email(member.real_source_type, member.id, mail: 'member_invite_accepted_email') + end + + it 'calls updates the two factor requirement' do + expect(user).to receive(:require_two_factor_authentication_from_group).and_call_original + + member.accept_invite!(user) + + expect(user.require_two_factor_authentication_from_group).to be_truthy + end + + context 'when member source is a project' do + let_it_be(:project) { create(:project, namespace: group) } + let_it_be(:member) { create(:project_member, :invited, source: project, invite_email: email) } + + it 'calls updates the two factor requirement' do + expect(user).not_to receive(:require_two_factor_authentication_from_group) + + member.accept_invite!(user) + end + end + end end describe '#decline_invite!' do @@ -1201,6 +1235,26 @@ RSpec.describe Member, feature_category: :groups_and_projects do end end + context 'when after_create :update_two_factor_requirement' do + it 'calls update_two_factor_requirement after creation' do + user = create(:user) + + expect(user).to receive(:update_two_factor_requirement) + + create(:group_member, user: user) + end + end + + context 'when after_destroy :update_two_factor_requirement' do + it 'calls update_two_factor_requirement after deletion' do + group_member = create(:group_member) + + expect(group_member.user).to receive(:update_two_factor_requirement) + + group_member.destroy! + end + end + describe 'log_invitation_token_cleanup' do let_it_be(:project) { create :project } |