diff options
| author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-09-12 18:59:31 +0300 |
|---|---|---|
| committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-09-12 18:59:31 +0300 |
| commit | 8589824f005dc6d0c8291c454ff7ecdcadacf695 (patch) | |
| tree | 3e8111e2d39d9be790be6412f23edecd96f9ea57 | |
| parent | 73446fe15e35c6e9d077b071bec7f06f64a1b6b9 (diff) | |
| download | gitlab-ce-8589824f005dc6d0c8291c454ff7ecdcadacf695.tar.gz | |
Add UsersGroup observer
Trigger notification service when new user-group relation was created
| -rw-r--r-- | app/observers/users_group_observer.rb | 9 | ||||
| -rw-r--r-- | spec/observers/users_group_observer_spec.rb | 27 |
2 files changed, 36 insertions, 0 deletions
diff --git a/app/observers/users_group_observer.rb b/app/observers/users_group_observer.rb new file mode 100644 index 00000000000..ecdbede89d9 --- /dev/null +++ b/app/observers/users_group_observer.rb @@ -0,0 +1,9 @@ +class UsersGroupObserver < BaseObserver + def after_create(membership) + notification.new_group_member(membership) + end + + def after_update(membership) + notification.update_group_member(membership) + end +end diff --git a/spec/observers/users_group_observer_spec.rb b/spec/observers/users_group_observer_spec.rb new file mode 100644 index 00000000000..3bf562edbb7 --- /dev/null +++ b/spec/observers/users_group_observer_spec.rb @@ -0,0 +1,27 @@ +require 'spec_helper' + +describe UsersGroupObserver do + before(:each) { enable_observers } + after(:each) { disable_observers } + + subject { UsersGroupObserver.instance } + before { subject.stub(notification: mock('NotificationService').as_null_object) } + + describe "#after_create" do + it "should send email to user" do + subject.should_receive(:notification) + create(:users_group) + end + end + + describe "#after_update" do + before do + @membership = create :users_group + end + + it "should send email to user" do + subject.should_receive(:notification) + @membership.update_attribute(:group_access, UsersGroup::MASTER) + end + end +end |
