activity_notification 0.0.9 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.travis.yml +5 -0
  4. data/.yardopts +3 -0
  5. data/Gemfile +5 -0
  6. data/Gemfile.lock +50 -44
  7. data/README.md +242 -81
  8. data/Rakefile +13 -13
  9. data/activity_notification.gemspec +6 -8
  10. data/app/controllers/activity_notification/notifications_controller.rb +89 -11
  11. data/app/controllers/activity_notification/notifications_with_devise_controller.rb +12 -3
  12. data/app/mailers/activity_notification/mailer.rb +3 -0
  13. data/gemfiles/Gemfile.rails-4.2 +13 -0
  14. data/gemfiles/Gemfile.rails-4.2.lock +190 -0
  15. data/gemfiles/Gemfile.rails-5.0 +14 -0
  16. data/gemfiles/Gemfile.rails-5.0.lock +201 -0
  17. data/lib/activity_notification.rb +10 -6
  18. data/lib/activity_notification/apis/notification_api.rb +137 -27
  19. data/lib/activity_notification/common.rb +48 -24
  20. data/lib/activity_notification/config.rb +68 -10
  21. data/lib/activity_notification/controllers/store_controller.rb +13 -5
  22. data/lib/activity_notification/helpers/polymorphic_helpers.rb +17 -3
  23. data/lib/activity_notification/helpers/view_helpers.rb +161 -45
  24. data/lib/activity_notification/mailers/helpers.rb +121 -83
  25. data/lib/activity_notification/models/concerns/notifiable.rb +162 -69
  26. data/lib/activity_notification/models/concerns/notifier.rb +2 -0
  27. data/lib/activity_notification/models/concerns/target.rb +124 -25
  28. data/lib/activity_notification/models/notification.rb +168 -4
  29. data/lib/activity_notification/rails/routes.rb +50 -48
  30. data/lib/activity_notification/renderable.rb +106 -26
  31. data/lib/activity_notification/roles/acts_as_notifiable.rb +99 -26
  32. data/lib/activity_notification/roles/acts_as_notifier.rb +3 -0
  33. data/lib/activity_notification/roles/acts_as_target.rb +70 -0
  34. data/lib/activity_notification/version.rb +1 -1
  35. data/lib/generators/activity_notification/active_record/migration_generator.rb +3 -1
  36. data/lib/generators/activity_notification/controllers_generator.rb +5 -0
  37. data/lib/generators/activity_notification/install_generator.rb +7 -3
  38. data/lib/generators/activity_notification/models/notification_generator.rb +4 -2
  39. data/lib/generators/activity_notification/views_generator.rb +20 -0
  40. data/spec/concerns/apis/notification_api_spec.rb +105 -36
  41. data/spec/concerns/common_spec.rb +1 -1
  42. data/spec/concerns/models/notifiable_spec.rb +2 -2
  43. data/spec/concerns/models/notifier_spec.rb +1 -1
  44. data/spec/concerns/models/target_spec.rb +9 -8
  45. data/spec/controllers/notifications_controller_shared_examples.rb +101 -28
  46. data/spec/controllers/notifications_with_devise_controller_spec.rb +14 -4
  47. data/spec/helpers/view_helpers_spec.rb +3 -3
  48. data/spec/mailers/mailer_spec.rb +1 -1
  49. data/spec/models/notification_spec.rb +57 -3
  50. data/spec/rails_app/app/models/article.rb +1 -2
  51. data/spec/rails_app/app/models/comment.rb +8 -6
  52. data/spec/rails_app/app/models/user.rb +1 -1
  53. data/spec/rails_app/app/views/layouts/_header.html.erb +2 -0
  54. data/spec/rails_app/config/application.rb +3 -1
  55. data/spec/rails_app/config/environment.rb +12 -2
  56. data/spec/rails_app/config/environments/test.rb +11 -2
  57. data/spec/roles/acts_as_notifiable_spec.rb +2 -2
  58. data/spec/roles/acts_as_notifier_spec.rb +1 -1
  59. data/spec/roles/acts_as_target_spec.rb +3 -3
  60. data/spec/spec_helper.rb +6 -0
  61. metadata +35 -40
  62. data/spec/rails_app/app/models/concerns/.keep +0 -0
