Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/models/project_group_link_spec.rb')
-rw-r--r--spec/models/project_group_link_spec.rb32
1 files changed, 25 insertions, 7 deletions
diff --git a/spec/models/project_group_link_spec.rb b/spec/models/project_group_link_spec.rb
index f141b8e83d6..bfbb7c91f47 100644
--- a/spec/models/project_group_link_spec.rb
+++ b/spec/models/project_group_link_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe ProjectGroupLink do
+RSpec.describe ProjectGroupLink, feature_category: :groups_and_projects do
describe "Associations" do
it { is_expected.to belong_to(:group) }
it { is_expected.to belong_to(:project) }
@@ -18,6 +18,7 @@ RSpec.describe ProjectGroupLink do
it { is_expected.to validate_uniqueness_of(:group_id).scoped_to(:project_id).with_message(/already shared/) }
it { is_expected.to validate_presence_of(:group) }
it { is_expected.to validate_presence_of(:group_access) }
+ it { is_expected.to validate_inclusion_of(:group_access).in_array(Gitlab::Access.all_values) }
it "doesn't allow a project to be shared with the group it is in" do
project_group_link.group = group
@@ -30,12 +31,6 @@ RSpec.describe ProjectGroupLink do
expect(project_group_link).not_to be_valid
end
-
- it 'does not allow a project to be shared with `OWNER` access level' do
- project_group_link.group_access = Gitlab::Access::OWNER
-
- expect(project_group_link).not_to be_valid
- end
end
describe 'scopes' do
@@ -62,4 +57,27 @@ RSpec.describe ProjectGroupLink do
it { expect(described_class.search(group.name)).to eq([project_group_link]) }
it { expect(described_class.search('not-a-group-name')).to be_empty }
end
+
+ describe '#owner_access?' do
+ it 'returns true for links with OWNER access' do
+ link = create(:project_group_link, :owner)
+
+ expect(link.owner_access?).to eq(true)
+ end
+
+ it 'returns false for links without OWNER access' do
+ link = create(:project_group_link, :guest)
+
+ expect(link.owner_access?).to eq(false)
+ end
+ end
+
+ describe '#human_access' do
+ it 'delegates to Gitlab::Access' do
+ project_group_link = create(:project_group_link, :reporter)
+ expect(Gitlab::Access).to receive(:human_access).with(project_group_link.group_access).and_call_original
+
+ expect(project_group_link.human_access).to eq('Reporter')
+ end
+ end
end