activity_notification 1.2.1 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +15 -5
  3. data/CHANGELOG.md +13 -2
  4. data/Gemfile +1 -1
  5. data/Gemfile.lock +78 -71
  6. data/README.md +64 -43
  7. data/activity_notification.gemspec +5 -4
  8. data/app/controllers/activity_notification/notifications_controller.rb +1 -1
  9. data/app/controllers/activity_notification/subscriptions_controller.rb +1 -1
  10. data/gemfiles/Gemfile.rails-4.2 +1 -1
  11. data/gemfiles/Gemfile.rails-4.2.lock +71 -62
  12. data/gemfiles/Gemfile.rails-5.0 +1 -1
  13. data/gemfiles/Gemfile.rails-5.0.lock +74 -67
  14. data/lib/activity_notification.rb +9 -2
  15. data/lib/activity_notification/apis/notification_api.rb +142 -76
  16. data/lib/activity_notification/apis/subscription_api.rb +72 -0
  17. data/lib/activity_notification/config.rb +12 -0
  18. data/lib/activity_notification/models/concerns/notifiable.rb +56 -6
  19. data/lib/activity_notification/models/concerns/notifier.rb +8 -1
  20. data/lib/activity_notification/models/concerns/subscriber.rb +13 -10
  21. data/lib/activity_notification/models/concerns/target.rb +7 -5
  22. data/lib/activity_notification/models/notification.rb +2 -270
  23. data/lib/activity_notification/models/subscription.rb +3 -101
  24. data/lib/activity_notification/optional_targets/base.rb +5 -1
  25. data/lib/activity_notification/orm/active_record.rb +16 -0
  26. data/lib/activity_notification/orm/active_record/notification.rb +252 -0
  27. data/lib/activity_notification/orm/active_record/subscription.rb +52 -0
  28. data/lib/activity_notification/orm/mongoid.rb +63 -0
  29. data/lib/activity_notification/orm/mongoid/notification.rb +255 -0
  30. data/lib/activity_notification/orm/mongoid/subscription.rb +73 -0
  31. data/lib/activity_notification/rails/routes.rb +7 -3
  32. data/lib/activity_notification/renderable.rb +5 -1
  33. data/lib/activity_notification/roles/acts_as_notifiable.rb +4 -18
  34. data/lib/activity_notification/version.rb +1 -1
  35. data/lib/generators/activity_notification/install_generator.rb +3 -5
  36. data/lib/generators/templates/activity_notification.rb +9 -4
  37. data/spec/concerns/apis/notification_api_spec.rb +27 -14
  38. data/spec/concerns/models/notifiable_spec.rb +10 -8
  39. data/spec/concerns/models/subscriber_spec.rb +12 -12
  40. data/spec/concerns/models/target_spec.rb +61 -51
  41. data/spec/controllers/subscriptions_controller_shared_examples.rb +0 -1
  42. data/spec/helpers/view_helpers_spec.rb +24 -7
  43. data/spec/models/notification_spec.rb +63 -52
  44. data/spec/models/subscription_spec.rb +6 -3
  45. data/spec/optional_targets/amazon_sns_spec.rb +8 -5
  46. data/spec/optional_targets/base_spec.rb +3 -1
  47. data/spec/optional_targets/slack_spec.rb +5 -5
  48. data/spec/rails_app/app/models/comment.rb +1 -1
  49. data/spec/rails_app/app/views/activity_notification/notifications/users/overriden/custom/_test.html.erb +1 -0
  50. data/spec/rails_app/config/application.rb +7 -0
  51. data/spec/rails_app/config/initializers/activity_notification.rb +5 -0
  52. data/spec/rails_app/config/mongoid.yml +13 -0
  53. data/spec/rails_app/db/seeds.rb +1 -1
  54. data/spec/rails_app/lib/custom_optional_targets/console_output.rb +7 -4
  55. data/spec/rails_app/lib/custom_optional_targets/wrong_target.rb +3 -0
  56. data/spec/roles/acts_as_notifiable_spec.rb +77 -16
  57. data/spec/spec_helper.rb +7 -0
  58. metadata +38 -14
