49 lines
1.3 KiB
Ruby
49 lines
1.3 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe Issues::MoveService, services: true do
|
|
let(:user) { create(:user) }
|
|
let(:issue) { create(:issue, title: 'Some issue', description: 'Some issue description') }
|
|
let(:current_project) { issue.project }
|
|
let(:new_project) { create(:project) }
|
|
let(:move_params) { { 'move_to_project_id' => new_project.id } }
|
|
let(:move_service) { described_class.new(current_project, user, move_params, issue) }
|
|
|
|
before do
|
|
current_project.team << [user, :master]
|
|
end
|
|
|
|
context 'issue movable' do
|
|
describe '#move?' do
|
|
subject { move_service.move? }
|
|
it { is_expected.to be_truthy }
|
|
end
|
|
|
|
describe '#execute' do
|
|
let!(:new_issue) { move_service.execute }
|
|
|
|
it 'should create a new issue in a new project' do
|
|
expect(new_issue.project).to eq new_project
|
|
end
|
|
|
|
it 'should add system note to old issue' do
|
|
expect(issue.notes.last.note).to match /^Moved to/
|
|
end
|
|
|
|
it 'should add system note to new issue' do
|
|
expect(new_issue.notes.last.note).to match /^Moved from/
|
|
end
|
|
end
|
|
end
|
|
|
|
context 'issue not movable' do
|
|
context 'move not requested' do
|
|
let(:move_params) { {} }
|
|
|
|
describe '#move?' do
|
|
subject { move_service.move? }
|
|
it { is_expected.to be_falsey }
|
|
end
|
|
end
|
|
end
|
|
end
|