@@ -3,7 +3,7 @@ shared_examples_for :common do
3
3
  let(:test_instance) { create(test_class_name) }
4
4
 
5
5
  describe "as public ActivityNotification methods with described class" do
6
- describe "#resolve_value" do
6
+ describe ".resolve_value" do
7
7
  before do
8
8
  allow(ActivityNotification).to receive(:get_controller).and_return('StubController')
9
9
  end
@@ -6,13 +6,13 @@ shared_examples_for :notifiable do
6
6
  include Rails.application.routes.url_helpers
7
7
 
8
8
  describe "as public class methods" do
9
- describe "#available_as_notifiable?" do
9
+ describe ".available_as_notifiable?" do
10
10
  it "returns true" do
11
11
  expect(described_class.available_as_notifiable?).to be_truthy
12
12
  end
13
13
  end
14
14
 
15
- describe "#set_notifiable_class_defaults" do
15
+ describe ".set_notifiable_class_defaults" do
16
16
  it "set parameter fields as default" do
17
17
  described_class.set_notifiable_class_defaults
18
18
  expect(described_class._notification_targets).to eq({})
@@ -13,7 +13,7 @@ shared_examples_for :notifier do
13
13
  end
14
14
 
15
15
  describe "as public class methods" do
16
- describe "#available_as_notifier?" do
16
+ describe ".available_as_notifier?" do
17
17
  it "returns true" do
18
18
  expect(described_class.available_as_notifier?).to be_truthy
19
19
  end
@@ -10,17 +10,18 @@ shared_examples_for :target do
10
10
  expect(test_instance.notifications.count).to eq(2)
11
11
  expect(test_instance.notifications.earliest).to eq(notification_1)
12
12
  expect(test_instance.notifications.latest).to eq(notification_2)
13
+ expect(test_instance.notifications).to eq (ActivityNotification::Notification.filtered_by_target(test_instance))
13
14
  end
14
15
  end
15
16
 
16
17
  describe "as public class methods" do
17
- describe "#available_as_target?" do
18
+ describe ".available_as_target?" do
18
19
  it "returns true" do
19
20
  expect(described_class.available_as_target?).to be_truthy
20
21
  end
21
22
  end
22
23
 
23
- describe "#set_target_class_defaults" do
24
+ describe ".set_target_class_defaults" do
24
25
  it "set parameter fields as default" do
25
26
  described_class.set_target_class_defaults
26
27
  expect(described_class._notification_email).to eq(nil)
@@ -125,20 +126,20 @@ shared_examples_for :target do
125
126
 
126
127
  describe "#authenticated_with_devise?" do
127
128
  context "without any configuration" do
128
- context "when the current device resource and called target are defferent class instance" do
129
+ context "when the current devise resource and called target are defferent class instance" do
129
130
  it "raises TypeError" do
130
131
  expect { test_instance.authenticated_with_devise?(test_notifiable) }
131
132
  .to raise_error(TypeError, /Defferent type of .+ has been passed to .+ You have to override .+ /)
132
133
  end
133
134
  end
134
135
 
135
- context "when the current device resource equals called target" do
136
+ context "when the current devise resource equals called target" do
136
137
  it "returns true" do
137
138
  expect(test_instance.authenticated_with_devise?(test_instance)).to be_truthy
138
139
  end
139
140
  end
140
141
 
141
- context "when the current device resource does not equal called target" do
142
+ context "when the current devise resource does not equal called target" do
142
143
  it "returns false" do
143
144
  expect(test_instance.authenticated_with_devise?(create(test_class_name))).to be_falsey
144
145
  end
@@ -146,7 +147,7 @@ shared_examples_for :target do
146
147
  end
