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:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-09-29 18:09:34 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2022-09-29 18:09:34 +0300
commit11f742d4e72a0b436d65161c5ef08ce9e19b8ebf (patch)
tree1b6a34864e771a2a9001111501c90a28036cc487 /spec/support/shared_examples
parent9bf40d9fdc79fb09f67ac2b571467908758777ad (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/support/shared_examples')
-rw-r--r--spec/support/shared_examples/requests/api/graphql/projects/branch_protections/access_level_request_examples.rb106
1 files changed, 0 insertions, 106 deletions
diff --git a/spec/support/shared_examples/requests/api/graphql/projects/branch_protections/access_level_request_examples.rb b/spec/support/shared_examples/requests/api/graphql/projects/branch_protections/access_level_request_examples.rb
deleted file mode 100644
index e30bdf8f655..00000000000
--- a/spec/support/shared_examples/requests/api/graphql/projects/branch_protections/access_level_request_examples.rb
+++ /dev/null
@@ -1,106 +0,0 @@
-# frozen_string_literal: true
-
-RSpec.shared_examples 'perform graphql requests for AccessLevel type objects' do |access_level_kind|
- include GraphqlHelpers
-
- let_it_be(:current_user) { create(:user) }
- let_it_be(:project) { create(:project) }
- let_it_be(:variables) { { path: project.full_path } }
-
- let(:fields) { all_graphql_fields_for("#{access_level_kind.to_s.classify}AccessLevel", max_depth: 2) }
- let(:access_levels) { protected_branch.public_send("#{access_level_kind}_access_levels") }
- let(:access_levels_count) { access_levels.size }
- let(:maintainer_access_level) { access_levels.for_role.first }
- let(:user_access_level) { access_levels.for_user.first }
- let(:group_access_level) { access_levels.for_group.first }
- let(:user_access_level_data) { access_levels_data.find { |data| data['user'].present? } }
- let(:group_access_level_data) { access_levels_data.find { |data| data['group'].present? } }
- let(:maintainer_access_level_data) { access_levels_data.find { |data| data['user'].blank? && data['group'].blank? } }
- let(:access_levels_data) do
- graphql_data_at('project',
- 'branchRules',
- 'nodes',
- 0,
- 'branchProtection',
- "#{access_level_kind.to_s.camelize(:lower)}AccessLevels",
- 'nodes')
- end
-
- let(:query) do
- <<~GQL
- query($path: ID!) {
- project(fullPath: $path) {
- branchRules(first: 1) {
- nodes {
- branchProtection {
- #{access_level_kind.to_s.camelize(:lower)}AccessLevels {
- nodes {
- #{fields}
- }
- }
- }
- }
- }
- }
- }
- GQL
- end
-
- describe 'requesting AccessLevel type objects as a guest user' do
- let_it_be(:protected_branch) { create(:protected_branch, project: project) }
-
- before do
- create(:project_member, :guest, user: current_user, source: project)
- post_graphql(query, current_user: current_user, variables: variables)
- end
-
- it_behaves_like 'a working graphql query'
-
- it "does not return any #{access_level_kind.to_s.classify}AccessLevel objects" do
- expect(access_levels_data).not_to be_present
- end
- end
-
- describe 'requesting AccessLevel type objects as a maintainer' do
- let_it_be(:protected_branch) do
- create(:protected_branch,
- "maintainers_can_#{access_level_kind}",
- "user_can_#{access_level_kind}",
- "group_can_#{access_level_kind}",
- project: project)
- end
-
- before do
- create(:project_member, :maintainer, user: current_user, source: project)
- post_graphql(query, current_user: current_user, variables: variables)
- end
-
- it_behaves_like 'a working graphql query'
-
- it "returns all #{access_level_kind} access level fields", :aggregate_failures do
- expect(access_levels_count).to eq(3),
- "Expected 3 #{access_level_kind.to_s.classify}AccessLevel records present, got #{access_levels_count}"
- expect(access_levels_data.size).to eq(access_levels_count)
-
- [:maintainer, :user, :group].each do |access_level_type|
- access_level_data = public_send("#{access_level_type}_access_level_data")
- access_level = public_send("#{access_level_type}_access_level")
-
- expect(access_level_data['accessLevel']).to eq(access_level.access_level)
- expect(access_level_data['accessLevelDescription']).to eq(access_level.humanize)
-
- case access_level_type
- when :user
- expect(access_level_data.dig('user', 'name')).to eq(access_level.user.name)
- expect(access_level_data.dig('group', 'name')).to be_nil
- when :group
- expect(access_level_data.dig('group', 'name')).to eq(access_level.group.name)
- expect(access_level_data.dig('user', 'name')).to be_nil
- else
- expect(access_level_data.dig('group', 'name')).to be_nil
- expect(access_level_data.dig('user', 'name')).to be_nil
- end
- end
- end
- end
-end