@@ -216,7 +216,6 @@ shared_examples_for :subscription_controller do
216
216
 
217
217
  describe "POST #create" do
218
218
  before do
219
- test_target.subscriptions.delete_all
220
219
  expect(test_target.subscriptions.size).to eq(0)
221
220
  end
222
221
 
@@ -45,13 +45,15 @@ describe ActivityNotification::ViewHelpers, type: :helper do
45
45
  locals: { notification: notification }
46
46
  )
47
47
  end
48
-
49
- it 'handles multiple notifications of active_record' do
50
- expect(notifications.to_a.first).to receive(:render).with(self, { fallback: :default })
51
- expect(notifications.to_a.last).to receive(:render).with(self, { fallback: :default })
52
- render_notification notifications, fallback: :default
48
+
49
+ if ActivityNotification.config.orm == :active_record
50
+ it 'handles multiple notifications of active_record' do
51
+ expect(notifications.to_a.first).to receive(:render).with(self, { fallback: :default })
52
+ expect(notifications.to_a.last).to receive(:render).with(self, { fallback: :default })
53
+ render_notification notifications, fallback: :default
54
+ end
53
55
  end
54
-
56
+
55
57
  it 'handles multiple notifications of array' do
56
58
  expect(notification).to receive(:render).with(self, { fallback: :default })
57
59
  expect(notification_2).to receive(:render).with(self, { fallback: :default })
@@ -74,7 +76,7 @@ describe ActivityNotification::ViewHelpers, type: :helper do
74
76
  expect(render_notification notification)
75
77
  .to eq("Custom template root for default target: #{notification.id}")
76
78
  end
77
-
79
+
78
80
  it "renders custom notification view for specified target" do
79
81
  notification.key = 'custom.test'
80
82
  # render activity_notification/notifications/users/custom/test
@@ -98,6 +100,21 @@ describe ActivityNotification::ViewHelpers, type: :helper do
98
100
  })
99
101
  render_notification notification, layout: 'test'
100
102
  end
103
+
104
+ context "with defined overriding_notification_template_key in notifiable model" do
105
+ it "renders overriden custom notification view" do
106
+ notification.key = 'custom.test'
107
+ module AdditionalMethods
108
+ def overriding_notification_template_key(target, key)
109
+ 'overriden.custom.test'
110
+ end
111
+ end
112
+ notification.notifiable.extend(AdditionalMethods)
113
+ # render activity_notification/notifications/users/overriden/custom/test
114
+ expect(render_notification notification, target: :users)
115
+ .to eq("Overriden custom template root for user target: #{notification.id}")
116
+ end
117
+ end
101
118
  end
102
119
  end
103
120
 
@@ -25,13 +25,13 @@ describe ActivityNotification::Notification, type: :model do
25
25
  it "belongs to notification as group_owner" do
26
26
  group_owner = create(:notification, group_owner: nil)
27
27
  group_member = create(:notification, group_owner: group_owner)
28
- expect(group_member.reload.group_owner).to eq(group_owner)
28
+ expect(group_member.reload.group_owner.becomes(ActivityNotification::Notification)).to eq(group_owner)
29
29
  end
30
30
 
31
31
  it "has many notifications as group_members" do
32
32
  group_owner = create(:notification, group_owner: nil)
33
33
  group_member = create(:notification, group_owner: group_owner)
34
- expect(group_owner.reload.group_members.first).to eq(group_member)
34
+ expect(group_owner.reload.group_members.first.becomes(ActivityNotification::Notification)).to eq(group_member)
35
35
  end
36
36
 
37
37
  it "belongs to notifier" do
@@ -42,8 +42,16 @@ describe ActivityNotification::Notification, type: :model do
42
42
  end
43
43
 
44
44
  describe "with serializable column" do
