summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/observers/users_group_observer.rb9
-rw-r--r--spec/observers/users_group_observer_spec.rb27
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