147
148
 
148
149
  context "configured with a field" do
149
- context "when the current device resource and called target are defferent class instance" do
150
+ context "when the current devise resource and called target are defferent class instance" do
150
151
  it "raises TypeError" do
151
152
  described_class._notification_devise_resource = test_notifiable
152
153
  expect { test_instance.authenticated_with_devise?(test_instance) }
@@ -154,14 +155,14 @@ shared_examples_for :target do
154
155
  end
155
156
  end
156
157
 
157
- context "when the current device resource equals called target" do
158
+ context "when the current devise resource equals called target" do
158
159
  it "returns true" do
159
160
  described_class._notification_devise_resource = test_notifiable
160
161
  expect(test_instance.authenticated_with_devise?(test_notifiable)).to be_truthy
161
162
  end
162
163
  end
163
164
 
164
- context "when the current device resource does not equal called target" do
165
+ context "when the current devise resource does not equal called target" do
165
166
  it "returns false" do
166
167
  described_class._notification_devise_resource = test_instance
167
168
  expect(test_instance.authenticated_with_devise?(create(test_class_name))).to be_falsey
@@ -5,7 +5,7 @@ shared_examples_for :notification_controller do
5
5
  context "with target_type and target_id parameters" do
6
6
  before do
7
7
  @notification = create(:notification, target: test_target)
8
- get :index, target_params.merge({ target_id: test_target, typed_target_param => 'dummy' }), valid_session
8
+ get_with_compatibility :index, target_params.merge({ target_id: test_target, typed_target_param => 'dummy' }), valid_session
9
9
  end
10
10
 
11
11
  it "returns 200 as http status code" do
@@ -24,7 +24,7 @@ shared_examples_for :notification_controller do
24
24
  context "with target_type and (typed_target)_id parameters" do
25
25
  before do
26
26
  @notification = create(:notification, target: test_target)
27
- get :index, target_params.merge({ typed_target_param => test_target }), valid_session
27
+ get_with_compatibility :index, target_params.merge({ typed_target_param => test_target }), valid_session
28
28
  end
29
29
 
30
30
  it "returns 200 as http status code" do
@@ -43,7 +43,7 @@ shared_examples_for :notification_controller do
43
43
  context "without target_type parameters" do
44
44
  before do
45
45
  @notification = create(:notification, target: test_target)
46
- get :index, { typed_target_param => test_target }, valid_session
46
+ get_with_compatibility :index, { typed_target_param => test_target }, valid_session
47
47
  end
48
48
 
49
49
  it "returns 400 as http status code" do
@@ -58,7 +58,7 @@ shared_examples_for :notification_controller do
58
58
 
59
59
  it "raises ActiveRecord::RecordNotFound" do
60
60
  expect {
61
- get :index, target_params.merge({ typed_target_param => 0 }), valid_session
61
+ get_with_compatibility :index, target_params.merge({ typed_target_param => 0 }), valid_session
62
62
  }.to raise_error(ActiveRecord::RecordNotFound)
63
63
  end
64
64
  end
@@ -66,7 +66,7 @@ shared_examples_for :notification_controller do
66
66
  context "with json as format parameter" do
67
67
  before do
68
68
  @notification = create(:notification, target: test_target)
69
- get :index, target_params.merge({ typed_target_param => test_target, format: :json }), valid_session
69
+ get_with_compatibility :index, target_params.merge({ typed_target_param => test_target, format: :json }), valid_session
70
70
  end
71
71
 
72
72
  it "returns 200 as http status code" do
@@ -83,7 +83,7 @@ shared_examples_for :notification_controller do
83
83
  context "with unopened as filter" do
84
84
  before do
85
85
  @notification = create(:notification, target: test_target)
86
- get :index, target_params.merge({ typed_target_param => test_target, filter: 'unopened' }), valid_session
86
+ get_with_compatibility :index, target_params.merge({ typed_target_param => test_target, filter: 'unopened' }), valid_session
87
87
  end
