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-30 15:08:58 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-06-30 15:08:58 +0300
commit8b03b8c00a03f7e55d5880486d7cfe4615cff1c1 (patch)
tree36436626eaee9a81f393c0fc162645b8bcc3fc21 /spec/controllers
parent41c87b0fff3c5eff81a90e2e219c5ad16d6bcc4d (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/controllers')
-rw-r--r--spec/controllers/projects/service_desk_controller_spec.rb112
1 files changed, 0 insertions, 112 deletions
diff --git a/spec/controllers/projects/service_desk_controller_spec.rb b/spec/controllers/projects/service_desk_controller_spec.rb
deleted file mode 100644
index 6b914ac8f19..00000000000
--- a/spec/controllers/projects/service_desk_controller_spec.rb
+++ /dev/null
@@ -1,112 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe Projects::ServiceDeskController do
- let_it_be(:project) do
- create(:project, :private, :custom_repo,
- service_desk_enabled: true,
- files: { '.gitlab/issue_templates/service_desk.md' => 'template' })
- end
-
- let_it_be(:user) { create(:user) }
-
- before do
- allow(Gitlab::Email::IncomingEmail).to receive(:enabled?) { true }
- allow(Gitlab::Email::IncomingEmail).to receive(:supports_wildcard?) { true }
-
- project.add_maintainer(user)
- sign_in(user)
- end
-
- describe 'GET service desk properties' do
- it 'returns service_desk JSON data' do
- get :show, params: { namespace_id: project.namespace.to_param, project_id: project }, format: :json
-
- expect(json_response["service_desk_address"]).to match(/\A[^@]+@[^@]+\z/)
- expect(json_response["service_desk_enabled"]).to be_truthy
- expect(response).to have_gitlab_http_status(:ok)
- end
-
- context 'when user is not project maintainer' do
- let(:guest) { create(:user) }
-
- it 'renders 404' do
- project.add_guest(guest)
- sign_in(guest)
-
- get :show, params: { namespace_id: project.namespace.to_param, project_id: project }, format: :json
-
- expect(response).to have_gitlab_http_status(:not_found)
- end
- end
-
- context 'when issue template is present' do
- it 'returns template_file_missing as false' do
- create(:service_desk_setting, project: project, issue_template_key: 'service_desk')
-
- get :show, params: { namespace_id: project.namespace.to_param, project_id: project }, format: :json
-
- response_hash = Gitlab::Json.parse(response.body)
- expect(response_hash['template_file_missing']).to eq(false)
- end
- end
-
- context 'when issue template file becomes outdated' do
- it 'returns template_file_missing as true' do
- service = ServiceDeskSetting.new(project_id: project.id, issue_template_key: 'deleted')
- service.save!(validate: false)
-
- get :show, params: { namespace_id: project.namespace.to_param, project_id: project }, format: :json
-
- expect(json_response['template_file_missing']).to eq(true)
- end
- end
- end
-
- describe 'PUT service desk properties' do
- it 'toggles services desk incoming email' do
- project.update!(service_desk_enabled: false)
-
- put :update, params: { namespace_id: project.namespace.to_param,
- project_id: project,
- service_desk_enabled: true }, format: :json
-
- expect(json_response["service_desk_address"]).to be_present
- expect(json_response["service_desk_enabled"]).to be_truthy
- expect(response).to have_gitlab_http_status(:ok)
- end
-
- it 'sets issue_template_key' do
- put :update, params: { namespace_id: project.namespace.to_param,
- project_id: project,
- issue_template_key: 'service_desk' }, format: :json
-
- settings = project.service_desk_setting
- expect(settings).to be_present
- expect(settings.issue_template_key).to eq('service_desk')
- expect(json_response['template_file_missing']).to eq(false)
- expect(json_response['issue_template_key']).to eq('service_desk')
- end
-
- it 'returns an error when update of service desk settings fails' do
- put :update, params: { namespace_id: project.namespace.to_param,
- project_id: project,
- issue_template_key: 'invalid key' }, format: :json
-
- expect(response).to have_gitlab_http_status(:unprocessable_entity)
- expect(json_response['message']).to eq('Issue template key is empty or does not exist')
- end
-
- context 'when user cannot admin the project' do
- let(:other_user) { create(:user) }
-
- it 'renders 404' do
- sign_in(other_user)
- put :update, params: { namespace_id: project.namespace.to_param, project_id: project, service_desk_enabled: true }, format: :json
-
- expect(response).to have_gitlab_http_status(:not_found)
- end
- end
- end
-end