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 |