88
88
 
89
89
  it "assigns unopened notification index as @notifications" do
@@ -94,7 +94,7 @@ shared_examples_for :notification_controller do
94
94
  context "with opened as filter" do
95
95
  before do
96
96
  @notification = create(:notification, target: test_target)
97
- get :index, target_params.merge({ typed_target_param => test_target, filter: 'opened' }), valid_session
97
+ get_with_compatibility :index, target_params.merge({ typed_target_param => test_target, filter: 'opened' }), valid_session
98
98
  end
99
99
 
100
100
  it "assigns unopened notification index as @notifications" do
@@ -110,7 +110,7 @@ shared_examples_for :notification_controller do
110
110
  end
111
111
  context "with 2 as limit" do
112
112
  before do
113
- get :index, target_params.merge({ typed_target_param => test_target, limit: 2 }), valid_session
113
+ get_with_compatibility :index, target_params.merge({ typed_target_param => test_target, limit: 2 }), valid_session
114
114
  end
115
115
 
116
116
  it "assigns notification index of size 2 as @notifications" do
@@ -120,7 +120,7 @@ shared_examples_for :notification_controller do
120
120
 
121
121
  context "with 1 as limit" do
122
122
  before do
123
- get :index, target_params.merge({ typed_target_param => test_target, limit: 1 }), valid_session
123
+ get_with_compatibility :index, target_params.merge({ typed_target_param => test_target, limit: 1 }), valid_session
124
124
  end
125
125
 
126
126
  it "assigns notification index of size 1 as @notifications" do
@@ -133,7 +133,7 @@ shared_examples_for :notification_controller do
133
133
  context "with false as reload" do
134
134
  before do
135
135
  @notification = create(:notification, target: test_target)
136
- get :index, target_params.merge({ typed_target_param => test_target, reload: false }), valid_session
136
+ get_with_compatibility :index, target_params.merge({ typed_target_param => test_target, reload: false }), valid_session
137
137
  end
138
138
 
139
139
  it "returns 200 as http status code" do
@@ -156,7 +156,7 @@ shared_examples_for :notification_controller do
156
156
  before do
157
157
  @notification = create(:notification, target: test_target)
158
158
  expect(@notification.opened?).to be_falsey
159
- post :open_all, target_params.merge({ typed_target_param => test_target }), valid_session
159
+ post_with_compatibility :open_all, target_params.merge({ typed_target_param => test_target }), valid_session
160
160
  end
161
161
 
162
162
  it "returns 302 as http status code" do
@@ -181,7 +181,7 @@ shared_examples_for :notification_controller do
181
181
  @notification = create(:notification, target: test_target)
182
182
  expect(@notification.opened?).to be_falsey
183
183
  request.env["HTTP_REFERER"] = root_path
184
- post :open_all, target_params.merge({ typed_target_param => test_target }), valid_session
184
+ post_with_compatibility :open_all, target_params.merge({ typed_target_param => test_target }), valid_session
185
185
  end
186
186
 
187
187
  it "returns 302 as http status code" do
@@ -201,7 +201,7 @@ shared_examples_for :notification_controller do
201
201
  before do
202
202
  @notification = create(:notification, target: test_target)
203
203
  expect(@notification.opened?).to be_falsey
204
- xhr :post, :open_all, target_params.merge({ typed_target_param => test_target }), valid_session
204
+ xhr_with_compatibility :post, :open_all, target_params.merge({ typed_target_param => test_target }), valid_session
205
205
  end
206
206
 
207
207
  it "returns 200 as http status code" do
@@ -220,13 +220,56 @@ shared_examples_for :notification_controller do
220
220
  expect(response).to render_template :open_all, format: :js
221
221
  end
222
222
  end
