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>2023-06-20 13:43:29 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-06-20 13:43:29 +0300
commit3b1af5cc7ed2666ff18b718ce5d30fa5a2756674 (patch)
tree3bc4a40e0ee51ec27eabf917c537033c0c5b14d4 /spec/requests/api/graphql/mutations
parent9bba14be3f2c211bf79e15769cd9b77bc73a13bc (diff)
Add latest changes from gitlab-org/gitlab@16-1-stable-eev16.1.0-rc42
Diffstat (limited to 'spec/requests/api/graphql/mutations')
-rw-r--r--spec/requests/api/graphql/mutations/achievements/delete_user_achievement_spec.rb85
-rw-r--r--spec/requests/api/graphql/mutations/alert_management/http_integration/create_spec.rb2
-rw-r--r--spec/requests/api/graphql/mutations/alert_management/http_integration/destroy_spec.rb2
-rw-r--r--spec/requests/api/graphql/mutations/alert_management/http_integration/reset_token_spec.rb2
-rw-r--r--spec/requests/api/graphql/mutations/alert_management/http_integration/update_spec.rb2
-rw-r--r--spec/requests/api/graphql/mutations/ci/job_artifact/bulk_destroy_spec.rb17
-rw-r--r--spec/requests/api/graphql/mutations/ci/project_ci_cd_settings_update_spec.rb29
-rw-r--r--spec/requests/api/graphql/mutations/dependency_proxy/group_settings/update_spec.rb21
-rw-r--r--spec/requests/api/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb27
-rw-r--r--spec/requests/api/graphql/mutations/environments/create_spec.rb60
-rw-r--r--spec/requests/api/graphql/mutations/environments/delete_spec.rb33
-rw-r--r--spec/requests/api/graphql/mutations/environments/update_spec.rb70
-rw-r--r--spec/requests/api/graphql/mutations/groups/update_spec.rb2
-rw-r--r--spec/requests/api/graphql/mutations/jira_import/import_users_spec.rb2
-rw-r--r--spec/requests/api/graphql/mutations/jira_import/start_spec.rb2
-rw-r--r--spec/requests/api/graphql/mutations/members/groups/bulk_update_spec.rb2
-rw-r--r--spec/requests/api/graphql/mutations/members/projects/bulk_update_spec.rb2
-rw-r--r--spec/requests/api/graphql/mutations/namespace/package_settings/update_spec.rb17
-rw-r--r--spec/requests/api/graphql/mutations/projects/sync_fork_spec.rb18
-rw-r--r--spec/requests/api/graphql/mutations/snippets/create_spec.rb8
-rw-r--r--spec/requests/api/graphql/mutations/snippets/update_spec.rb4
-rw-r--r--spec/requests/api/graphql/mutations/work_items/update_spec.rb2
22 files changed, 304 insertions, 105 deletions
diff --git a/spec/requests/api/graphql/mutations/achievements/delete_user_achievement_spec.rb b/spec/requests/api/graphql/mutations/achievements/delete_user_achievement_spec.rb
new file mode 100644
index 00000000000..f759e6dce08
--- /dev/null
+++ b/spec/requests/api/graphql/mutations/achievements/delete_user_achievement_spec.rb
@@ -0,0 +1,85 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Mutations::Achievements::DeleteUserAchievement, feature_category: :user_profile do
+ include GraphqlHelpers
+
+ let_it_be(:maintainer) { create(:user) }
+ let_it_be(:owner) { create(:user) }
+ let_it_be(:group) { create(:group) }
+ let_it_be(:achievement) { create(:achievement, namespace: group) }
+ let_it_be(:user_achievement) { create(:user_achievement, achievement: achievement) }
+
+ let(:mutation) { graphql_mutation(:user_achievements_delete, params) }
+ let(:user_achievement_id) { user_achievement&.to_global_id }
+ let(:params) { { user_achievement_id: user_achievement_id } }
+
+ subject { post_graphql_mutation(mutation, current_user: current_user) }
+
+ before_all do
+ group.add_maintainer(maintainer)
+ group.add_owner(owner)
+ end
+
+ context 'when the user does not have permission' do
+ let(:current_user) { maintainer }
+
+ it_behaves_like 'a mutation that returns a top-level access error'
+
+ it 'does not delete any user achievements' do
+ expect { subject }.not_to change { Achievements::UserAchievement.count }
+ end
+ end
+
+ context 'when the user has permission' do
+ let(:current_user) { owner }
+
+ context 'when the params are invalid' do
+ let(:user_achievement) { nil }
+
+ it 'returns the validation error' do
+ subject
+
+ expect(graphql_errors.to_s).to include('invalid value for userAchievementId (Expected value to not be null)')
+ end
+ end
+
+ context 'when the user_achievement_id is invalid' do
+ let(:user_achievement_id) { "gid://gitlab/Achievements::UserAchievement/#{non_existing_record_id}" }
+
+ it 'returns the relevant error' do
+ subject
+
+ expect(graphql_errors.to_s)
+ .to include("The resource that you are attempting to access does not exist or you don't have permission")
+ end
+ end
+
+ context 'when the feature flag is disabled' do
+ before do
+ stub_feature_flags(achievements: false)
+ end
+
+ it 'returns the relevant error' do
+ subject
+
+ expect(graphql_errors.to_s)
+ .to include("The resource that you are attempting to access does not exist or you don't have permission")
+ end
+ end
+
+ context 'when everything is ok' do
+ it 'deletes an user achievement' do
+ expect { subject }.to change { Achievements::UserAchievement.count }.by(-1)
+ end
+
+ it 'returns the deleted user achievement' do
+ subject
+
+ expect(graphql_data_at(:user_achievements_delete, :user_achievement, :achievement, :id))
+ .to eq(achievement.to_global_id.to_s)
+ end
+ end
+ end
+end
diff --git a/spec/requests/api/graphql/mutations/alert_management/http_integration/create_spec.rb b/spec/requests/api/graphql/mutations/alert_management/http_integration/create_spec.rb
index 187c88363c6..b0e9f59b996 100644
--- a/spec/requests/api/graphql/mutations/alert_management/http_integration/create_spec.rb
+++ b/spec/requests/api/graphql/mutations/alert_management/http_integration/create_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Creating a new HTTP Integration', feature_category: :integrations do
+RSpec.describe 'Creating a new HTTP Integration', feature_category: :incident_management do
include GraphqlHelpers
let_it_be(:current_user) { create(:user) }
diff --git a/spec/requests/api/graphql/mutations/alert_management/http_integration/destroy_spec.rb b/spec/requests/api/graphql/mutations/alert_management/http_integration/destroy_spec.rb
index 1c77c71daba..110c65d24a0 100644
--- a/spec/requests/api/graphql/mutations/alert_management/http_integration/destroy_spec.rb
+++ b/spec/requests/api/graphql/mutations/alert_management/http_integration/destroy_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Removing an HTTP Integration', feature_category: :integrations do
+RSpec.describe 'Removing an HTTP Integration', feature_category: :incident_management do
include GraphqlHelpers
let_it_be(:user) { create(:user) }
diff --git a/spec/requests/api/graphql/mutations/alert_management/http_integration/reset_token_spec.rb b/spec/requests/api/graphql/mutations/alert_management/http_integration/reset_token_spec.rb
index 427277dd540..049d7e8dace 100644
--- a/spec/requests/api/graphql/mutations/alert_management/http_integration/reset_token_spec.rb
+++ b/spec/requests/api/graphql/mutations/alert_management/http_integration/reset_token_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Resetting a token on an existing HTTP Integration', feature_category: :integrations do
+RSpec.describe 'Resetting a token on an existing HTTP Integration', feature_category: :incident_management do
include GraphqlHelpers
let_it_be(:user) { create(:user) }
diff --git a/spec/requests/api/graphql/mutations/alert_management/http_integration/update_spec.rb b/spec/requests/api/graphql/mutations/alert_management/http_integration/update_spec.rb
index a9d189d564d..70adff1fdc4 100644
--- a/spec/requests/api/graphql/mutations/alert_management/http_integration/update_spec.rb
+++ b/spec/requests/api/graphql/mutations/alert_management/http_integration/update_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Updating an existing HTTP Integration', feature_category: :integrations do
+RSpec.describe 'Updating an existing HTTP Integration', feature_category: :incident_management do
include GraphqlHelpers
let_it_be(:current_user) { create(:user) }
diff --git a/spec/requests/api/graphql/mutations/ci/job_artifact/bulk_destroy_spec.rb b/spec/requests/api/graphql/mutations/ci/job_artifact/bulk_destroy_spec.rb
index 4e25669a0ca..5cb48ec44a0 100644
--- a/spec/requests/api/graphql/mutations/ci/job_artifact/bulk_destroy_spec.rb
+++ b/spec/requests/api/graphql/mutations/ci/job_artifact/bulk_destroy_spec.rb
@@ -41,23 +41,6 @@ RSpec.describe 'BulkDestroy', feature_category: :build_artifacts do
expect(first_artifact.reload).to be_persisted
end
- context 'when the `ci_job_artifact_bulk_destroy` feature flag is disabled' do
- before do
- stub_feature_flags(ci_job_artifact_bulk_destroy: false)
- project.add_maintainer(maintainer)
- end
-
- it 'returns a resource not available error' do
- post_graphql_mutation(mutation, current_user: maintainer)
-
- expect(graphql_errors).to contain_exactly(
- hash_including(
- 'message' => '`ci_job_artifact_bulk_destroy` feature flag is disabled.'
- )
- )
- end
- end
-
context "when the user is a developer in a project" do
before do
project.add_developer(developer)
diff --git a/spec/requests/api/graphql/mutations/ci/project_ci_cd_settings_update_spec.rb b/spec/requests/api/graphql/mutations/ci/project_ci_cd_settings_update_spec.rb
index aa00069b241..fd92ed198e7 100644
--- a/spec/requests/api/graphql/mutations/ci/project_ci_cd_settings_update_spec.rb
+++ b/spec/requests/api/graphql/mutations/ci/project_ci_cd_settings_update_spec.rb
@@ -64,35 +64,6 @@ RSpec.describe 'ProjectCiCdSettingsUpdate', feature_category: :continuous_integr
expect(project.keep_latest_artifact).to eq(false)
end
- describe 'ci_cd_settings_update deprecated mutation' do
- let(:mutation) { graphql_mutation(:ci_cd_settings_update, variables) }
-
- it 'returns error' do
- post_graphql_mutation(mutation, current_user: user)
-
- expect(graphql_errors).to(
- include(
- hash_including('message' => '`remove_cicd_settings_update` feature flag is enabled.')
- )
- )
- end
-
- context 'when remove_cicd_settings_update FF is disabled' do
- before do
- stub_feature_flags(remove_cicd_settings_update: false)
- end
-
- it 'updates ci cd settings' do
- post_graphql_mutation(mutation, current_user: user)
-
- project.reload
-
- expect(response).to have_gitlab_http_status(:success)
- expect(project.keep_latest_artifact).to eq(false)
- end
- end
- end
-
it 'allows setting job_token_scope_enabled to false' do
post_graphql_mutation(mutation, current_user: user)
diff --git a/spec/requests/api/graphql/mutations/dependency_proxy/group_settings/update_spec.rb b/spec/requests/api/graphql/mutations/dependency_proxy/group_settings/update_spec.rb
index 5d5696d3f66..86ea77a8f35 100644
--- a/spec/requests/api/graphql/mutations/dependency_proxy/group_settings/update_spec.rb
+++ b/spec/requests/api/graphql/mutations/dependency_proxy/group_settings/update_spec.rb
@@ -49,16 +49,21 @@ RSpec.describe 'Updating the dependency proxy group settings', feature_category:
end
context 'with permission' do
- before do
- group.add_maintainer(user)
- end
+ %i[owner maintainer].each do |role|
+ context "for #{role}" do
+ before do
+ group.send("add_#{role}", user)
+ stub_feature_flags(raise_group_admin_package_permission_to_owner: false)
+ end
- it 'returns the updated dependency proxy settings', :aggregate_failures do
- subject
+ it 'returns the updated dependency proxy settings', :aggregate_failures do
+ subject
- expect(response).to have_gitlab_http_status(:success)
- expect(mutation_response['errors']).to be_empty
- expect(group_settings[:enabled]).to eq(false)
+ expect(response).to have_gitlab_http_status(:success)
+ expect(mutation_response['errors']).to be_empty
+ expect(group_settings[:enabled]).to eq(false)
+ end
+ end
end
end
end
diff --git a/spec/requests/api/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb b/spec/requests/api/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb
index 66ee17f356c..bc8b2da84b9 100644
--- a/spec/requests/api/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb
+++ b/spec/requests/api/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb
@@ -51,19 +51,24 @@ RSpec.describe 'Updating the dependency proxy image ttl policy', feature_categor
end
context 'with permission' do
- before do
- group.add_maintainer(user)
- end
+ %i[owner maintainer].each do |role|
+ context "for #{role}" do
+ before do
+ group.send("add_#{role}", user)
+ stub_feature_flags(raise_group_admin_package_permission_to_owner: false)
+ end
- it 'returns the updated dependency proxy image ttl policy', :aggregate_failures do
- subject
+ it 'returns the updated dependency proxy image ttl policy', :aggregate_failures do
+ subject
- expect(response).to have_gitlab_http_status(:success)
- expect(mutation_response['errors']).to be_empty
- expect(ttl_policy_response).to include(
- 'enabled' => params[:enabled],
- 'ttl' => params[:ttl]
- )
+ expect(response).to have_gitlab_http_status(:success)
+ expect(mutation_response['errors']).to be_empty
+ expect(ttl_policy_response).to include(
+ 'enabled' => params[:enabled],
+ 'ttl' => params[:ttl]
+ )
+ end
+ end
end
end
end
diff --git a/spec/requests/api/graphql/mutations/environments/create_spec.rb b/spec/requests/api/graphql/mutations/environments/create_spec.rb
new file mode 100644
index 00000000000..8a67f86dc4b
--- /dev/null
+++ b/spec/requests/api/graphql/mutations/environments/create_spec.rb
@@ -0,0 +1,60 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'Create Environment', feature_category: :environment_management do
+ include GraphqlHelpers
+
+ let_it_be(:project) { create(:project, :repository) }
+ let_it_be(:developer) { create(:user).tap { |u| project.add_maintainer(u) } }
+ let_it_be(:reporter) { create(:user).tap { |u| project.add_reporter(u) } }
+
+ let(:current_user) { developer }
+
+ let(:mutation) do
+ graphql_mutation(:environment_create, input)
+ end
+
+ context 'when creating an environment' do
+ let(:input) do
+ {
+ project_path: project.full_path,
+ name: 'production',
+ external_url: 'https://gitlab.com/'
+ }
+ end
+
+ it 'creates successfully' do
+ post_graphql_mutation(mutation, current_user: current_user)
+
+ expect(graphql_mutation_response(:environment_create)['environment']['name']).to eq('production')
+ expect(graphql_mutation_response(:environment_create)['environment']['externalUrl']).to eq('https://gitlab.com/')
+ expect(graphql_mutation_response(:environment_create)['errors']).to be_empty
+ end
+
+ context 'when current user is reporter' do
+ let(:current_user) { reporter }
+
+ it 'returns error' do
+ post_graphql_mutation(mutation, current_user: current_user)
+
+ expect(graphql_errors.to_s)
+ .to include("The resource that you are attempting to access does not exist or you don't have permission")
+ end
+ end
+ end
+
+ context 'when name is missing' do
+ let(:input) do
+ {
+ project_path: project.full_path
+ }
+ end
+
+ it 'returns error' do
+ post_graphql_mutation(mutation, current_user: current_user)
+
+ expect(graphql_errors.to_s).to include("Expected value to not be null")
+ end
+ end
+end
diff --git a/spec/requests/api/graphql/mutations/environments/delete_spec.rb b/spec/requests/api/graphql/mutations/environments/delete_spec.rb
new file mode 100644
index 00000000000..1e28d0ebc0b
--- /dev/null
+++ b/spec/requests/api/graphql/mutations/environments/delete_spec.rb
@@ -0,0 +1,33 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'Delete Environment', feature_category: :deployment_management do
+ include GraphqlHelpers
+
+ let_it_be(:project) { create(:project, :repository) }
+ let_it_be(:environment) { create(:environment, project: project, state: :stopped) }
+ let_it_be(:maintainer) { create(:user).tap { |u| project.add_maintainer(u) } }
+ let_it_be(:developer) { create(:user).tap { |u| project.add_maintainer(u) } }
+
+ let(:environment_id) { environment.to_global_id.to_s }
+ let(:current_user) { developer }
+
+ let(:mutation) do
+ graphql_mutation(:environment_delete, input)
+ end
+
+ context 'when delete is successful' do
+ let(:input) do
+ { id: environment_id }
+ end
+
+ it 'deletes the environment' do
+ expect do
+ post_graphql_mutation(mutation, current_user: current_user)
+ end.to change { project.reload.environments.include?(environment) }.from(true).to(false)
+
+ expect(graphql_mutation_response(:environment_delete)['errors']).to be_empty
+ end
+ end
+end
diff --git a/spec/requests/api/graphql/mutations/environments/update_spec.rb b/spec/requests/api/graphql/mutations/environments/update_spec.rb
new file mode 100644
index 00000000000..9c68b3a024c
--- /dev/null
+++ b/spec/requests/api/graphql/mutations/environments/update_spec.rb
@@ -0,0 +1,70 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'Update Environment', feature_category: :deployment_management do
+ include GraphqlHelpers
+
+ let_it_be(:project) { create(:project, :repository) }
+ let_it_be(:environment) { create(:environment, project: project) }
+ let_it_be(:maintainer) { create(:user).tap { |u| project.add_maintainer(u) } }
+ let_it_be(:developer) { create(:user).tap { |u| project.add_maintainer(u) } }
+
+ let(:environment_id) { environment.to_global_id.to_s }
+ let(:current_user) { developer }
+
+ let(:mutation) do
+ graphql_mutation(:environment_update, input)
+ end
+
+ context 'when updating external URL' do
+ let(:input) do
+ {
+ id: environment_id,
+ external_url: 'https://gitlab.com/'
+ }
+ end
+
+ it 'updates successfully' do
+ expect do
+ post_graphql_mutation(mutation, current_user: current_user)
+ end.to change { environment.reload.external_url }.to('https://gitlab.com/')
+
+ expect(graphql_mutation_response(:environment_update)['errors']).to be_empty
+ end
+
+ context 'when url is invalid' do
+ let(:input) do
+ {
+ id: environment_id,
+ external_url: 'http://${URL}'
+ }
+ end
+
+ it 'returns error' do
+ expect do
+ post_graphql_mutation(mutation, current_user: current_user)
+ end.not_to change { environment.reload.external_url }
+
+ expect(graphql_mutation_response(:environment_update)['errors'].first).to include('URI is invalid')
+ end
+ end
+ end
+
+ context 'when updating tier' do
+ let(:input) do
+ {
+ id: environment_id,
+ tier: 'STAGING'
+ }
+ end
+
+ it 'updates successfully' do
+ expect do
+ post_graphql_mutation(mutation, current_user: current_user)
+ end.to change { environment.reload.tier }.to('staging')
+
+ expect(graphql_mutation_response(:environment_update)['errors']).to be_empty
+ end
+ end
+end
diff --git a/spec/requests/api/graphql/mutations/groups/update_spec.rb b/spec/requests/api/graphql/mutations/groups/update_spec.rb
index a9acc593229..b75b2464c22 100644
--- a/spec/requests/api/graphql/mutations/groups/update_spec.rb
+++ b/spec/requests/api/graphql/mutations/groups/update_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'GroupUpdate', feature_category: :subgroups do
+RSpec.describe 'GroupUpdate', feature_category: :groups_and_projects do
include GraphqlHelpers
let_it_be(:user) { create(:user) }
diff --git a/spec/requests/api/graphql/mutations/jira_import/import_users_spec.rb b/spec/requests/api/graphql/mutations/jira_import/import_users_spec.rb
index ab15aa97680..58659ea0824 100644
--- a/spec/requests/api/graphql/mutations/jira_import/import_users_spec.rb
+++ b/spec/requests/api/graphql/mutations/jira_import/import_users_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Importing Jira Users', feature_category: :integrations do
+RSpec.describe 'Importing Jira Users', feature_category: :importers do
include JiraIntegrationHelpers
include GraphqlHelpers
diff --git a/spec/requests/api/graphql/mutations/jira_import/start_spec.rb b/spec/requests/api/graphql/mutations/jira_import/start_spec.rb
index a864bc88afc..fc4a1488b27 100644
--- a/spec/requests/api/graphql/mutations/jira_import/start_spec.rb
+++ b/spec/requests/api/graphql/mutations/jira_import/start_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Starting a Jira Import', feature_category: :integrations do
+RSpec.describe 'Starting a Jira Import', feature_category: :importers do
include JiraIntegrationHelpers
include GraphqlHelpers
diff --git a/spec/requests/api/graphql/mutations/members/groups/bulk_update_spec.rb b/spec/requests/api/graphql/mutations/members/groups/bulk_update_spec.rb
index f15b52f53a3..1395f7b778f 100644
--- a/spec/requests/api/graphql/mutations/members/groups/bulk_update_spec.rb
+++ b/spec/requests/api/graphql/mutations/members/groups/bulk_update_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'GroupMemberBulkUpdate', feature_category: :subgroups do
+RSpec.describe 'GroupMemberBulkUpdate', feature_category: :groups_and_projects do
include GraphqlHelpers
let_it_be(:parent_group) { create(:group) }
diff --git a/spec/requests/api/graphql/mutations/members/projects/bulk_update_spec.rb b/spec/requests/api/graphql/mutations/members/projects/bulk_update_spec.rb
index cbef9715cbe..910e512f6d6 100644
--- a/spec/requests/api/graphql/mutations/members/projects/bulk_update_spec.rb
+++ b/spec/requests/api/graphql/mutations/members/projects/bulk_update_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'ProjectMemberBulkUpdate', feature_category: :projects do
+RSpec.describe 'ProjectMemberBulkUpdate', feature_category: :groups_and_projects do
include GraphqlHelpers
let_it_be(:parent_group) { create(:group) }
diff --git a/spec/requests/api/graphql/mutations/namespace/package_settings/update_spec.rb b/spec/requests/api/graphql/mutations/namespace/package_settings/update_spec.rb
index f4f4f34fe29..2f26a2f92b2 100644
--- a/spec/requests/api/graphql/mutations/namespace/package_settings/update_spec.rb
+++ b/spec/requests/api/graphql/mutations/namespace/package_settings/update_spec.rb
@@ -139,6 +139,15 @@ RSpec.describe 'Updating the package settings', feature_category: :package_regis
end
end
+ # To be removed when raise_group_admin_package_permission_to_owner FF is removed
+ RSpec.shared_examples 'disabling admin_package feature flag' do |action:|
+ before do
+ stub_feature_flags(raise_group_admin_package_permission_to_owner: false)
+ end
+
+ it_behaves_like "accepting the mutation request #{action} the package settings"
+ end
+
describe 'post graphql mutation' do
subject { post_graphql_mutation(mutation, current_user: user) }
@@ -147,7 +156,8 @@ RSpec.describe 'Updating the package settings', feature_category: :package_regis
let_it_be(:namespace, reload: true) { package_settings.namespace }
where(:user_role, :shared_examples_name) do
- :maintainer | 'accepting the mutation request updating the package settings'
+ :owner | 'accepting the mutation request updating the package settings'
+ :maintainer | 'denying the mutation request'
:developer | 'denying the mutation request'
:reporter | 'denying the mutation request'
:guest | 'denying the mutation request'
@@ -160,6 +170,7 @@ RSpec.describe 'Updating the package settings', feature_category: :package_regis
end
it_behaves_like params[:shared_examples_name]
+ it_behaves_like 'disabling admin_package feature flag', action: :updating if params[:user_role] == :maintainer
end
end
@@ -169,7 +180,8 @@ RSpec.describe 'Updating the package settings', feature_category: :package_regis
let(:package_settings) { namespace.package_settings }
where(:user_role, :shared_examples_name) do
- :maintainer | 'accepting the mutation request creating the package settings'
+ :owner | 'accepting the mutation request creating the package settings'
+ :maintainer | 'denying the mutation request'
:developer | 'denying the mutation request'
:reporter | 'denying the mutation request'
:guest | 'denying the mutation request'
@@ -182,6 +194,7 @@ RSpec.describe 'Updating the package settings', feature_category: :package_regis
end
it_behaves_like params[:shared_examples_name]
+ it_behaves_like 'disabling admin_package feature flag', action: :creating if params[:user_role] == :maintainer
end
end
end
diff --git a/spec/requests/api/graphql/mutations/projects/sync_fork_spec.rb b/spec/requests/api/graphql/mutations/projects/sync_fork_spec.rb
index c5dc6f390d9..0745fb945bb 100644
--- a/spec/requests/api/graphql/mutations/projects/sync_fork_spec.rb
+++ b/spec/requests/api/graphql/mutations/projects/sync_fork_spec.rb
@@ -32,24 +32,6 @@ RSpec.describe "Sync project fork", feature_category: :source_code_management do
source_project.change_head('feature')
end
- context 'when synchronize_fork feature flag is disabled' do
- before do
- stub_feature_flags(synchronize_fork: false)
- end
-
- it 'does not call the sync service' do
- expect(::Projects::Forks::SyncWorker).not_to receive(:perform_async)
-
- post_graphql_mutation(mutation, current_user: current_user)
-
- expect(graphql_mutation_response(:project_sync_fork)).to eq(
- {
- 'details' => nil,
- 'errors' => ['Feature flag is disabled']
- })
- end
- end
-
context 'when the branch is protected', :use_clean_rails_redis_caching do
let_it_be(:protected_branch) do
create(:protected_branch, :no_one_can_push, project: project, name: target_branch)
diff --git a/spec/requests/api/graphql/mutations/snippets/create_spec.rb b/spec/requests/api/graphql/mutations/snippets/create_spec.rb
index 0b1af2bf628..a6d727ae6d3 100644
--- a/spec/requests/api/graphql/mutations/snippets/create_spec.rb
+++ b/spec/requests/api/graphql/mutations/snippets/create_spec.rb
@@ -103,10 +103,6 @@ RSpec.describe 'Creating a Snippet', feature_category: :source_code_management d
end
it_behaves_like 'snippet edit usage data counters'
-
- it_behaves_like 'a mutation which can mutate a spammable' do
- let(:service) { Snippets::CreateService }
- end
end
context 'with PersonalSnippet' do
@@ -165,7 +161,7 @@ RSpec.describe 'Creating a Snippet', feature_category: :source_code_management d
it do
expect(::Snippets::CreateService).to receive(:new)
- .with(project: nil, current_user: user, params: hash_including(files: expected_value), spam_params: instance_of(::Spam::SpamParams))
+ .with(project: nil, current_user: user, params: hash_including(files: expected_value))
.and_return(double(execute: creation_response))
subject
@@ -182,7 +178,7 @@ RSpec.describe 'Creating a Snippet', feature_category: :source_code_management d
it 'returns an error' do
subject
- expect(json_response['errors']).to be
+ expect(json_response['errors']).to be_present
end
end
end
diff --git a/spec/requests/api/graphql/mutations/snippets/update_spec.rb b/spec/requests/api/graphql/mutations/snippets/update_spec.rb
index 3b98ee3c2e9..7c5ab691b51 100644
--- a/spec/requests/api/graphql/mutations/snippets/update_spec.rb
+++ b/spec/requests/api/graphql/mutations/snippets/update_spec.rb
@@ -110,10 +110,6 @@ RSpec.describe 'Updating a Snippet', feature_category: :source_code_management d
end
end
- it_behaves_like 'a mutation which can mutate a spammable' do
- let(:service) { Snippets::UpdateService }
- end
-
def blob_at(filename)
snippet.repository.blob_at('HEAD', filename)
end
diff --git a/spec/requests/api/graphql/mutations/work_items/update_spec.rb b/spec/requests/api/graphql/mutations/work_items/update_spec.rb
index ce1c2c01faa..60b5795ee9b 100644
--- a/spec/requests/api/graphql/mutations/work_items/update_spec.rb
+++ b/spec/requests/api/graphql/mutations/work_items/update_spec.rb
@@ -869,7 +869,7 @@ RSpec.describe 'Update a work item', feature_category: :team_planning do
let_it_be(:issue) { create(:work_item, project: project) }
let_it_be(:link) { create(:parent_link, work_item_parent: issue, work_item: work_item) }
- let(:error_msg) { 'Work item type cannot be changed to Issue with Issue as parent type.' }
+ let(:error_msg) { 'Work item type cannot be changed to issue when linked to a parent issue.' }
it 'does not update the work item type' do
expect do