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,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,7 +21,6 @@ module Gitlab | ||
21 | # Activate observers that should always be running. | 21 | # Activate observers that should always be running. |
22 | config.active_record.observers = :milestone_observer, | 22 | config.active_record.observers = :milestone_observer, |
23 | :project_activity_cache_observer, | 23 | :project_activity_cache_observer, |
24 | - :merge_request_observer, | ||
25 | :note_observer, | 24 | :note_observer, |
26 | :project_observer, | 25 | :project_observer, |
27 | :system_hook_observer, | 26 | :system_hook_observer, |
spec/observers/merge_request_observer_spec.rb
@@ -1,131 +0,0 @@ | @@ -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 |