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:
Diffstat (limited to 'spec/support/shared_examples/workers/gitlab/jira_import/jira_import_workers_shared_examples.rb')
-rw-r--r--spec/support/shared_examples/workers/gitlab/jira_import/jira_import_workers_shared_examples.rb32
1 files changed, 32 insertions, 0 deletions
diff --git a/spec/support/shared_examples/workers/gitlab/jira_import/jira_import_workers_shared_examples.rb b/spec/support/shared_examples/workers/gitlab/jira_import/jira_import_workers_shared_examples.rb
new file mode 100644
index 00000000000..5448526f954
--- /dev/null
+++ b/spec/support/shared_examples/workers/gitlab/jira_import/jira_import_workers_shared_examples.rb
@@ -0,0 +1,32 @@
+# frozen_string_literal: true
+
+shared_examples 'include import workers modules' do
+ it { expect(described_class).to include_module(ApplicationWorker) }
+ it { expect(described_class).to include_module(Gitlab::JiraImport::QueueOptions) }
+
+ if described_class == Gitlab::JiraImport::Stage::StartImportWorker
+ it { expect(described_class).to include_module(ProjectStartImport) }
+ it { expect(described_class).to include_module(ProjectImportOptions) }
+ else
+ it { expect(described_class).to include_module(Gitlab::JiraImport::ImportWorker) }
+ end
+end
+
+shared_examples 'exit import not started' do
+ it 'does nothing, and exits' do
+ expect(Gitlab::JiraImport::AdvanceStageWorker).not_to receive(:perform_async)
+
+ worker.perform(project.id)
+ end
+end
+
+shared_examples 'advance to next stage' do |next_stage|
+ let(:job_waiter) { Gitlab::JobWaiter.new(2, 'some-job-key') }
+
+ it "advances to #{next_stage} stage" do
+ expect(Gitlab::JobWaiter).to receive(:new).and_return(job_waiter)
+ expect(Gitlab::JiraImport::AdvanceStageWorker).to receive(:perform_async).with(project.id, { job_waiter.key => job_waiter.jobs_remaining }, next_stage.to_sym)
+
+ worker.perform(project.id)
+ end
+end