223
+
224
+ context "with filter request parameters" do
225
+ before do
226
+ @target_1, @notifiable_1, @group_1, @key_1 = create(:confirmed_user), create(:article), nil, "key.1"
227
+ @target_2, @notifiable_2, @group_2, @key_2 = create(:confirmed_user), create(:comment), @notifiable_1, "key.2"
228
+ @notification_1 = create(:notification, target: test_target, notifiable: @notifiable_1, group: @group_1, key: @key_1)
229
+ @notification_2 = create(:notification, target: test_target, notifiable: @notifiable_2, group: @group_2, key: @key_2)
230
+ expect(@notification_1.opened?).to be_falsey
231
+ expect(@notification_2.opened?).to be_falsey
232
+ end
233
+
234
+ context "with filtered_by_type request parameters" do
235
+ it "opens filtered notifications only" do
236
+ post_with_compatibility :open_all, target_params.merge({ typed_target_param => test_target, 'filtered_by_type' => @notifiable_2.to_class_name }), valid_session
237
+ expect(@notification_1.reload.opened?).to be_falsey
238
+ expect(@notification_2.reload.opened?).to be_truthy
239
+ end
240
+ end
241
+
242
+ context 'with filtered_by_group_type and :filtered_by_group_id request parameters' do
243
+ it "opens filtered notifications only" do
244
+ post_with_compatibility :open_all, target_params.merge({ typed_target_param => test_target, 'filtered_by_group_type' => 'Article', 'filtered_by_group_id' => @group_2.id.to_s }), valid_session
245
+ expect(@notification_1.reload.opened?).to be_falsey
246
+ expect(@notification_2.reload.opened?).to be_truthy
247
+ end
248
+ end
249
+
250
+ context 'with filtered_by_key request parameters' do
251
+ it "opens filtered notifications only" do
252
+ post_with_compatibility :open_all, target_params.merge({ typed_target_param => test_target, 'filtered_by_key' => 'key.2' }), valid_session
253
+ expect(@notification_1.reload.opened?).to be_falsey
254
+ expect(@notification_2.reload.opened?).to be_truthy
255
+ end
256
+ end
257
+
258
+ context "with no filter request parameters" do
259
+ it "opens all notifications of the target" do
260
+ post_with_compatibility :open_all, target_params.merge({ typed_target_param => test_target}), valid_session
261
+ expect(@notification_1.reload.opened?).to be_truthy
262
+ expect(@notification_2.reload.opened?).to be_truthy
263
+ end
264
+ end
265
+ end
223
266
  end
224
267
 
225
268
  describe "GET #show" do
226
269
  context "with id, target_type and (typed_target)_id parameters" do
227
270
  before do
228
271
  @notification = create(:notification, target: test_target)
229
- get :show, target_params.merge({ id: @notification, typed_target_param => test_target }), valid_session
272
+ get_with_compatibility :show, target_params.merge({ id: @notification, typed_target_param => test_target }), valid_session
230
273
  end
231
274
 
232
275
  it "returns 200 as http status code" do
@@ -245,7 +288,7 @@ shared_examples_for :notification_controller do
245
288
  context "with wrong id and (typed_target)_id parameters" do
246
289
  before do
247
290
  @notification = create(:notification, target: create(:user))
248
- get :show, target_params.merge({ id: @notification, typed_target_param => test_target }), valid_session
291
+ get_with_compatibility :show, target_params.merge({ id: @notification, typed_target_param => test_target }), valid_session
249
292
  end
250
293
 
251
294
  it "returns 403 as http status code" do
@@ -258,7 +301,7 @@ shared_examples_for :notification_controller do
258
301
  context "http direct DELETE request" do
259
302
  before do
260
303
  @notification = create(:notification, target: test_target)
261
- delete :destroy, target_params.merge({ id: @notification, typed_target_param => test_target }), valid_session
304
+ delete_with_compatibility :destroy, target_params.merge({ id: @notification, typed_target_param => test_target }), valid_session
262
305
  end
263
306
 
264
307
  it "returns 302 as http status code" do
@@ -278,7 +321,7 @@ shared_examples_for :notification_controller do
278
321
  before do
