summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/jira_import/issues_importer_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/gitlab/jira_import/issues_importer_spec.rb')
-rw-r--r--spec/lib/gitlab/jira_import/issues_importer_spec.rb50
1 files changed, 4 insertions, 46 deletions
diff --git a/spec/lib/gitlab/jira_import/issues_importer_spec.rb b/spec/lib/gitlab/jira_import/issues_importer_spec.rb
index a2a482dde7c..9f654bbcd15 100644
--- a/spec/lib/gitlab/jira_import/issues_importer_spec.rb
+++ b/spec/lib/gitlab/jira_import/issues_importer_spec.rb
@@ -40,11 +40,11 @@ RSpec.describe Gitlab::JiraImport::IssuesImporter do
context 'with results returned' do
jira_issue = Struct.new(:id)
- let_it_be(:jira_issues) { [jira_issue.new(1), jira_issue.new(2), jira_issue.new(3)] }
+ let_it_be(:jira_issues) { [jira_issue.new(1), jira_issue.new(2)] }
def mock_issue_serializer(count, raise_exception_on_even_mocks: false)
serializer = instance_double(Gitlab::JiraImport::IssueSerializer, execute: { key: 'data' })
- next_iid = project.issues.maximum(:iid).to_i
+ allow(Issue).to receive(:with_project_iid_supply).and_return('issue_iid')
count.times do |i|
if raise_exception_on_even_mocks && i.even?
@@ -53,16 +53,15 @@ RSpec.describe Gitlab::JiraImport::IssuesImporter do
jira_issues[i],
current_user.id,
default_issue_type_id,
- { iid: next_iid + 1 }
+ { iid: 'issue_iid' }
).and_raise('Some error')
else
- next_iid += 1
expect(Gitlab::JiraImport::IssueSerializer).to receive(:new).with(
project,
jira_issues[i],
current_user.id,
default_issue_type_id,
- { iid: next_iid }
+ { iid: 'issue_iid' }
).and_return(serializer)
end
end
@@ -125,47 +124,6 @@ RSpec.describe Gitlab::JiraImport::IssuesImporter do
expect(Gitlab::JiraImport.get_issues_next_start_at(project.id)).to eq(2)
end
end
-
- context 'when number of issues is above the threshold' do
- before do
- stub_const("#{described_class.name}::JIRA_IMPORT_THRESHOLD", 2)
- stub_const("#{described_class.name}::JIRA_IMPORT_PAUSE_LIMIT", 1)
- allow(Gitlab::ErrorTracking).to receive(:track_exception)
- allow_next_instance_of(Gitlab::JobWaiter) do |job_waiter|
- allow(job_waiter).to receive(:wait).with(5).and_return(job_waiter.wait(0.1))
- end
- end
-
- it 'schedules 2 import jobs with two pause points' do
- expect(subject).to receive(:fetch_issues).with(0).and_return([jira_issues[0], jira_issues[1], jira_issues[2]])
- expect(Gitlab::JiraImport::ImportIssueWorker).to receive(:perform_async).exactly(3).times
- expect(Gitlab::JiraImport::ImportIssueWorker)
- .to receive(:queue_size)
- .exactly(6).times
- .and_return(1, 2, 3, 2, 1, 0)
-
- mock_issue_serializer(3)
-
- expect(subject.execute).to have_received(:wait).with(5).twice
- end
-
- it 'tracks the exception if the queue size does not reduce' do
- expect(subject).to receive(:fetch_issues).with(0).and_return([jira_issues[0]])
- expect(Gitlab::JiraImport::ImportIssueWorker).not_to receive(:perform_async)
- expect(Gitlab::JiraImport::ImportIssueWorker)
- .to receive(:queue_size)
- .exactly(11).times
- .and_return(3)
-
- mock_issue_serializer(1)
-
- expect(subject.execute).to have_received(:wait).with(5).exactly(10).times
- expect(Gitlab::ErrorTracking)
- .to have_received(:track_exception)
- .with(described_class::RetriesExceededError, { project_id: project.id })
- .once
- end
- end
end
end
end