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-12-03 06:07:16 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2022-12-03 06:07:16 +0300
commit336483a4c150a112e83d95538218c59d9a952768 (patch)
tree404c40d9bfa6103ffa3d4ce71bf8a41b2b0f7acd /spec/requests/api
parentf5ba3a32e2cf1819badffb04522c2cd8dac9bd99 (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 }