45
- it "has parameters for hash" do
46
- parameters = {a: 1, b: 2, c: 3}
45
+ if ActivityNotification.config.orm == :active_record
46
+ it "has parameters for hash with symbol" do
47
+ parameters = {a: 1, b: 2, c: 3}
48
+ notification = create(:notification, parameters: parameters)
49
+ expect(notification.reload.parameters).to eq(parameters)
50
+ end
51
+ end
52
+
53
+ it "has parameters for hash with string" do
54
+ parameters = {'a' => 1, 'b' => 2, 'c' => 3}
47
55
  notification = create(:notification, parameters: parameters)
48
56
  expect(notification.reload.parameters).to eq(parameters)
49
57
  end
@@ -87,81 +95,81 @@ describe ActivityNotification::Notification, type: :model do
87
95
 
88
96
  it "works with group_owners_only scope" do
89
97
  notifications = ActivityNotification::Notification.group_owners_only
90
- expect(notifications.size).to eq(2)
91
- expect(notifications.where(opened_at: nil).first).to eq(@unopened_group_owner)
92
- expect(notifications.where.not(opened_at: nil).first).to eq(@opened_group_owner)
98
+ expect(notifications.to_a.size).to eq(2)
99
+ expect(notifications.unopened_only.first).to eq(@unopened_group_owner)
100
+ expect(notifications.opened_only!.first).to eq(@opened_group_owner)
93
101
  end
94
102
 
95
103
  it "works with group_members_only scope" do
96
104
  notifications = ActivityNotification::Notification.group_members_only
97
- expect(notifications.size).to eq(2)
98
- expect(notifications.where(opened_at: nil).first).to eq(@unopened_group_member)
99
- expect(notifications.where.not(opened_at: nil).first).to eq(@opened_group_member)
105
+ expect(notifications.to_a.size).to eq(2)
106
+ expect(notifications.unopened_only.first).to eq(@unopened_group_member)
107
+ expect(notifications.opened_only!.first).to eq(@opened_group_member)
100
108
  end
101
109
 
102
110
  it "works with unopened_only scope" do
103
111
  notifications = ActivityNotification::Notification.unopened_only
104
- expect(notifications.size).to eq(2)
105
- expect(notifications.where(group_owner: nil).first).to eq(@unopened_group_owner)
106
- expect(notifications.where.not(group_owner: nil).first).to eq(@unopened_group_member)
112
+ expect(notifications.to_a.size).to eq(2)
113
+ expect(notifications.group_owners_only.first).to eq(@unopened_group_owner)
114
+ expect(notifications.group_members_only.first).to eq(@unopened_group_member)
107
115
  end
108
116
 
109
117
  it "works with unopened_index scope" do
110
118
  notifications = ActivityNotification::Notification.unopened_index
111
- expect(notifications.size).to eq(1)
119
+ expect(notifications.to_a.size).to eq(1)
112
120
  expect(notifications.first).to eq(@unopened_group_owner)
113
121
  end
114
122
 
115
123
  it "works with opened_only! scope" do
116
124
  notifications = ActivityNotification::Notification.opened_only!
117
- expect(notifications.size).to eq(2)
118
- expect(notifications.where(group_owner: nil).first).to eq(@opened_group_owner)
119
- expect(notifications.where.not(group_owner: nil).first).to eq(@opened_group_member)
125
+ expect(notifications.to_a.size).to eq(2)
126
+ expect(notifications.group_owners_only.first).to eq(@opened_group_owner)
127
+ expect(notifications.group_members_only.first).to eq(@opened_group_member)
120
128
  end
121
129
 
122
130
  context "with opened_only scope" do
123
131
  it "works" do
124
132
  notifications = ActivityNotification::Notification.opened_only(4)
125
- expect(notifications.size).to eq(2)
126
- expect(notifications.where(group_owner: nil).first).to eq(@opened_group_owner)
127
- expect(notifications.where.not(group_owner: nil).first).to eq(@opened_group_member)
133
+ expect(notifications.to_a.size).to eq(2)
134
+ expect(notifications.group_owners_only.first).to eq(@opened_group_owner)
135
+ expect(notifications.group_members_only.first).to eq(@opened_group_member)
128
136
  end
