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-06-30 00:09:07 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-06-30 00:09:07 +0300
commit777f6da99ae8dd4111bb880893cee9c8cfefa132 (patch)
tree06f28423a1a8277c1f5ed6e2216bed391b0ecf47 /spec/services/jira_import
parentaa99514d5c37e08c0fa49d03212ccdc943b8d31e (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/services/jira_import')
-rw-r--r--spec/services/jira_import/start_import_service_spec.rb84
1 files changed, 62 insertions, 22 deletions
diff --git a/spec/services/jira_import/start_import_service_spec.rb b/spec/services/jira_import/start_import_service_spec.rb
index 0437dd19e34..a10928355ef 100644
--- a/spec/services/jira_import/start_import_service_spec.rb
+++ b/spec/services/jira_import/start_import_service_spec.rb
@@ -8,8 +8,15 @@ RSpec.describe JiraImport::StartImportService do
let_it_be(:user) { create(:user) }
let_it_be(:project, reload: true) { create(:project) }
let(:key) { 'KEY' }
+ let(:mapping) do
+ [
+ { jira_account_id: 'abc', gitlab_id: 12 },
+ { jira_account_id: 'def', gitlab_id: nil },
+ { jira_account_id: nil, gitlab_id: 1 }
+ ]
+ end
- subject { described_class.new(user, project, key).execute }
+ subject { described_class.new(user, project, key, mapping).execute }
context 'when an error is returned from the project validation' do
before do
@@ -37,7 +44,7 @@ RSpec.describe JiraImport::StartImportService do
context 'when correct data provided' do
let(:fake_key) { 'some-key' }
- subject { described_class.new(user, project, fake_key).execute }
+ subject { described_class.new(user, project, fake_key, mapping).execute }
context 'when import is already running' do
let_it_be(:jira_import_state) { create(:jira_import_state, :started, project: project) }
@@ -62,35 +69,68 @@ RSpec.describe JiraImport::StartImportService do
end
context 'when everything is ok' do
- it 'returns success response' do
- expect(subject).to be_a(ServiceResponse)
- expect(subject).to be_success
- end
+ context 'with complete mapping' do
+ before do
+ expect(Gitlab::JiraImport).to receive(:cache_users_mapping).with(project.id, { 'abc' => 12 })
+ end
- it 'schedules Jira import' do
- subject
+ it 'returns success response' do
+ expect(subject).to be_a(ServiceResponse)
+ expect(subject).to be_success
+ end
- expect(project.latest_jira_import).to be_scheduled
- end
+ it 'schedules Jira import' do
+ subject
- it 'creates Jira import data', :aggregate_failures do
- jira_import = subject.payload[:import_data]
+ expect(project.latest_jira_import).to be_scheduled
+ end
+
+ it 'creates Jira import data', :aggregate_failures do
+ jira_import = subject.payload[:import_data]
+
+ expect(jira_import.jira_project_xid).to eq(0)
+ expect(jira_import.jira_project_name).to eq(fake_key)
+ expect(jira_import.jira_project_key).to eq(fake_key)
+ expect(jira_import.user).to eq(user)
+ end
+
+ it 'creates Jira import label' do
+ expect { subject }.to change { Label.count }.by(1)
+ end
+
+ it 'creates Jira label title with correct number' do
+ jira_import = subject.payload[:import_data]
+ label_title = "jira-import::#{jira_import.jira_project_key}-1"
- expect(jira_import.jira_project_xid).to eq(0)
- expect(jira_import.jira_project_name).to eq(fake_key)
- expect(jira_import.jira_project_key).to eq(fake_key)
- expect(jira_import.user).to eq(user)
+ expect(jira_import.label.title).to eq(label_title)
+ end
end
- it 'creates Jira import label' do
- expect { subject }.to change { Label.count }.by(1)
+ context 'when mapping is nil' do
+ let(:mapping) { nil }
+
+ it 'returns success response' do
+ expect(Gitlab::JiraImport).not_to receive(:cache_users_mapping)
+
+ expect(subject).to be_a(ServiceResponse)
+ expect(subject).to be_success
+ end
end
- it 'creates Jira label title with correct number' do
- jira_import = subject.payload[:import_data]
- label_title = "jira-import::#{jira_import.jira_project_key}-1"
+ context 'when no mapping value is complete' do
+ let(:mapping) do
+ [
+ { jira_account_id: 'def', gitlab_id: nil },
+ { jira_account_id: nil, gitlab_id: 1 }
+ ]
+ end
- expect(jira_import.label.title).to eq(label_title)
+ it 'returns success response' do
+ expect(Gitlab::JiraImport).not_to receive(:cache_users_mapping)
+
+ expect(subject).to be_a(ServiceResponse)
+ expect(subject).to be_success
+ end
end
end