activity_notification 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
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