129
137
 
130
138
  it "works with limit" do
131
139
  notifications = ActivityNotification::Notification.opened_only(1)
132
- expect(notifications.size).to eq(1)
140
+ expect(notifications.to_a.size).to eq(1)
133
141
  end
134
142
  end
135
143
 
136
144
  context "with opened_index scope" do
137
145
  it "works" do
138
146
  notifications = ActivityNotification::Notification.opened_index(4)
139
- expect(notifications.size).to eq(1)
147
+ expect(notifications.to_a.size).to eq(1)
140
148
  expect(notifications.first).to eq(@opened_group_owner)
141
149
  end
142
150
 
143
151
  it "works with limit" do
144
152
  notifications = ActivityNotification::Notification.opened_index(0)
145
- expect(notifications.size).to eq(0)
153
+ expect(notifications.to_a.size).to eq(0)
146
154
  end
147
155
  end
148
156
 
149
157
  it "works with unopened_index_group_members_only scope" do
150
158
  notifications = ActivityNotification::Notification.unopened_index_group_members_only
151
- expect(notifications.size).to eq(1)
159
+ expect(notifications.to_a.size).to eq(1)
152
160
  expect(notifications.first).to eq(@unopened_group_member)
153
161
  end
154
162
 
155
163
  context "with opened_index_group_members_only scope" do
156
164
  it "works" do
157
165
  notifications = ActivityNotification::Notification.opened_index_group_members_only(4)
158
- expect(notifications.size).to eq(1)
166
+ expect(notifications.to_a.size).to eq(1)
159
167
  expect(notifications.first).to eq(@opened_group_member)
160
168
  end
161
169
 
162
170
  it "works with limit" do
163
171
  notifications = ActivityNotification::Notification.opened_index_group_members_only(0)
164
- expect(notifications.size).to eq(0)
172
+ expect(notifications.to_a.size).to eq(0)
165
173
  end
166
174
  end
167
175
  end
@@ -177,46 +185,46 @@ describe ActivityNotification::Notification, type: :model do
177
185
 
178
186
  it "works with filtered_by_target scope" do
179
187
  notifications = ActivityNotification::Notification.filtered_by_target(@target_1)
180
- expect(notifications.size).to eq(1)
188
+ expect(notifications.to_a.size).to eq(1)
181
189
  expect(notifications.first).to eq(@notification_1)
182
190
  notifications = ActivityNotification::Notification.filtered_by_target(@target_2)
183
- expect(notifications.size).to eq(1)
191
+ expect(notifications.to_a.size).to eq(1)
184
192
  expect(notifications.first).to eq(@notification_2)
185
193
  end
186
194
 
187
195
  it "works with filtered_by_instance scope" do
188
196
  notifications = ActivityNotification::Notification.filtered_by_instance(@notifiable_1)
189
- expect(notifications.size).to eq(1)
197
+ expect(notifications.to_a.size).to eq(1)
190
198
  expect(notifications.first).to eq(@notification_1)
191
199
  notifications = ActivityNotification::Notification.filtered_by_instance(@notifiable_2)
192
- expect(notifications.size).to eq(1)
200
+ expect(notifications.to_a.size).to eq(1)
193
201
  expect(notifications.first).to eq(@notification_2)
194
202
  end
195
203
 
196
204
  it "works with filtered_by_type scope" do
197
205
  notifications = ActivityNotification::Notification.filtered_by_type(@notifiable_1.to_class_name)
198
- expect(notifications.size).to eq(1)
206
+ expect(notifications.to_a.size).to eq(1)
199
207
  expect(notifications.first).to eq(@notification_1)
200
208
  notifications = ActivityNotification::Notification.filtered_by_type(@notifiable_2.to_class_name)
201
- expect(notifications.size).to eq(1)
209
+ expect(notifications.to_a.size).to eq(1)
202
210
  expect(notifications.first).to eq(@notification_2)
