Commit 65cd9829eecd2485f17eaadf84107631d5a723d9
1 parent
6ae25290
Exists in
spb-stable
and in
3 other branches
Remove MergeRequest observer
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Showing
3 changed files
with
0 additions
and
175 deletions
Show diff stats
app/observers/merge_request_observer.rb
| ... | ... | @@ -1,43 +0,0 @@ |
| 1 | -class MergeRequestObserver < BaseObserver | |
| 2 | - def after_create(merge_request) | |
| 3 | - event_service.open_mr(merge_request, current_user) | |
| 4 | - notification.new_merge_request(merge_request, current_user) | |
| 5 | - merge_request.create_cross_references!(merge_request.project, current_user) | |
| 6 | - execute_hooks(merge_request) | |
| 7 | - end | |
| 8 | - | |
| 9 | - def after_close(merge_request, transition) | |
| 10 | - event_service.close_mr(merge_request, current_user) | |
| 11 | - notification.close_mr(merge_request, current_user) | |
| 12 | - create_note(merge_request) | |
| 13 | - execute_hooks(merge_request) | |
| 14 | - end | |
| 15 | - | |
| 16 | - def after_reopen(merge_request, transition) | |
| 17 | - event_service.reopen_mr(merge_request, current_user) | |
| 18 | - create_note(merge_request) | |
| 19 | - execute_hooks(merge_request) | |
| 20 | - merge_request.reload_code | |
| 21 | - merge_request.mark_as_unchecked | |
| 22 | - end | |
| 23 | - | |
| 24 | - def after_update(merge_request) | |
| 25 | - notification.reassigned_merge_request(merge_request, current_user) if merge_request.is_being_reassigned? | |
| 26 | - | |
| 27 | - merge_request.notice_added_references(merge_request.project, current_user) | |
| 28 | - execute_hooks(merge_request) | |
| 29 | - end | |
| 30 | - | |
| 31 | - private | |
| 32 | - | |
| 33 | - # Create merge request note with service comment like 'Status changed to closed' | |
| 34 | - def create_note(merge_request) | |
| 35 | - Note.create_status_change_note(merge_request, merge_request.target_project, current_user, merge_request.state, nil) | |
| 36 | - end | |
| 37 | - | |
| 38 | - def execute_hooks(merge_request) | |
| 39 | - if merge_request.project | |
| 40 | - merge_request.project.execute_hooks(merge_request.to_hook_data, :merge_request_hooks) | |
| 41 | - end | |
| 42 | - end | |
| 43 | -end |
config/application.rb
| ... | ... | @@ -21,7 +21,6 @@ module Gitlab |
| 21 | 21 | # Activate observers that should always be running. |
| 22 | 22 | config.active_record.observers = :milestone_observer, |
| 23 | 23 | :project_activity_cache_observer, |
| 24 | - :merge_request_observer, | |
| 25 | 24 | :note_observer, |
| 26 | 25 | :project_observer, |
| 27 | 26 | :system_hook_observer, | ... | ... |
spec/observers/merge_request_observer_spec.rb
| ... | ... | @@ -1,131 +0,0 @@ |
| 1 | -require 'spec_helper' | |
| 2 | - | |
| 3 | -describe MergeRequestObserver do | |
| 4 | - let(:some_user) { create :user } | |
| 5 | - let(:assignee) { create :user } | |
| 6 | - let(:author) { create :user } | |
| 7 | - let(:project) { create :project } | |
| 8 | - let(:mr_mock) { double(:merge_request, id: 42, assignee: assignee, author: author).as_null_object } | |
| 9 | - let(:assigned_mr) { create(:merge_request, assignee: assignee, author: author, source_project: project) } | |
| 10 | - let(:unassigned_mr) { create(:merge_request, author: author, source_project: project) } | |
| 11 | - let(:closed_assigned_mr) { create(:closed_merge_request, assignee: assignee, author: author, source_project: project) } | |
| 12 | - let(:closed_unassigned_mr) { create(:closed_merge_request, author: author, source_project: project) } | |
| 13 | - | |
| 14 | - before { subject.stub(:current_user).and_return(some_user) } | |
| 15 | - before { subject.stub(notification: double('NotificationService').as_null_object) } | |
| 16 | - before { mr_mock.stub(:author_id) } | |
| 17 | - before { mr_mock.stub(:source_project) } | |
| 18 | - before { mr_mock.stub(:source_project) } | |
| 19 | - before { mr_mock.stub(:project) } | |
| 20 | - before { mr_mock.stub(:create_cross_references!).and_return(true) } | |
| 21 | - before { Repository.any_instance.stub(commit: nil) } | |
| 22 | - | |
| 23 | - before(:each) { enable_observers } | |
| 24 | - after(:each) { disable_observers } | |
| 25 | - | |
| 26 | - subject { MergeRequestObserver.instance } | |
| 27 | - | |
| 28 | - describe '#after_create' do | |
| 29 | - it 'trigger notification service' do | |
| 30 | - subject.should_receive(:notification) | |
| 31 | - subject.after_create(mr_mock) | |
| 32 | - end | |
| 33 | - | |
| 34 | - it 'creates cross-reference notes' do | |
| 35 | - project = create :project | |
| 36 | - mr_mock.stub(title: "this mr references !#{assigned_mr.id}", project: project) | |
| 37 | - mr_mock.should_receive(:create_cross_references!).with(project, some_user) | |
| 38 | - | |
| 39 | - subject.after_create(mr_mock) | |
| 40 | - end | |
| 41 | - end | |
| 42 | - | |
| 43 | - context '#after_update' do | |
| 44 | - before(:each) do | |
| 45 | - mr_mock.stub(:is_being_reassigned?).and_return(false) | |
| 46 | - mr_mock.stub(:notice_added_references) | |
| 47 | - end | |
| 48 | - | |
| 49 | - it 'is called when a merge request is changed' do | |
| 50 | - changed = create(:merge_request, source_project: project) | |
| 51 | - subject.should_receive(:after_update) | |
| 52 | - | |
| 53 | - MergeRequest.observers.enable :merge_request_observer do | |
| 54 | - changed.title = 'I changed' | |
| 55 | - changed.save | |
| 56 | - end | |
| 57 | - end | |
| 58 | - | |
| 59 | - it 'checks for new references' do | |
| 60 | - mr_mock.should_receive(:notice_added_references) | |
| 61 | - | |
| 62 | - subject.after_update(mr_mock) | |
| 63 | - end | |
| 64 | - | |
| 65 | - context 'a notification' do | |
| 66 | - it 'is sent if the merge request is being reassigned' do | |
| 67 | - mr_mock.should_receive(:is_being_reassigned?).and_return(true) | |
| 68 | - subject.should_receive(:notification) | |
| 69 | - | |
| 70 | - subject.after_update(mr_mock) | |
| 71 | - end | |
| 72 | - | |
| 73 | - it 'is not sent if the merge request is not being reassigned' do | |
| 74 | - mr_mock.should_receive(:is_being_reassigned?).and_return(false) | |
| 75 | - subject.should_not_receive(:notification) | |
| 76 | - | |
| 77 | - subject.after_update(mr_mock) | |
| 78 | - end | |
| 79 | - end | |
| 80 | - end | |
| 81 | - | |
| 82 | - context '#after_close' do | |
| 83 | - context 'a status "closed"' do | |
| 84 | - it 'note is created if the merge request is being closed' do | |
| 85 | - Note.should_receive(:create_status_change_note).with(assigned_mr, assigned_mr.source_project, some_user, 'closed', nil) | |
| 86 | - | |
| 87 | - assigned_mr.close | |
| 88 | - end | |
| 89 | - | |
| 90 | - it 'notification is delivered only to author if the merge request is being closed' do | |
| 91 | - Note.should_receive(:create_status_change_note).with(unassigned_mr, unassigned_mr.source_project, some_user, 'closed', nil) | |
| 92 | - | |
| 93 | - unassigned_mr.close | |
| 94 | - end | |
| 95 | - end | |
| 96 | - end | |
| 97 | - | |
| 98 | - context '#after_reopen' do | |
| 99 | - context 'a status "reopened"' do | |
| 100 | - it 'note is created if the merge request is being reopened' do | |
| 101 | - Note.should_receive(:create_status_change_note).with(closed_assigned_mr, closed_assigned_mr.source_project, some_user, 'reopened', nil) | |
| 102 | - | |
| 103 | - closed_assigned_mr.reopen | |
| 104 | - end | |
| 105 | - | |
| 106 | - it 'notification is delivered only to author if the merge request is being reopened' do | |
| 107 | - Note.should_receive(:create_status_change_note).with(closed_unassigned_mr, closed_unassigned_mr.source_project, some_user, 'reopened', nil) | |
| 108 | - | |
| 109 | - closed_unassigned_mr.reopen | |
| 110 | - end | |
| 111 | - end | |
| 112 | - end | |
| 113 | - | |
| 114 | - describe "Merge Request created" do | |
| 115 | - def self.it_should_be_valid_event | |
| 116 | - it { @event.should_not be_nil } | |
| 117 | - it { @event.should_not be_nil } | |
| 118 | - it { @event.project.should == project } | |
| 119 | - it { @event.project.should == project } | |
| 120 | - end | |
| 121 | - | |
| 122 | - before do | |
| 123 | - @merge_request = create(:merge_request, source_project: project, target_project: project) | |
| 124 | - @event = Event.last | |
| 125 | - end | |
| 126 | - | |
| 127 | - it_should_be_valid_event | |
| 128 | - it { @event.action.should == Event::CREATED } | |
| 129 | - it { @event.target.should == @merge_request } | |
| 130 | - end | |
| 131 | -end |