Commit 928fbeeec057692d923146994c4b8dff57024417

Authored by Dmitriy Zaporozhets
1 parent 1b5fb4ac

More tests for Isses services

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
spec/services/issues/close_service_spec.rb 0 → 100644
... ... @@ -0,0 +1,35 @@
  1 +require 'spec_helper'
  2 +
  3 +describe Issues::CloseService do
  4 + let(:project) { create(:empty_project) }
  5 + let(:user) { create(:user) }
  6 + let(:user2) { create(:user) }
  7 + let(:issue) { create(:issue, assignee: user2) }
  8 +
  9 + before do
  10 + project.team << [user, :master]
  11 + project.team << [user2, :developer]
  12 + end
  13 +
  14 + describe :execute do
  15 + context "valid params" do
  16 + before do
  17 + @issue = Issues::CloseService.new(project, user, {}).execute(issue)
  18 + end
  19 +
  20 + it { @issue.should be_valid }
  21 + it { @issue.should be_closed }
  22 +
  23 + it 'should send email to user2 about assign of new issue' do
  24 + email = ActionMailer::Base.deliveries.last
  25 + email.to.first.should == user2.email
  26 + email.subject.should include(issue.title)
  27 + end
  28 +
  29 + it 'should create system note about issue reassign' do
  30 + note = @issue.notes.last
  31 + note.note.should include "Status changed to closed"
  32 + end
  33 + end
  34 + end
  35 +end
... ...
spec/services/issues/update_service_spec.rb
... ... @@ -3,15 +3,22 @@ require &#39;spec_helper&#39;
3 3 describe Issues::UpdateService do
4 4 let(:project) { create(:empty_project) }
5 5 let(:user) { create(:user) }
  6 + let(:user2) { create(:user) }
6 7 let(:issue) { create(:issue) }
7 8  
  9 + before do
  10 + project.team << [user, :master]
  11 + project.team << [user2, :developer]
  12 + end
  13 +
8 14 describe :execute do
9 15 context "valid params" do
10 16 before do
11   - project.team << [user, :master]
12 17 opts = {
13 18 title: 'New title',
14   - description: 'Also please fix'
  19 + description: 'Also please fix',
  20 + assignee_id: user2.id,
  21 + state_event: 'close'
15 22 }
16 23  
17 24 @issue = Issues::UpdateService.new(project, user, opts).execute(issue)
... ... @@ -19,6 +26,19 @@ describe Issues::UpdateService do
19 26  
20 27 it { @issue.should be_valid }
21 28 it { @issue.title.should == 'New title' }
  29 + it { @issue.assignee.should == user2 }
  30 + it { @issue.should be_closed }
  31 +
  32 + it 'should send email to user2 about assign of new issue' do
  33 + email = ActionMailer::Base.deliveries.last
  34 + email.to.first.should == user2.email
  35 + email.subject.should include(issue.title)
  36 + end
  37 +
  38 + it 'should create system note about issue reassign' do
  39 + note = @issue.notes.last
  40 + note.note.should include "Reassigned to \@#{user2.username}"
  41 + end
22 42 end
23 43 end
24 44 end
... ...