203
211
  end
204
212
 
205
213
  it "works with filtered_by_group scope" do
206
214
  notifications = ActivityNotification::Notification.filtered_by_group(@group_1)
207
- expect(notifications.size).to eq(1)
215
+ expect(notifications.to_a.size).to eq(1)
208
216
  expect(notifications.first).to eq(@notification_1)
209
217
  notifications = ActivityNotification::Notification.filtered_by_group(@group_2)
210
- expect(notifications.size).to eq(1)
218
+ expect(notifications.to_a.size).to eq(1)
211
219
  expect(notifications.first).to eq(@notification_2)
212
220
  end
213
221
 
214
222
  it "works with filtered_by_key scope" do
215
223
  notifications = ActivityNotification::Notification.filtered_by_key(@key_1)
216
- expect(notifications.size).to eq(1)
224
+ expect(notifications.to_a.size).to eq(1)
217
225
  expect(notifications.first).to eq(@notification_1)
218
226
  notifications = ActivityNotification::Notification.filtered_by_key(@key_2)
219
- expect(notifications.size).to eq(1)
227
+ expect(notifications.to_a.size).to eq(1)
220
228
  expect(notifications.first).to eq(@notification_2)
221
229
  end
222
230
 
@@ -224,10 +232,10 @@ describe ActivityNotification::Notification, type: :model do
224
232
  context 'with filtered_by_type options' do
225
233
  it "works with filtered_by_options scope" do
226
234
  notifications = ActivityNotification::Notification.filtered_by_options({ filtered_by_type: @notifiable_1.to_class_name })
227
- expect(notifications.size).to eq(1)
235
+ expect(notifications.to_a.size).to eq(1)
228
236
  expect(notifications.first).to eq(@notification_1)
229
237
  notifications = ActivityNotification::Notification.filtered_by_options({ filtered_by_type: @notifiable_2.to_class_name })
230
- expect(notifications.size).to eq(1)
238
+ expect(notifications.to_a.size).to eq(1)
231
239
  expect(notifications.first).to eq(@notification_2)
232
240
  end
233
241
  end
@@ -235,10 +243,10 @@ describe ActivityNotification::Notification, type: :model do
235
243
  context 'with filtered_by_group options' do
236
244
  it "works with filtered_by_options scope" do
237
245
  notifications = ActivityNotification::Notification.filtered_by_options({ filtered_by_group: @group_1 })
238
- expect(notifications.size).to eq(1)
246
+ expect(notifications.to_a.size).to eq(1)
239
247
  expect(notifications.first).to eq(@notification_1)
240
248
  notifications = ActivityNotification::Notification.filtered_by_options({ filtered_by_group: @group_2 })
241
- expect(notifications.size).to eq(1)
249
+ expect(notifications.to_a.size).to eq(1)
242
250
  expect(notifications.first).to eq(@notification_2)
243
251
  end
244
252
  end
@@ -246,33 +254,36 @@ describe ActivityNotification::Notification, type: :model do
246
254
  context 'with filtered_by_group_type and :filtered_by_group_id options' do
247
255
  it "works with filtered_by_options scope" do
248
256
  notifications = ActivityNotification::Notification.filtered_by_options({ filtered_by_group_type: 'Article', filtered_by_group_id: @group_2.id.to_s })
249
- expect(notifications.size).to eq(1)
257
+ expect(notifications.to_a.size).to eq(1)
250
258
  expect(notifications.first).to eq(@notification_2)
251
259
  notifications = ActivityNotification::Notification.filtered_by_options({ filtered_by_group_type: 'Article' })
252
- expect(notifications.size).to eq(2)
260
+ expect(notifications.to_a.size).to eq(2)
253
261
  notifications = ActivityNotification::Notification.filtered_by_options({ filtered_by_group_id: @group_2.id.to_s })
254
- expect(notifications.size).to eq(2)
262
+ expect(notifications.to_a.size).to eq(2)
255
263
  end
256
264
  end
257
265
 
