1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
# frozen_string_literal: true
require 'spec_helper'
RSpec.describe WorkItems::PrepareImportCsvService, feature_category: :team_planning do
let_it_be(:project) { create(:project) }
let_it_be(:user) { create(:user) }
let(:file) { double }
let(:upload_service) { double }
let(:uploader) { double }
let(:upload) { double }
let(:subject) do
described_class.new(project, user, file: file).execute
end
context 'when file is uploaded correctly' do
let(:upload_id) { 99 }
before do
mock_upload
end
it 'returns a success message' do
result = subject
expect(result[:status]).to eq(:success)
expect(result[:message]).to eq(
"Your work items are being imported. Once finished, you'll receive a confirmation email.")
end
it 'enqueues the ImportWorkItemsCsvWorker' do
expect(WorkItems::ImportWorkItemsCsvWorker).to receive(:perform_async).with(user.id, project.id, upload_id)
subject
end
end
context 'when file upload fails' do
before do
mock_upload(false)
end
it 'returns an error message' do
result = subject
expect(result[:status]).to eq(:error)
expect(result[:message]).to eq('File upload error.')
end
end
end
|