279
322
  @notification = create(:notification, target: test_target)
280
323
  request.env["HTTP_REFERER"] = root_path
281
- delete :destroy, target_params.merge({ id: @notification, typed_target_param => test_target }), valid_session
324
+ delete_with_compatibility :destroy, target_params.merge({ id: @notification, typed_target_param => test_target }), valid_session
282
325
  end
283
326
 
284
327
  it "returns 302 as http status code" do
@@ -297,7 +340,7 @@ shared_examples_for :notification_controller do
297
340
  context "Ajax DELETE request" do
298
341
  before do
299
342
  @notification = create(:notification, target: test_target)
300
- xhr :delete, :destroy, target_params.merge({ id: @notification, typed_target_param => test_target }), valid_session
343
+ xhr_with_compatibility :delete, :destroy, target_params.merge({ id: @notification, typed_target_param => test_target }), valid_session
301
344
  end
302
345
 
303
346
  it "returns 200 as http status code" do
@@ -324,7 +367,7 @@ shared_examples_for :notification_controller do
324
367
  before do
325
368
  @notification = create(:notification, target: test_target)
326
369
  expect(@notification.opened?).to be_falsey
327
- post :open, target_params.merge({ id: @notification, typed_target_param => test_target }), valid_session
370
+ post_with_compatibility :open, target_params.merge({ id: @notification, typed_target_param => test_target }), valid_session
328
371
  end
329
372
 
330
373
  it "returns 302 as http status code" do
@@ -345,7 +388,7 @@ shared_examples_for :notification_controller do
345
388
  @notification = create(:notification, target: test_target)
346
389
  expect(@notification.opened?).to be_falsey
347
390
  request.env["HTTP_REFERER"] = root_path
348
- post :open, target_params.merge({ id: @notification, typed_target_param => test_target }), valid_session
391
+ post_with_compatibility :open, target_params.merge({ id: @notification, typed_target_param => test_target }), valid_session
349
392
  end
350
393
 
351
394
  it "returns 302 as http status code" do
@@ -366,7 +409,7 @@ shared_examples_for :notification_controller do
366
409
  @notification = create(:notification, target: test_target)
367
410
  expect(@notification.opened?).to be_falsey
368
411
  request.env["HTTP_REFERER"] = root_path
369
- xhr :post, :open, target_params.merge({ id: @notification, typed_target_param => test_target }), valid_session
412
+ xhr_with_compatibility :post, :open, target_params.merge({ id: @notification, typed_target_param => test_target }), valid_session
370
413
  end
371
414
 
372
415
  it "returns 200 as http status code" do
@@ -392,17 +435,13 @@ shared_examples_for :notification_controller do
392
435
  before do
393
436
  @notification = create(:notification, target: test_target)
394
437
  expect(@notification.opened?).to be_falsey
395
- post :open, target_params.merge({ id: @notification, typed_target_param => test_target, move: true }), valid_session
438
+ post_with_compatibility :open, target_params.merge({ id: @notification, typed_target_param => test_target, move: true }), valid_session
396
439
  end
397
440
 
398
441
  it "returns 302 as http status code" do
399
442
  expect(response.status).to eq(302)
400
443
  end
401
444
 
402
- it "assigns notification index as @notifications" do
403
- expect(assigns(:notifications)).to eq([@notification])
404
- end
405
-
406
445
  it "opens the notification" do
407
446
  expect(@notification.reload.opened?).to be_truthy
408
447
  end
@@ -419,7 +458,7 @@ shared_examples_for :notification_controller do
419
458
  context "http direct GET request" do
420
459
  before do
421
460
  @notification = create(:notification, target: test_target)
422
- get :move, target_params.merge({ id: @notification, typed_target_param => test_target }), valid_session
461
+ get_with_compatibility :move, target_params.merge({ id: @notification, typed_target_param => test_target }), valid_session
423
462
  end
424
463
 
425
464
  it "returns 302 as http status code" do