258
266
  context 'with filtered_by_key options' do
259
267
  it "works with filtered_by_options scope" do
260
268
  notifications = ActivityNotification::Notification.filtered_by_options({ filtered_by_key: @key_1 })
261
- expect(notifications.size).to eq(1)
269
+ expect(notifications.to_a.size).to eq(1)
262
270
  expect(notifications.first).to eq(@notification_1)
263
271
  notifications = ActivityNotification::Notification.filtered_by_options({ filtered_by_key: @key_2 })
264
- expect(notifications.size).to eq(1)
272
+ expect(notifications.to_a.size).to eq(1)
265
273
  expect(notifications.first).to eq(@notification_2)
266
274
  end
267
275
  end
268
276
 
269
277
  context 'with custom_filter options' do
270
278
  it "works with filtered_by_options scope" do
271
- notifications = ActivityNotification::Notification.filtered_by_options({ custom_filter: ["key = ?", @key_1] })
272
- expect(notifications.size).to eq(1)
273
- expect(notifications.first).to eq(@notification_1)
279
+ if ActivityNotification.config.orm == :active_record
280
+ notifications = ActivityNotification::Notification.filtered_by_options({ custom_filter: ["key = ?", @key_1] })
281
+ expect(notifications.to_a.size).to eq(1)
282
+ expect(notifications.first).to eq(@notification_1)
283
+ end
284
+
274
285
  notifications = ActivityNotification::Notification.filtered_by_options({ custom_filter: { key: @key_2 } })
275
- expect(notifications.size).to eq(1)
286
+ expect(notifications.to_a.size).to eq(1)
276
287
  expect(notifications.first).to eq(@notification_2)
277
288
  end
278
289
  end
@@ -280,7 +291,7 @@ describe ActivityNotification::Notification, type: :model do
280
291
  context 'with no options' do
281
292
  it "works with filtered_by_options scope" do
282
293
  notifications = ActivityNotification::Notification.filtered_by_options
283
- expect(notifications.size).to eq(2)
294
+ expect(notifications.to_a.size).to eq(2)
284
295
  end
285
296
  end
286
297
  end
@@ -299,14 +310,14 @@ describe ActivityNotification::Notification, type: :model do
299
310
 
300
311
  it "works with latest_order scope" do
301
312
  notifications = ActivityNotification::Notification.latest_order
302
- expect(notifications.size).to eq(4)
313
+ expect(notifications.to_a.size).to eq(4)
303
314
  expect(notifications.first).to eq(@latest_notification)
304
315
  expect(notifications.last).to eq(@earliest_notification)
305
316
  end
306
317
 
307
318
  it "works with earliest_order scope" do
308
319
  notifications = ActivityNotification::Notification.earliest_order
309
- expect(notifications.size).to eq(4)
320
+ expect(notifications.to_a.size).to eq(4)
310
321
  expect(notifications.first).to eq(@earliest_notification)
311
322
  expect(notifications.last).to eq(@latest_notification)
312
323
  end
@@ -92,9 +92,12 @@ describe ActivityNotification::Subscription, type: :model do
92
92
 
93
93
  context 'with custom_filter options' do
94
94
  it "works with filtered_by_options scope" do
95
- subscriptions = ActivityNotification::Subscription.filtered_by_options({ custom_filter: ["key = ?", @key_1] })
96
- expect(subscriptions.size).to eq(1)
97
- expect(subscriptions.first).to eq(@subscription_1)
95
+ if ActivityNotification.config.orm == :active_record
96
+ subscriptions = ActivityNotification::Subscription.filtered_by_options({ custom_filter: ["key = ?", @key_1] })
97
+ expect(subscriptions.size).to eq(1)
98
+ expect(subscriptions.first).to eq(@subscription_1)
99
+ end
100
+
98
101
  subscriptions = ActivityNotification::Subscription.filtered_by_options({ custom_filter: { key: @key_2 } })
99
102
  expect(subscriptions.size).to eq(1)
100
103
  expect(subscriptions.first).to eq(@subscription_2)
