diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-12-03 06:07:16 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-12-03 06:07:16 +0300 |
commit | 336483a4c150a112e83d95538218c59d9a952768 (patch) | |
tree | 404c40d9bfa6103ffa3d4ce71bf8a41b2b0f7acd /spec/requests/api | |
parent | f5ba3a32e2cf1819badffb04522c2cd8dac9bd99 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/requests/api')
-rw-r--r-- | spec/requests/api/graphql/environments/deployments_spec.rb (renamed from spec/requests/api/graphql/environments/deployments_query_spec.rb) | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/spec/requests/api/graphql/environments/deployments_query_spec.rb b/spec/requests/api/graphql/environments/deployments_spec.rb index 6da00057449..ccbd0fba578 100644 --- a/spec/requests/api/graphql/environments/deployments_query_spec.rb +++ b/spec/requests/api/graphql/environments/deployments_spec.rb @@ -437,6 +437,43 @@ RSpec.describe 'Environments Deployments query' do end end + context 'when requesting user permissions' do + let(:query) do + %( + query { + project(fullPath: "#{project.full_path}") { + environment(name: "#{environment.name}") { + deployments { + nodes { + iid + userPermissions { + updateDeployment + destroyDeployment + } + } + } + } + } + } + ) + end + + it_behaves_like 'avoids N+1 database queries' + + it 'returns user permissions of the deployments', :aggregate_failures do + deployments = subject.dig('data', 'project', 'environment', 'deployments', 'nodes') + + deployments.each do |deployment| + deployment_in_record = project.deployments.find_by_iid(deployment['iid']) + + expect(deployment['userPermissions']['updateDeployment']) + .to eq(Ability.allowed?(user, :update_deployment, deployment_in_record)) + expect(deployment['userPermissions']['destroyDeployment']) + .to eq(Ability.allowed?(user, :destroy_deployment, deployment_in_record)) + end + end + end + describe 'sorting and pagination' do let(:data_path) { [:project, :environment, :deployments] } let(:current_user) { user } |