summaryrefslogtreecommitdiff
path: root/spec/workers/gitlab/jira_import/import_issue_worker_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/workers/gitlab/jira_import/import_issue_worker_spec.rb')
-rw-r--r--spec/workers/gitlab/jira_import/import_issue_worker_spec.rb39
1 files changed, 36 insertions, 3 deletions
diff --git a/spec/workers/gitlab/jira_import/import_issue_worker_spec.rb b/spec/workers/gitlab/jira_import/import_issue_worker_spec.rb
index 80629cb875e..2de609761e2 100644
--- a/spec/workers/gitlab/jira_import/import_issue_worker_spec.rb
+++ b/spec/workers/gitlab/jira_import/import_issue_worker_spec.rb
@@ -5,6 +5,8 @@ require 'spec_helper'
describe Gitlab::JiraImport::ImportIssueWorker do
let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project) }
+ let_it_be(:jira_issue_label_1) { create(:label, project: project) }
+ let_it_be(:jira_issue_label_2) { create(:label, project: project) }
let(:some_key) { 'some-key' }
describe 'modules' do
@@ -17,7 +19,13 @@ describe Gitlab::JiraImport::ImportIssueWorker do
subject { described_class.new }
describe '#perform', :clean_gitlab_redis_cache do
- let(:issue_attrs) { build(:issue, project_id: project.id).as_json.compact }
+ let(:assignee_ids) { [user.id] }
+ let(:issue_attrs) do
+ build(:issue, project_id: project.id, title: 'jira issue')
+ .as_json.merge(
+ 'label_ids' => [jira_issue_label_1.id, jira_issue_label_2.id], 'assignee_ids' => assignee_ids
+ ).compact
+ end
context 'when any exception raised while inserting to DB' do
before do
@@ -47,14 +55,39 @@ describe Gitlab::JiraImport::ImportIssueWorker do
context 'when import label exists' do
before do
Gitlab::JiraImport.cache_import_label_id(project.id, label.id)
- end
- it 'does not record import failure' do
subject.perform(project.id, 123, issue_attrs, some_key)
+ end
+ it 'does not record import failure' do
expect(label.issues.count).to eq(1)
expect(Gitlab::Cache::Import::Caching.read(Gitlab::JiraImport.failed_issues_counter_cache_key(project.id)).to_i).to eq(0)
end
+
+ it 'creates an issue with the correct attributes' do
+ issue = Issue.last
+
+ expect(issue.title).to eq('jira issue')
+ expect(issue.project).to eq(project)
+ expect(issue.labels).to match_array([label, jira_issue_label_1, jira_issue_label_2])
+ expect(issue.assignees).to eq([user])
+ end
+
+ context 'when assignee_ids is nil' do
+ let(:assignee_ids) { nil }
+
+ it 'creates an issue without assignee' do
+ expect(Issue.last.assignees).to be_empty
+ end
+ end
+
+ context 'when assignee_ids is an empty array' do
+ let(:assignee_ids) { [] }
+
+ it 'creates an issue without assignee' do
+ expect(Issue.last.assignees).to be_empty
+ end
+ end
end
end
end