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>2020-04-14 15:09:26 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-04-14 15:09:26 +0300
commit2e4c4055181eec9186458dd5dd3219c937032ec7 (patch)
treeeee59e7124ffcf093f1b53369436c69cfe4d9cc5 /spec/controllers
parent97f0ae7454597105a27df65ffb772949d9d4f3cb (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/controllers')
-rw-r--r--spec/controllers/projects/import/jira_controller_spec.rb69
1 files changed, 61 insertions, 8 deletions
diff --git a/spec/controllers/projects/import/jira_controller_spec.rb b/spec/controllers/projects/import/jira_controller_spec.rb
index 8e0d506e5e4..4629aab65dd 100644
--- a/spec/controllers/projects/import/jira_controller_spec.rb
+++ b/spec/controllers/projects/import/jira_controller_spec.rb
@@ -5,6 +5,7 @@ require 'spec_helper'
describe Projects::Import::JiraController do
let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project) }
+ let_it_be(:jira_project_key) { 'Test' }
context 'with anonymous user' do
before do
@@ -21,7 +22,7 @@ describe Projects::Import::JiraController do
context 'post import' do
it 'redirects to issues page' do
- post :import, params: { namespace_id: project.namespace, project_id: project, jira_project_key: 'Test' }
+ post :import, params: { namespace_id: project.namespace, project_id: project, jira_project_key: jira_project_key }
expect(response).to redirect_to(new_user_session_path)
end
@@ -49,7 +50,7 @@ describe Projects::Import::JiraController do
context 'post import' do
it 'redirects to issues page' do
- post :import, params: { namespace_id: project.namespace, project_id: project, jira_project_key: 'Test' }
+ post :import, params: { namespace_id: project.namespace, project_id: project, jira_project_key: jira_project_key }
expect(response).to redirect_to(project_issues_path(project))
end
@@ -65,12 +66,64 @@ describe Projects::Import::JiraController do
context 'when jira service is enabled for the project' do
let_it_be(:jira_service) { create(:jira_service, project: project) }
+ context 'when user is developer' do
+ let_it_be(:dev) { create(:user) }
+
+ before do
+ sign_in(dev)
+ project.add_developer(dev)
+ end
+
+ context 'get show' do
+ before do
+ get :show, params: { namespace_id: project.namespace.to_param, project_id: project }
+ end
+
+ it 'does not query jira service' do
+ expect(project).not_to receive(:jira_service)
+ end
+
+ it 'renders show template' do
+ expect(response).to render_template(:show)
+ expect(assigns(:jira_projects)).not_to be_present
+ end
+ end
+
+ context 'post import' do
+ it 'returns 404' do
+ post :import, params: { namespace_id: project.namespace, project_id: project, jira_project_key: jira_project_key }
+
+ expect(response).to have_gitlab_http_status(:not_found)
+ end
+ end
+ end
+
+ context 'when issues disabled' do
+ let_it_be(:disabled_issues_project) { create(:project, :public, :issues_disabled) }
+
+ context 'get show' do
+ it 'returs 404' do
+ get :show, params: { namespace_id: project.namespace.to_param, project_id: disabled_issues_project }
+
+ expect(response).to have_gitlab_http_status(:not_found)
+ end
+ end
+
+ context 'post import' do
+ it 'returs 404' do
+ post :import, params: { namespace_id: disabled_issues_project.namespace, project_id: disabled_issues_project, jira_project_key: jira_project_key }
+
+ expect(response).to have_gitlab_http_status(:not_found)
+ end
+ end
+ end
+
context 'when running jira import first time' do
context 'get show' do
before do
allow(JIRA::Resource::Project).to receive(:all).and_return(jira_projects)
- expect(project.import_state).to be_nil
+ expect(project.jira_imports).to be_empty
get :show, params: { namespace_id: project.namespace.to_param, project_id: project }
end
@@ -84,7 +137,7 @@ describe Projects::Import::JiraController do
end
end
- context 'when everything is ok' do
+ context 'when projects retrieved from Jira' do
let(:jira_projects) { [double(name: 'FOO project', key: 'FOO')] }
it 'renders show template' do
@@ -107,14 +160,14 @@ describe Projects::Import::JiraController do
it 'creates import state' do
expect(project.latest_jira_import).to be_nil
- post :import, params: { namespace_id: project.namespace, project_id: project, jira_project_key: 'Test' }
+ post :import, params: { namespace_id: project.namespace, project_id: project, jira_project_key: jira_project_key }
project.reload
jira_import = project.latest_jira_import
expect(project.import_type).to eq 'jira'
expect(jira_import.status).to eq 'scheduled'
- expect(jira_import.jira_project_key).to eq 'Test'
+ expect(jira_import.jira_project_key).to eq jira_project_key
expect(response).to redirect_to(project_import_jira_path(project))
end
end
@@ -145,7 +198,7 @@ describe Projects::Import::JiraController do
end
context 'when jira import ran before' do
- let_it_be(:jira_import_state) { create(:jira_import_state, :finished, project: project, jira_project_key: 'Test') }
+ let_it_be(:jira_import_state) { create(:jira_import_state, :finished, project: project, jira_project_key: jira_project_key) }
context 'get show' do
it 'renders import status' do
@@ -164,7 +217,7 @@ describe Projects::Import::JiraController do
project.reload
expect(project.latest_jira_import.status).to eq 'scheduled'
expect(project.jira_imports.size).to eq 2
- expect(project.jira_imports.first.jira_project_key).to eq 'Test'
+ expect(project.jira_imports.first.jira_project_key).to eq jira_project_key
expect(project.jira_imports.last.jira_project_key).to eq 'New Project'
expect(response).to redirect_to(project_import_jira_path(project))
end