summaryrefslogtreecommitdiff
path: root/spec/models
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-03-16 00:09:44 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2021-03-16 00:09:44 +0000
commite512af1d82777b8bcf0bc678b8aeb3b96ef406a2 (patch)
treeebff9b5da0ca2e789502a91f7582985cf4ae091f /spec/models
parente8c01bc6a16cc4aa934ac42cccb7b287527c93f0 (diff)
downloadgitlab-ce-e512af1d82777b8bcf0bc678b8aeb3b96ef406a2.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/models')
-rw-r--r--spec/models/group_spec.rb36
-rw-r--r--spec/models/member_spec.rb26
-rw-r--r--spec/models/packages/maven/metadatum_spec.rb33
3 files changed, 91 insertions, 4 deletions
diff --git a/spec/models/group_spec.rb b/spec/models/group_spec.rb
index 20983744919..24d09d1c035 100644
--- a/spec/models/group_spec.rb
+++ b/spec/models/group_spec.rb
@@ -565,6 +565,42 @@ RSpec.describe Group do
end
end
+ describe '#last_blocked_owner?' do
+ let(:blocked_user) { create(:user, :blocked) }
+
+ before do
+ group.add_user(blocked_user, GroupMember::OWNER)
+ end
+
+ it { expect(group.last_blocked_owner?(blocked_user)).to be_truthy }
+
+ context 'with another active owner' do
+ before do
+ group.add_user(create(:user), GroupMember::OWNER)
+ end
+
+ it { expect(group.last_blocked_owner?(blocked_user)).to be_falsy }
+ end
+
+ context 'with 2 blocked owners' do
+ before do
+ group.add_user(create(:user, :blocked), GroupMember::OWNER)
+ end
+
+ it { expect(group.last_blocked_owner?(blocked_user)).to be_falsy }
+ end
+
+ context 'with owners from a parent' do
+ before do
+ parent_group = create(:group)
+ create(:group_member, :owner, group: parent_group)
+ group.update(parent: parent_group)
+ end
+
+ it { expect(group.last_blocked_owner?(blocked_user)).to be_falsy }
+ end
+ end
+
describe '#lfs_enabled?' do
context 'LFS enabled globally' do
before do
diff --git a/spec/models/member_spec.rb b/spec/models/member_spec.rb
index e918a573e09..c41f466456f 100644
--- a/spec/models/member_spec.rb
+++ b/spec/models/member_spec.rb
@@ -130,14 +130,18 @@ RSpec.describe Member do
@maintainer_user = create(:user).tap { |u| project.add_maintainer(u) }
@maintainer = project.members.find_by(user_id: @maintainer_user.id)
- @blocked_user = create(:user).tap do |u|
+ @blocked_maintainer_user = create(:user).tap do |u|
project.add_maintainer(u)
+
+ u.block!
+ end
+ @blocked_developer_user = create(:user).tap do |u|
project.add_developer(u)
u.block!
end
- @blocked_maintainer = project.members.find_by(user_id: @blocked_user.id, access_level: Gitlab::Access::MAINTAINER)
- @blocked_developer = project.members.find_by(user_id: @blocked_user.id, access_level: Gitlab::Access::DEVELOPER)
+ @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,
@@ -161,7 +165,7 @@ RSpec.describe Member do
describe '.access_for_user_ids' do
it 'returns the right access levels' do
- users = [@owner_user.id, @maintainer_user.id, @blocked_user.id]
+ users = [@owner_user.id, @maintainer_user.id, @blocked_maintainer_user.id]
expected = {
@owner_user.id => Gitlab::Access::OWNER,
@maintainer_user.id => Gitlab::Access::MAINTAINER
@@ -382,6 +386,20 @@ RSpec.describe Member do
it { is_expected.not_to include @member_with_minimal_access }
end
+ describe '.blocked' do
+ subject { described_class.blocked.to_a }
+
+ it { is_expected.not_to include @owner }
+ it { is_expected.not_to include @maintainer }
+ it { is_expected.not_to include @invited_member }
+ it { is_expected.not_to include @accepted_invite_member }
+ it { is_expected.not_to include @requested_member }
+ it { is_expected.not_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 @member_with_minimal_access }
+ end
+
describe '.active_without_invites_and_requests' do
subject { described_class.active_without_invites_and_requests.to_a }
diff --git a/spec/models/packages/maven/metadatum_spec.rb b/spec/models/packages/maven/metadatum_spec.rb
index 16f6929d710..94a0e558985 100644
--- a/spec/models/packages/maven/metadatum_spec.rb
+++ b/spec/models/packages/maven/metadatum_spec.rb
@@ -36,5 +36,38 @@ RSpec.describe Packages::Maven::Metadatum, type: :model do
expect(maven_metadatum.errors.to_a).to include('Package type must be Maven')
end
end
+
+ context 'with a package' do
+ let_it_be(:package) { create(:package) }
+
+ describe '.for_package_ids' do
+ let_it_be(:metadata) { create_list(:maven_metadatum, 3, package: package) }
+
+ subject { Packages::Maven::Metadatum.for_package_ids(package.id) }
+
+ it { is_expected.to match_array(metadata) }
+ end
+
+ describe '.order_created' do
+ let_it_be(:metadatum1) { create(:maven_metadatum, package: package) }
+ let_it_be(:metadatum2) { create(:maven_metadatum, package: package) }
+ let_it_be(:metadatum3) { create(:maven_metadatum, package: package) }
+ let_it_be(:metadatum4) { create(:maven_metadatum, package: package) }
+
+ subject { Packages::Maven::Metadatum.for_package_ids(package.id).order_created }
+
+ it { is_expected.to eq([metadatum1, metadatum2, metadatum3, metadatum4]) }
+ end
+
+ describe '.pluck_app_name' do
+ let_it_be(:metadatum1) { create(:maven_metadatum, package: package, app_name: 'one') }
+ let_it_be(:metadatum2) { create(:maven_metadatum, package: package, app_name: 'two') }
+ let_it_be(:metadatum3) { create(:maven_metadatum, package: package, app_name: 'three') }
+
+ subject { Packages::Maven::Metadatum.for_package_ids(package.id).pluck_app_name }
+
+ it { is_expected.to match_array([metadatum1, metadatum2, metadatum3].map(&:app_name)) }
+ end
+ end
end
end