diff options
Diffstat (limited to 'spec/lib/gitlab/jira_import/issues_importer_spec.rb')
-rw-r--r-- | spec/lib/gitlab/jira_import/issues_importer_spec.rb | 50 |
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 |