@@ -437,7 +476,7 @@ shared_examples_for :notification_controller do
437
476
  before do
438
477
  @notification = create(:notification, target: test_target)
439
478
  expect(@notification.opened?).to be_falsey
440
- get :move, target_params.merge({ id: @notification, typed_target_param => test_target, open: true }), valid_session
479
+ get_with_compatibility :move, target_params.merge({ id: @notification, typed_target_param => test_target, open: true }), valid_session
441
480
  end
442
481
 
443
482
  it "returns 302 as http status code" do
@@ -454,4 +493,38 @@ shared_examples_for :notification_controller do
454
493
  end
455
494
  end
456
495
  end
496
+
497
+ private
498
+
499
+ def get_with_compatibility action, params, session
500
+ if Rails::VERSION::MAJOR <= 4
501
+ get action, params, session
502
+ else
503
+ get action, params: params, session: session
504
+ end
505
+ end
506
+
507
+ def post_with_compatibility action, params, session
508
+ if Rails::VERSION::MAJOR <= 4
509
+ post action, params, session
510
+ else
511
+ post action, params: params, session: session
512
+ end
513
+ end
514
+
515
+ def delete_with_compatibility action, params, session
516
+ if Rails::VERSION::MAJOR <= 4
517
+ delete action, params, session
518
+ else
519
+ delete action, params: params, session: session
520
+ end
521
+ end
522
+
523
+ def xhr_with_compatibility method, action, params, session
524
+ if Rails::VERSION::MAJOR <= 4
525
+ xhr method, action, params, session
526
+ else
527
+ send method.to_s, action, xhr: true, params: params, session: session
528
+ end
529
+ end
457
530
  end
@@ -23,7 +23,7 @@ describe ActivityNotification::NotificationsWithDeviseController, type: :control
23
23
  describe "GET #index" do
24
24
  before do
25
25
  sign_in unauthenticated_user
26
- get :index, target_params.merge({ typed_target_param => test_target }), valid_session
26
+ get_with_compatibility :index, target_params.merge({ typed_target_param => test_target }), valid_session
27
27
  end
28
28
 
29
29
  it "returns 403 as http status code" do
@@ -37,7 +37,7 @@ describe ActivityNotification::NotificationsWithDeviseController, type: :control
37
37
 
38
38
  describe "GET #index" do
39
39
  before do
40
- get :index, target_params.merge({ typed_target_param => test_target }), valid_session
40
+ get_with_compatibility :index, target_params.merge({ typed_target_param => test_target }), valid_session
41
41
  end
42
42
 
43
43
  it "returns 302 as http status code" do
@@ -55,7 +55,7 @@ describe ActivityNotification::NotificationsWithDeviseController, type: :control
55
55
 
56
56
  describe "GET #index" do
57
57
  before do
58
- get :index, target_params.merge({ typed_target_param => test_target }), valid_session
58
+ get_with_compatibility :index, target_params.merge({ typed_target_param => test_target }), valid_session
59
59
  end
60
60
 
61
61
  it "returns 400 as http status code" do
@@ -69,7 +69,7 @@ describe ActivityNotification::NotificationsWithDeviseController, type: :control
69
69
 
70
70
  describe "GET #index" do
71
71
  before do
72
- get :index, target_params.merge({ typed_target_param => test_target }), valid_session
72
+ get_with_compatibility :index, target_params.merge({ typed_target_param => test_target }), valid_session
73
73
  end
74
74
 
75
75
  it "returns 403 as http status code" do
@@ -78,4 +78,14 @@ describe ActivityNotification::NotificationsWithDeviseController, type: :control
78
78
  end
79
79
  end
80
80
 
81
+ private
82
+
83
+ def get_with_compatibility action, params, session
84
+ if Rails::VERSION::MAJOR <= 4
85
+ get action, params, session
86
+ else
87
+ get action, params: params, session: session
88
+ end
89
+ end
90
+
81
91
  end