diff options
author | 🙈 jacopo beschi 🙉 <intrip@gmail.com> | 2018-05-17 09:19:47 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2018-05-17 09:19:47 +0000 |
commit | 01275667e323d4702cc396f6f756305b06cba726 (patch) | |
tree | ae8b900f5b94994f3126b1aff5b672eb02109722 /spec/models/user_spec.rb | |
parent | bbd8d5b270a92b2b3ff707279cdac6d83ba67edf (diff) | |
download | gitlab-ce-01275667e323d4702cc396f6f756305b06cba726.tar.gz |
Resolve "Opening Project with invite but without accepting leads to 404 error page"
Diffstat (limited to 'spec/models/user_spec.rb')
-rw-r--r-- | spec/models/user_spec.rb | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 8d3ddd1f87d..684fa030baf 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -1223,6 +1223,24 @@ describe User do end end + describe '#accept_pending_invitations!' do + let(:user) { create(:user, email: 'user@email.com') } + let!(:project_member_invite) { create(:project_member, :invited, invite_email: user.email) } + let!(:group_member_invite) { create(:group_member, :invited, invite_email: user.email) } + let!(:external_project_member_invite) { create(:project_member, :invited, invite_email: 'external@email.com') } + let!(:external_group_member_invite) { create(:group_member, :invited, invite_email: 'external@email.com') } + + it 'accepts all the user members pending invitations and returns the accepted_members' do + accepted_members = user.accept_pending_invitations! + + expect(accepted_members).to match_array([project_member_invite, group_member_invite]) + expect(group_member_invite.reload).not_to be_invite + expect(project_member_invite.reload).not_to be_invite + expect(external_project_member_invite.reload).to be_invite + expect(external_group_member_invite.reload).to be_invite + end + end + describe '#all_emails' do let(:user) { create(:user) } |