diff options
Diffstat (limited to 'spec/workers/group_import_worker_spec.rb')
-rw-r--r-- | spec/workers/group_import_worker_spec.rb | 63 |
1 files changed, 20 insertions, 43 deletions
diff --git a/spec/workers/group_import_worker_spec.rb b/spec/workers/group_import_worker_spec.rb index fb2d49c21af..5171de7086b 100644 --- a/spec/workers/group_import_worker_spec.rb +++ b/spec/workers/group_import_worker_spec.rb @@ -3,17 +3,29 @@ require 'spec_helper' RSpec.describe GroupImportWorker do - let!(:user) { create(:user) } - let!(:group) { create(:group) } + let(:user) { create(:user) } + let(:group) { create(:group) } subject { described_class.new } before do + create(:group_import_state, group: group, user: user) + allow_next_instance_of(described_class) do |job| allow(job).to receive(:jid).and_return(SecureRandom.hex(8)) end end + describe 'sidekiq options' do + it 'disables retry' do + expect(described_class.sidekiq_options['retry']).to eq(false) + end + + it 'disables dead' do + expect(described_class.sidekiq_options['dead']).to eq(false) + end + end + describe '#perform' do context 'when it succeeds' do before do @@ -26,44 +38,11 @@ RSpec.describe GroupImportWorker do subject.perform(user.id, group.id) end - context 'when the import state does not exist' do - it 'creates group import' do - expect(group.import_state).to be_nil - - subject.perform(user.id, group.id) - import_state = group.reload.import_state - - expect(import_state).to be_instance_of(GroupImportState) - expect(import_state.status_name).to eq(:finished) - expect(import_state.jid).not_to be_empty - end - - it 'sets the group import status to started' do - expect_next_instance_of(GroupImportState) do |import| - expect(import).to receive(:start!).and_call_original - end - - subject.perform(user.id, group.id) - end - - it 'sets the group import status to finished' do - expect_next_instance_of(GroupImportState) do |import| - expect(import).to receive(:finish!).and_call_original - end - - subject.perform(user.id, group.id) - end - end - - context 'when the import state already exists' do - it 'updates the existing state' do - existing_state = create(:group_import_state, group: group) - - expect { subject.perform(user.id, group.id) } - .not_to change { GroupImportState.count } + it 'updates the existing state' do + expect { subject.perform(user.id, group.id) } + .not_to change { GroupImportState.count } - expect(existing_state.reload).to be_finished - end + expect(group.import_state.reload).to be_finished end end @@ -83,11 +62,9 @@ RSpec.describe GroupImportWorker do end it 'sets the group import status to failed' do - expect_next_instance_of(GroupImportState) do |import| - expect(import).to receive(:fail_op).and_call_original - end - expect { subject.perform(user.id, group.id) }.to raise_exception(Gitlab::ImportExport::Error) + + expect(group.import_state.reload.status).to eq(-1) end end end |