@@ -1,6 +1,6 @@
1
1
  require 'activity_notification/optional_targets/amazon_sns'
2
2
  describe ActivityNotification::OptionalTarget::AmazonSNS do
3
- let(:test_instance) { ActivityNotification::OptionalTarget::AmazonSNS.new }
3
+ let(:test_instance) { ActivityNotification::OptionalTarget::AmazonSNS.new(skip_initializing_target: true) }
4
4
 
5
5
  describe "as public instance methods" do
6
6
  describe "#to_optional_target_name" do
@@ -12,16 +12,19 @@ describe ActivityNotification::OptionalTarget::AmazonSNS do
12
12
  describe "#initialize_target" do
13
13
  #TODO
14
14
  it "does not raise NotImplementedError" do
15
- expect { test_instance.initialize_target }
16
- .not_to raise_error(NotImplementedError)
15
+ begin
16
+ test_instance.initialize_target
17
+ rescue Aws::Errors::MissingRegionError
18
+ # Rescue for CI without AWS client configuration
19
+ end
17
20
  end
18
21
  end
19
22
 
20
23
  describe "#notify" do
21
24
  #TODO
22
- it "raises NotImplementedError" do
25
+ it "does not raise NotImplementedError but NoMethodError" do
23
26
  expect { test_instance.notify(create(:notification)) }
24
- .not_to raise_error(NotImplementedError)
27
+ .to raise_error(NoMethodError)
25
28
  end
26
29
  end
27
30
  end
@@ -1,5 +1,7 @@
1
1
  describe ActivityNotification::OptionalTarget::Base do
2
- let(:test_instance) { ActivityNotification::OptionalTarget::Base.new }
2
+ let(:test_instance) {
3
+ ActivityNotification::OptionalTarget::Base.new(skip_initializing_target: true)
4
+ }
3
5
 
4
6
  describe "as public instance methods" do
5
7
  describe "#to_optional_target_name" do
@@ -1,6 +1,6 @@
1
1
  require 'activity_notification/optional_targets/slack'
2
2
  describe ActivityNotification::OptionalTarget::Slack do
3
- let(:test_instance) { ActivityNotification::OptionalTarget::Slack.new }
3
+ let(:test_instance) { ActivityNotification::OptionalTarget::Slack.new(skip_initializing_target: true) }
4
4
 
5
5
  describe "as public instance methods" do
6
6
  describe "#to_optional_target_name" do
@@ -11,17 +11,17 @@ describe ActivityNotification::OptionalTarget::Slack do
11
11
 
12
12
  describe "#initialize_target" do
13
13
  #TODO
14
- it "does not raise NotImplementedError" do
14
+ it "does not raise NotImplementedError but URI::InvalidURIError" do
15
15
  expect { test_instance.initialize_target }
16
- .not_to raise_error(NotImplementedError)
16
+ .to raise_error(URI::InvalidURIError)
17
17
  end
18
18
  end
19
19
 
20
20
  describe "#notify" do
21
21
  #TODO
22
- it "raises NotImplementedError" do
22
+ it "does not raise NotImplementedError but NoMethodError" do
23
23
  expect { test_instance.notify(create(:notification)) }
24
- .not_to raise_error(NotImplementedError)
24
+ .to raise_error(NoMethodError)
25
25
  end
26
26
  end
27
27
  end
@@ -7,7 +7,7 @@ class Comment < ActiveRecord::Base
7
7
  acts_as_notifiable :users,
8
8
  targets: ->(comment, key) { ([comment.article.user] + comment.article.commented_users.to_a - [comment.user]).uniq },
9
9
  group: :article, notifier: :user, email_allowed: true,
10
- parameters: { test_default_param: '1' },
10
+ parameters: { 'test_default_param' => '1' },
11
11
  notifiable_path: :article_notifiable_path,
12
12
  printable_name: ->(comment) { "comment \"#{comment.body}\"" },
13
13
  dependent_notifications: :update_group_and_delete_all