summaryrefslogtreecommitdiff
path: root/spec/models/member_spec.rb
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-05-19 15:44:42 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2021-05-19 15:44:42 +0000
commit4555e1b21c365ed8303ffb7a3325d773c9b8bf31 (patch)
tree5423a1c7516cffe36384133ade12572cf709398d /spec/models/member_spec.rb
parente570267f2f6b326480d284e0164a6464ba4081bc (diff)
downloadgitlab-ce-4555e1b21c365ed8303ffb7a3325d773c9b8bf31.tar.gz
Add latest changes from gitlab-org/gitlab@13-12-stable-eev13.12.0-rc42
Diffstat (limited to 'spec/models/member_spec.rb')
-rw-r--r--spec/models/member_spec.rb64
1 files changed, 48 insertions, 16 deletions
diff --git a/spec/models/member_spec.rb b/spec/models/member_spec.rb
index 5f3a67b52ba..247be7654d8 100644
--- a/spec/models/member_spec.rb
+++ b/spec/models/member_spec.rb
@@ -143,16 +143,10 @@ RSpec.describe Member do
@blocked_maintainer = project.members.find_by(user_id: @blocked_maintainer_user.id, access_level: Gitlab::Access::MAINTAINER)
@blocked_developer = project.members.find_by(user_id: @blocked_developer_user.id, access_level: Gitlab::Access::DEVELOPER)
- @invited_member = create(:project_member, :developer,
- project: project,
- invite_token: '1234',
- invite_email: 'toto1@example.com')
+ @invited_member = create(:project_member, :invited, :developer, project: project)
accepted_invite_user = build(:user, state: :active)
- @accepted_invite_member = create(:project_member, :developer,
- project: project,
- invite_token: '1234',
- invite_email: 'toto2@example.com')
+ @accepted_invite_member = create(:project_member, :invited, :developer, project: project)
.tap { |u| u.accept_invite!(accepted_invite_user) }
requested_user = create(:user).tap { |u| project.request_access(u) }
@@ -325,12 +319,12 @@ RSpec.describe Member do
describe '.search_invite_email' do
it 'returns only members the matching e-mail' do
- create(:group_member, :invited)
+ invited_member = create(:group_member, :invited, invite_email: 'invited@example.com')
- invited = described_class.search_invite_email(@invited_member.invite_email)
+ invited = described_class.search_invite_email(invited_member.invite_email)
expect(invited.count).to eq(1)
- expect(invited.first).to eq(@invited_member)
+ expect(invited.first).to eq(invited_member)
expect(described_class.search_invite_email('bad-email@example.com').count).to eq(0)
end
@@ -414,6 +408,44 @@ RSpec.describe Member do
it { is_expected.not_to include @member_with_minimal_access }
end
+ describe '.connected_to_user' do
+ subject { described_class.connected_to_user.to_a }
+
+ it { is_expected.to include @owner }
+ it { is_expected.to include @maintainer }
+ it { is_expected.to include @accepted_invite_member }
+ it { is_expected.to include @accepted_request_member }
+ it { is_expected.to include @blocked_maintainer }
+ it { is_expected.to include @blocked_developer }
+ it { is_expected.to include @requested_member }
+ it { is_expected.to include @member_with_minimal_access }
+ it { is_expected.not_to include @invited_member }
+ end
+
+ describe '.authorizable' do
+ subject { described_class.authorizable.to_a }
+
+ it 'includes the member who has an associated user record,'\
+ 'but also having an invite_token' do
+ member = create(:project_member,
+ :developer,
+ :invited,
+ user: create(:user))
+
+ expect(subject).to include(member)
+ end
+
+ it { is_expected.to include @owner }
+ it { is_expected.to include @maintainer }
+ it { is_expected.to include @accepted_invite_member }
+ it { is_expected.to include @accepted_request_member }
+ it { is_expected.to include @blocked_maintainer }
+ it { is_expected.to include @blocked_developer }
+ it { is_expected.not_to include @invited_member }
+ it { is_expected.not_to include @requested_member }
+ it { is_expected.not_to include @member_with_minimal_access }
+ end
+
describe '.distinct_on_user_with_max_access_level' do
let_it_be(:other_group) { create(:group) }
let_it_be(:member_with_lower_access_level) { create(:group_member, :developer, group: other_group, user: @owner_user) }
@@ -884,7 +916,7 @@ RSpec.describe Member do
user = create(:user)
member = project.add_reporter(user)
- member.destroy
+ member.destroy!
expect(user.authorized_projects).not_to include(project)
end
@@ -901,7 +933,7 @@ RSpec.describe Member do
with_them do
describe 'create member' do
- let!(:source) { create(source_type) }
+ let!(:source) { create(source_type) } # rubocop:disable Rails/SaveBang
subject { create(member_type, :guest, user: user, source: source) }
@@ -913,20 +945,20 @@ RSpec.describe Member do
describe 'update member' do
context 'when access level was changed' do
- subject { member.update(access_level: Gitlab::Access::GUEST) }
+ subject { member.update!(access_level: Gitlab::Access::GUEST) }
include_examples 'update highest role with exclusive lease'
end
context 'when access level was not changed' do
- subject { member.update(notification_level: NotificationSetting.levels[:disabled]) }
+ subject { member.update!(notification_level: NotificationSetting.levels[:disabled]) }
include_examples 'does not update the highest role'
end
end
describe 'destroy member' do
- subject { member.destroy }
+ subject { member.destroy! }
include_examples 'update highest role with exclusive lease'
end