activity_notification 1.4.4 → 2.2.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (271) hide show
  1. checksums.yaml +5 -5
  2. data/.github/ISSUE_TEMPLATE/bug_report.md +22 -0
  3. data/.github/ISSUE_TEMPLATE/feature_request.md +17 -0
  4. data/.github/pull_request_template.md +13 -0
  5. data/.github/workflows/build.yml +116 -0
  6. data/.gitignore +15 -3
  7. data/CHANGELOG.md +200 -1
  8. data/Gemfile +17 -2
  9. data/Procfile +2 -0
  10. data/README.md +168 -1033
  11. data/Rakefile +19 -10
  12. data/activity_notification.gemspec +14 -9
  13. data/app/channels/activity_notification/notification_api_channel.rb +12 -0
  14. data/app/channels/activity_notification/notification_api_with_devise_channel.rb +46 -0
  15. data/app/channels/activity_notification/notification_channel.rb +37 -0
  16. data/app/channels/activity_notification/notification_with_devise_channel.rb +51 -0
  17. data/app/controllers/activity_notification/apidocs_controller.rb +75 -0
  18. data/app/controllers/activity_notification/notifications_api_controller.rb +143 -0
  19. data/app/controllers/activity_notification/notifications_api_with_devise_controller.rb +7 -0
  20. data/app/controllers/activity_notification/notifications_controller.rb +60 -54
  21. data/app/controllers/activity_notification/subscriptions_api_controller.rb +197 -0
  22. data/app/controllers/activity_notification/subscriptions_api_with_devise_controller.rb +7 -0
  23. data/app/controllers/activity_notification/subscriptions_controller.rb +83 -73
  24. data/app/jobs/activity_notification/notify_all_job.rb +25 -0
  25. data/app/jobs/activity_notification/notify_job.rb +26 -0
  26. data/app/jobs/activity_notification/notify_to_job.rb +25 -0
  27. data/app/views/activity_notification/notifications/default/_default.html.erb +23 -23
  28. data/app/views/activity_notification/notifications/default/_default_without_grouping.html.erb +19 -19
  29. data/app/views/activity_notification/notifications/default/_index.html.erb +3 -3
  30. data/app/views/activity_notification/notifications/default/index.html.erb +60 -7
  31. data/app/views/activity_notification/notifications/default/open.js.erb +2 -2
  32. data/app/views/activity_notification/notifications/default/open_all.js.erb +2 -2
  33. data/app/views/activity_notification/notifications/default/show.html.erb +2 -2
  34. data/app/views/activity_notification/optional_targets/default/action_cable_channel/_default.html.erb +176 -0
  35. data/app/views/activity_notification/optional_targets/default/base/_default.text.erb +1 -1
  36. data/app/views/activity_notification/optional_targets/default/slack/_default.text.erb +1 -1
  37. data/app/views/activity_notification/subscriptions/default/_form.html.erb +2 -2
  38. data/app/views/activity_notification/subscriptions/default/_notification_keys.html.erb +5 -33
  39. data/app/views/activity_notification/subscriptions/default/_subscription.html.erb +8 -8
  40. data/app/views/activity_notification/subscriptions/default/index.html.erb +13 -9
  41. data/app/views/activity_notification/subscriptions/default/show.html.erb +3 -3
  42. data/app/views/activity_notification/subscriptions/default/subscribe.js.erb +1 -1
  43. data/app/views/activity_notification/subscriptions/default/subscribe_to_email.js.erb +1 -1
  44. data/app/views/activity_notification/subscriptions/default/subscribe_to_optional_target.js.erb +1 -1
  45. data/app/views/activity_notification/subscriptions/default/unsubscribe.js.erb +1 -1
  46. data/app/views/activity_notification/subscriptions/default/unsubscribe_to_email.js.erb +1 -1
  47. data/app/views/activity_notification/subscriptions/default/unsubscribe_to_optional_target.js.erb +1 -1
  48. data/bin/_dynamodblocal +4 -0
  49. data/bin/bundle_update.sh +7 -0
  50. data/bin/deploy_on_heroku.sh +16 -0
  51. data/bin/install_dynamodblocal.sh +5 -0
  52. data/bin/start_dynamodblocal.sh +47 -0
  53. data/bin/stop_dynamodblocal.sh +34 -0
  54. data/docs/CODE_OF_CONDUCT.md +76 -0
  55. data/docs/CONTRIBUTING.md +36 -0
  56. data/docs/Functions.md +1146 -0
  57. data/docs/Setup.md +817 -0
  58. data/docs/Testing.md +148 -0
  59. data/gemfiles/Gemfile.rails-5.0 +8 -1
  60. data/gemfiles/Gemfile.rails-5.1 +7 -1
  61. data/gemfiles/Gemfile.rails-5.2 +24 -0
  62. data/gemfiles/Gemfile.rails-6.0 +23 -0
  63. data/gemfiles/Gemfile.rails-6.1 +22 -0
  64. data/gemfiles/Gemfile.rails-7.0 +25 -0
  65. data/lib/activity_notification/apis/notification_api.rb +356 -159
  66. data/lib/activity_notification/apis/subscription_api.rb +98 -59
  67. data/lib/activity_notification/apis/swagger.rb +6 -0
  68. data/lib/activity_notification/common.rb +18 -7
  69. data/lib/activity_notification/config.rb +176 -30
  70. data/lib/activity_notification/controllers/common_api_controller.rb +30 -0
  71. data/lib/activity_notification/controllers/common_controller.rb +47 -27
  72. data/lib/activity_notification/controllers/concerns/swagger/error_responses.rb +55 -0
  73. data/lib/activity_notification/controllers/concerns/swagger/notifications_api.rb +273 -0
  74. data/lib/activity_notification/controllers/concerns/swagger/notifications_parameters.rb +92 -0
  75. data/lib/activity_notification/controllers/concerns/swagger/subscriptions_api.rb +405 -0
  76. data/lib/activity_notification/controllers/concerns/swagger/subscriptions_parameters.rb +50 -0
  77. data/lib/activity_notification/controllers/devise_authentication_controller.rb +22 -5
  78. data/lib/activity_notification/gem_version.rb +14 -0
  79. data/lib/activity_notification/helpers/errors.rb +6 -0
  80. data/lib/activity_notification/helpers/view_helpers.rb +118 -28
  81. data/lib/activity_notification/mailers/helpers.rb +19 -12
  82. data/lib/activity_notification/models/concerns/notifiable.rb +142 -55
  83. data/lib/activity_notification/models/concerns/subscriber.rb +28 -13
  84. data/lib/activity_notification/models/concerns/swagger/error_schema.rb +36 -0
  85. data/lib/activity_notification/models/concerns/swagger/notification_schema.rb +209 -0
  86. data/lib/activity_notification/models/concerns/swagger/subscription_schema.rb +162 -0
  87. data/lib/activity_notification/models/concerns/target.rb +131 -32
  88. data/lib/activity_notification/models/notification.rb +1 -0
  89. data/lib/activity_notification/models/subscription.rb +1 -0
  90. data/lib/activity_notification/models.rb +23 -1
  91. data/lib/activity_notification/optional_targets/action_cable_api_channel.rb +69 -0
  92. data/lib/activity_notification/optional_targets/action_cable_channel.rb +68 -0
  93. data/lib/activity_notification/optional_targets/base.rb +9 -15
  94. data/lib/activity_notification/orm/active_record/notification.rb +23 -34
  95. data/lib/activity_notification/orm/active_record/subscription.rb +1 -1
  96. data/lib/activity_notification/orm/active_record.rb +1 -1
  97. data/lib/activity_notification/orm/dynamoid/extension.rb +262 -0
  98. data/lib/activity_notification/orm/dynamoid/notification.rb +224 -0
  99. data/lib/activity_notification/orm/dynamoid/subscription.rb +82 -0
  100. data/lib/activity_notification/orm/dynamoid.rb +530 -0
  101. data/lib/activity_notification/orm/mongoid/notification.rb +29 -28
  102. data/lib/activity_notification/orm/mongoid/subscription.rb +3 -3
  103. data/lib/activity_notification/orm/mongoid.rb +33 -1
  104. data/lib/activity_notification/rails/routes.rb +273 -60
  105. data/lib/activity_notification/renderable.rb +22 -7
  106. data/lib/activity_notification/roles/acts_as_notifiable.rb +64 -1
  107. data/lib/activity_notification/roles/acts_as_target.rb +99 -9
  108. data/lib/activity_notification/version.rb +1 -1
  109. data/lib/activity_notification.rb +14 -0
  110. data/lib/generators/activity_notification/controllers_generator.rb +2 -1
  111. data/lib/generators/templates/activity_notification.rb +61 -7
  112. data/lib/generators/templates/controllers/README +2 -2
  113. data/lib/generators/templates/controllers/notifications_api_controller.rb +31 -0
  114. data/lib/generators/templates/controllers/notifications_api_with_devise_controller.rb +31 -0
  115. data/lib/generators/templates/controllers/notifications_controller.rb +1 -37
  116. data/lib/generators/templates/controllers/notifications_with_devise_controller.rb +1 -45
  117. data/lib/generators/templates/controllers/subscriptions_api_controller.rb +61 -0
  118. data/lib/generators/templates/controllers/subscriptions_api_with_devise_controller.rb +61 -0
  119. data/lib/generators/templates/controllers/subscriptions_controller.rb +14 -37
  120. data/lib/generators/templates/controllers/subscriptions_with_devise_controller.rb +14 -45
  121. data/lib/generators/templates/migrations/migration.rb +5 -5
  122. data/lib/generators/templates/models/README +8 -4
  123. data/lib/generators/templates/models/notification.rb +1 -1
  124. data/lib/generators/templates/models/subscription.rb +1 -1
  125. data/lib/tasks/activity_notification_tasks.rake +14 -4
  126. data/package.json +8 -0
  127. data/spec/channels/notification_api_channel_shared_examples.rb +59 -0
  128. data/spec/channels/notification_api_channel_spec.rb +49 -0
  129. data/spec/channels/notification_api_with_devise_channel_spec.rb +76 -0
  130. data/spec/channels/notification_channel_shared_examples.rb +59 -0
  131. data/spec/channels/notification_channel_spec.rb +48 -0
  132. data/spec/channels/notification_with_devise_channel_spec.rb +97 -0
  133. data/spec/concerns/apis/notification_api_spec.rb +177 -12
  134. data/spec/concerns/apis/subscription_api_spec.rb +146 -4
  135. data/spec/concerns/common_spec.rb +25 -3
  136. data/spec/concerns/models/notifiable_spec.rb +161 -11
  137. data/spec/concerns/models/subscriber_spec.rb +253 -79
  138. data/spec/concerns/models/target_spec.rb +180 -47
  139. data/spec/concerns/renderable_spec.rb +35 -16
  140. data/spec/config_spec.rb +52 -1
  141. data/spec/controllers/controller_spec_utility.rb +100 -0
  142. data/spec/controllers/notifications_api_controller_shared_examples.rb +506 -0
  143. data/spec/controllers/notifications_api_controller_spec.rb +19 -0
  144. data/spec/controllers/notifications_api_with_devise_controller_spec.rb +60 -0
  145. data/spec/controllers/notifications_controller_shared_examples.rb +55 -76
  146. data/spec/controllers/notifications_controller_spec.rb +1 -2
  147. data/spec/controllers/notifications_with_devise_controller_spec.rb +14 -8
  148. data/spec/controllers/subscriptions_api_controller_shared_examples.rb +750 -0
  149. data/spec/controllers/subscriptions_api_controller_spec.rb +19 -0
  150. data/spec/controllers/subscriptions_api_with_devise_controller_spec.rb +60 -0
  151. data/spec/controllers/subscriptions_controller_shared_examples.rb +99 -121
  152. data/spec/controllers/subscriptions_controller_spec.rb +1 -2
  153. data/spec/controllers/subscriptions_with_devise_controller_spec.rb +14 -8
  154. data/spec/factories/notifications.rb +1 -1
  155. data/spec/factories/subscriptions.rb +3 -3
  156. data/spec/factories/users.rb +3 -3
  157. data/spec/generators/migration/migration_generator_spec.rb +29 -4
  158. data/spec/helpers/view_helpers_spec.rb +31 -21
  159. data/spec/jobs/notify_all_job_spec.rb +23 -0
  160. data/spec/jobs/notify_job_spec.rb +23 -0
  161. data/spec/jobs/notify_to_job_spec.rb +23 -0
  162. data/spec/mailers/mailer_spec.rb +42 -1
  163. data/spec/models/dummy/dummy_group_spec.rb +4 -0
  164. data/spec/models/dummy/dummy_notifiable_spec.rb +4 -0
  165. data/spec/models/dummy/dummy_notifier_spec.rb +4 -0
  166. data/spec/models/dummy/dummy_subscriber_spec.rb +3 -0
  167. data/spec/models/dummy/dummy_target_spec.rb +4 -0
  168. data/spec/models/notification_spec.rb +181 -45
  169. data/spec/models/subscription_spec.rb +77 -27
  170. data/spec/optional_targets/action_cable_api_channel_spec.rb +34 -0
  171. data/spec/optional_targets/action_cable_channel_spec.rb +41 -0
  172. data/spec/optional_targets/amazon_sns_spec.rb +0 -2
  173. data/spec/optional_targets/slack_spec.rb +0 -2
  174. data/spec/orm/dynamoid_spec.rb +115 -0
  175. data/spec/rails_app/Rakefile +9 -0
  176. data/spec/rails_app/app/assets/config/manifest.js +3 -0
  177. data/spec/rails_app/app/assets/javascripts/application.js +2 -1
  178. data/spec/rails_app/app/assets/javascripts/cable.js +12 -0
  179. data/spec/rails_app/app/controllers/admins_controller.rb +21 -0
  180. data/spec/rails_app/app/controllers/application_controller.rb +1 -1
  181. data/spec/rails_app/app/controllers/articles_controller.rb +6 -1
  182. data/spec/rails_app/app/controllers/comments_controller.rb +3 -1
  183. data/spec/rails_app/app/controllers/spa_controller.rb +7 -0
  184. data/spec/rails_app/app/controllers/users/notifications_controller.rb +0 -65
  185. data/spec/rails_app/app/controllers/users/notifications_with_devise_controller.rb +0 -73
  186. data/spec/rails_app/app/controllers/users/subscriptions_controller.rb +0 -77
  187. data/spec/rails_app/app/controllers/users/subscriptions_with_devise_controller.rb +0 -85
  188. data/spec/rails_app/app/controllers/users_controller.rb +26 -0
  189. data/spec/rails_app/app/javascript/App.vue +40 -0
  190. data/spec/rails_app/app/javascript/components/DeviseTokenAuth.vue +82 -0
  191. data/spec/rails_app/app/javascript/components/Top.vue +98 -0
  192. data/spec/rails_app/app/javascript/components/notifications/Index.vue +200 -0
  193. data/spec/rails_app/app/javascript/components/notifications/Notification.vue +133 -0
  194. data/spec/rails_app/app/javascript/components/notifications/NotificationContent.vue +122 -0
  195. data/spec/rails_app/app/javascript/components/subscriptions/Index.vue +279 -0
  196. data/spec/rails_app/app/javascript/components/subscriptions/NewSubscription.vue +112 -0
  197. data/spec/rails_app/app/javascript/components/subscriptions/NotificationKey.vue +141 -0
  198. data/spec/rails_app/app/javascript/components/subscriptions/Subscription.vue +226 -0
  199. data/spec/rails_app/app/javascript/config/development.js +5 -0
  200. data/spec/rails_app/app/javascript/config/environment.js +7 -0
  201. data/spec/rails_app/app/javascript/config/production.js +5 -0
  202. data/spec/rails_app/app/javascript/config/test.js +5 -0
  203. data/spec/rails_app/app/javascript/packs/application.js +18 -0
  204. data/spec/rails_app/app/javascript/packs/spa.js +14 -0
  205. data/spec/rails_app/app/javascript/router/index.js +73 -0
  206. data/spec/rails_app/app/javascript/store/index.js +37 -0
  207. data/spec/rails_app/app/models/admin.rb +15 -10
  208. data/spec/rails_app/app/models/article.rb +25 -20
  209. data/spec/rails_app/app/models/comment.rb +27 -62
  210. data/spec/rails_app/app/models/dummy/dummy_base.rb +1 -0
  211. data/spec/rails_app/app/models/dummy/dummy_group.rb +9 -0
  212. data/spec/rails_app/app/models/dummy/dummy_notifiable.rb +1 -0
  213. data/spec/rails_app/app/models/dummy/dummy_notifiable_target.rb +27 -0
  214. data/spec/rails_app/app/models/dummy/dummy_notifier.rb +1 -0
  215. data/spec/rails_app/app/models/dummy/dummy_subscriber.rb +1 -0
  216. data/spec/rails_app/app/models/dummy/dummy_target.rb +1 -0
  217. data/spec/rails_app/app/models/user.rb +44 -18
  218. data/spec/rails_app/app/views/activity_notification/notifications/default/article/_update.html.erb +146 -0
  219. data/spec/rails_app/app/views/activity_notification/notifications/users/overridden/custom/_test.html.erb +1 -0
  220. data/spec/rails_app/app/views/activity_notification/optional_targets/admins/amazon_sns/comment/_default.text.erb +1 -1
  221. data/spec/rails_app/app/views/articles/index.html.erb +68 -20
  222. data/spec/rails_app/app/views/articles/show.html.erb +1 -1
  223. data/spec/rails_app/app/views/layouts/_header.html.erb +9 -3
  224. data/spec/rails_app/app/views/spa/index.html.erb +2 -0
  225. data/spec/rails_app/babel.config.js +72 -0
  226. data/spec/rails_app/bin/webpack +18 -0
  227. data/spec/rails_app/bin/webpack-dev-server +18 -0
  228. data/spec/rails_app/config/application.rb +26 -6
  229. data/spec/rails_app/config/cable.yml +8 -0
  230. data/spec/rails_app/config/database.yml +1 -1
  231. data/spec/rails_app/config/dynamoid.rb +13 -0
  232. data/spec/rails_app/config/environment.rb +5 -1
  233. data/spec/rails_app/config/environments/development.rb +5 -0
  234. data/spec/rails_app/config/environments/production.rb +7 -1
  235. data/spec/rails_app/config/environments/test.rb +7 -11
  236. data/spec/rails_app/config/initializers/activity_notification.rb +63 -9
  237. data/spec/rails_app/config/initializers/copy_it.aws.rb.template +6 -0
  238. data/spec/rails_app/config/initializers/devise_token_auth.rb +55 -0
  239. data/spec/rails_app/config/initializers/mysql.rb +9 -0
  240. data/spec/rails_app/config/locales/activity_notification.en.yml +10 -4
  241. data/spec/rails_app/config/routes.rb +42 -1
  242. data/spec/rails_app/config/webpack/development.js +5 -0
  243. data/spec/rails_app/config/webpack/environment.js +7 -0
  244. data/spec/rails_app/config/webpack/loaders/vue.js +6 -0
  245. data/spec/rails_app/config/webpack/production.js +5 -0
  246. data/spec/rails_app/config/webpack/test.js +5 -0
  247. data/spec/rails_app/config/webpacker.yml +97 -0
  248. data/spec/rails_app/db/migrate/{20160715050433_create_test_tables.rb → 20160716000000_create_test_tables.rb} +1 -1
  249. data/spec/rails_app/db/migrate/{20160715050420_create_activity_notification_tables.rb → 20181209000000_create_activity_notification_tables.rb} +3 -3
  250. data/spec/rails_app/db/migrate/20191201000000_add_tokens_to_users.rb +10 -0
  251. data/spec/rails_app/db/schema.rb +46 -43
  252. data/spec/rails_app/db/seeds.rb +28 -4
  253. data/spec/rails_app/lib/custom_optional_targets/raise_error.rb +14 -0
  254. data/spec/rails_app/lib/mailer_previews/mailer_preview.rb +14 -4
  255. data/spec/rails_app/package.json +23 -0
  256. data/spec/rails_app/postcss.config.js +12 -0
  257. data/spec/roles/acts_as_group_spec.rb +0 -2
  258. data/spec/roles/acts_as_notifiable_spec.rb +80 -20
  259. data/spec/roles/acts_as_notifier_spec.rb +0 -2
  260. data/spec/roles/acts_as_target_spec.rb +1 -5
  261. data/spec/spec_helper.rb +13 -11
  262. data/spec/version_spec.rb +31 -0
  263. metadata +306 -53
  264. data/.travis.yml +0 -85
  265. data/Gemfile.lock +0 -234
  266. data/gemfiles/Gemfile.rails-4.2 +0 -17
  267. data/gemfiles/Gemfile.rails-4.2.lock +0 -225
  268. data/gemfiles/Gemfile.rails-5.0.lock +0 -234
  269. data/gemfiles/Gemfile.rails-5.1.lock +0 -234
  270. data/spec/rails_app/app/views/activity_notification/notifications/users/overriden/custom/_test.html.erb +0 -1
  271. /data/spec/rails_app/app/{models → assets/images}/.keep +0 -0
@@ -15,7 +15,7 @@ shared_examples_for :subscriber do
15
15
  expect(test_instance.subscriptions.count).to eq(2)
16
16
  expect(test_instance.subscriptions.earliest_order.first).to eq(subscription_1)
17
17
  expect(test_instance.subscriptions.latest_order.first).to eq(subscription_2)
18
- expect(test_instance.subscriptions.latest_order).to eq(ActivityNotification::Subscription.filtered_by_target(test_instance).latest_order)
18
+ expect(test_instance.subscriptions.latest_order.to_a).to eq(ActivityNotification::Subscription.filtered_by_target(test_instance).latest_order.to_a)
19
19
  end
20
20
  end
21
21
 
@@ -30,13 +30,13 @@ shared_examples_for :subscriber do
30
30
  describe "as public instance methods" do
31
31
  describe "#find_subscription" do
32
32
  before do
33
- expect(test_instance.subscriptions).to be_empty
33
+ expect(test_instance.subscriptions.to_a).to be_empty
34
34
  end
35
35
 
36
36
  context "when the cofigured subscription exists" do
37
37
  it "returns subscription record" do
38
38
  subscription = test_instance.create_subscription(key: 'test_key')
39
- expect(test_instance.subscriptions.reload).not_to be_empty
39
+ expect(test_instance.subscriptions.reload.to_a).not_to be_empty
40
40
  expect(test_instance.find_subscription('test_key')).to eq(subscription)
41
41
  end
42
42
  end
@@ -50,13 +50,13 @@ shared_examples_for :subscriber do
50
50
 
51
51
  describe "#find_or_create_subscription" do
52
52
  before do
53
- expect(test_instance.subscriptions).to be_empty
53
+ expect(test_instance.subscriptions.to_a).to be_empty
54
54
  end
55
55
 
56
56
  context "when the cofigured subscription exists" do
57
57
  it "returns subscription record" do
58
58
  subscription = test_instance.create_subscription(key: 'test_key')
59
- expect(test_instance.subscriptions.reload).not_to be_empty
59
+ expect(test_instance.subscriptions.reload.to_a).not_to be_empty
60
60
  expect(test_instance.find_or_create_subscription('test_key')).to eq(subscription)
61
61
  end
62
62
  end
@@ -70,14 +70,13 @@ shared_examples_for :subscriber do
70
70
 
71
71
  describe "#create_subscription" do
72
72
  before do
73
- expect(test_instance.subscriptions).to be_empty
73
+ expect(test_instance.subscriptions.to_a).to be_empty
74
74
  end
75
75
 
76
76
  context "without params" do
77
- it "does not create a new subscription since it is invalid" do
78
- new_subscription = test_instance.create_subscription
79
- expect(new_subscription).to be_nil
80
- expect(test_instance.subscriptions.reload).to be_empty
77
+ it "raises ActivityNotification::RecordInvalidError it is invalid" do
78
+ expect { test_instance.create_subscription }
79
+ .to raise_error(ActivityNotification::RecordInvalidError)
81
80
  end
82
81
  end
83
82
 
@@ -85,28 +84,113 @@ shared_examples_for :subscriber do
85
84
  it "creates a new subscription" do
86
85
  params = { key: 'key_1' }
87
86
  new_subscription = test_instance.create_subscription(params)
88
- expect(new_subscription.subscribing?).to be_truthy
89
- expect(new_subscription.subscribing_to_email?).to be_truthy
87
+ expect(new_subscription.subscribing?).to be_truthy
88
+ expect(new_subscription.subscribing_to_email?).to be_truthy
89
+ expect(new_subscription.subscribing_to_optional_target?(:console_output)).to be_truthy
90
90
  expect(test_instance.subscriptions.reload.size).to eq(1)
91
91
  end
92
+
93
+ context "with true as ActivityNotification.config.subscribe_to_email_as_default" do
94
+ it "creates a new subscription" do
95
+ ActivityNotification.config.subscribe_to_email_as_default = true
96
+
97
+ params = { key: 'key_1' }
98
+ new_subscription = test_instance.create_subscription(params)
99
+ expect(new_subscription.subscribing?).to be_truthy
100
+ expect(new_subscription.subscribing_to_email?).to be_truthy
101
+ expect(test_instance.subscriptions.reload.size).to eq(1)
102
+
103
+ ActivityNotification.config.subscribe_to_email_as_default = nil
104
+ end
105
+ end
106
+
107
+ context "with false as ActivityNotification.config.subscribe_to_email_as_default" do
108
+ it "creates a new subscription" do
109
+ ActivityNotification.config.subscribe_to_email_as_default = false
110
+
111
+ params = { key: 'key_1' }
112
+ new_subscription = test_instance.create_subscription(params)
113
+ expect(new_subscription.subscribing?).to be_truthy
114
+ expect(new_subscription.subscribing_to_email?).to be_falsey
115
+ expect(test_instance.subscriptions.reload.size).to eq(1)
116
+
117
+ ActivityNotification.config.subscribe_to_email_as_default = nil
118
+ end
119
+ end
120
+
121
+ context "with true as ActivityNotification.config.subscribe_to_optional_targets_as_default" do
122
+ it "creates a new subscription" do
123
+ ActivityNotification.config.subscribe_to_optional_targets_as_default = true
124
+
125
+ params = { key: 'key_1' }
126
+ new_subscription = test_instance.create_subscription(params)
127
+ expect(new_subscription.subscribing?).to be_truthy
128
+ expect(new_subscription.subscribing_to_optional_target?(:console_output)).to be_truthy
129
+ expect(test_instance.subscriptions.reload.size).to eq(1)
130
+
131
+ ActivityNotification.config.subscribe_to_optional_targets_as_default = nil
132
+ end
133
+ end
134
+
135
+ context "with false as ActivityNotification.config.subscribe_to_optional_targets_as_default" do
136
+ it "creates a new subscription" do
137
+ ActivityNotification.config.subscribe_to_optional_targets_as_default = false
138
+
139
+ params = { key: 'key_1' }
140
+ new_subscription = test_instance.create_subscription(params)
141
+ expect(new_subscription.subscribing?).to be_truthy
142
+ expect(new_subscription.subscribing_to_optional_target?(:console_output)).to be_falsey
143
+ expect(test_instance.subscriptions.reload.size).to eq(1)
144
+
145
+ ActivityNotification.config.subscribe_to_optional_targets_as_default = nil
146
+ end
147
+ end
92
148
  end
93
149
 
94
150
  context "with false as subscribing params" do
95
151
  it "creates a new subscription" do
96
152
  params = { key: 'key_1', subscribing: false }
97
153
  new_subscription = test_instance.create_subscription(params)
98
- expect(new_subscription.subscribing?).to be_falsey
99
- expect(new_subscription.subscribing_to_email?).to be_falsey
154
+ expect(new_subscription.subscribing?).to be_falsey
155
+ expect(new_subscription.subscribing_to_email?).to be_falsey
100
156
  expect(test_instance.subscriptions.reload.size).to eq(1)
101
157
  end
158
+
159
+ context "with true as ActivityNotification.config.subscribe_to_email_as_default" do
160
+ it "creates a new subscription" do
161
+ ActivityNotification.config.subscribe_to_email_as_default = true
162
+
163
+ params = { key: 'key_1', subscribing: false }
164
+ new_subscription = test_instance.create_subscription(params)
165
+ expect(new_subscription.subscribing?).to be_falsey
166
+ expect(new_subscription.subscribing_to_email?).to be_falsey
167
+ expect(test_instance.subscriptions.reload.size).to eq(1)
168
+
169
+ ActivityNotification.config.subscribe_to_email_as_default = nil
170
+ end
171
+ end
172
+
173
+ context "with false as ActivityNotification.config.subscribe_to_email_as_default" do
174
+ it "creates a new subscription" do
175
+ ActivityNotification.config.subscribe_to_email_as_default = false
176
+
177
+ params = { key: 'key_1', subscribing: false }
178
+ new_subscription = test_instance.create_subscription(params)
179
+ expect(new_subscription.subscribing?).to be_falsey
180
+ expect(new_subscription.subscribing_to_email?).to be_falsey
181
+ expect(test_instance.subscriptions.reload.size).to eq(1)
182
+
183
+ ActivityNotification.config.subscribe_to_email_as_default = nil
184
+ end
185
+ end
102
186
  end
103
187
 
104
188
  context "with false as subscribing_to_email params" do
105
189
  it "creates a new subscription" do
106
190
  params = { key: 'key_1', subscribing_to_email: false }
107
191
  new_subscription = test_instance.create_subscription(params)
108
- expect(new_subscription.subscribing?).to be_truthy
109
- expect(new_subscription.subscribing_to_email?).to be_falsey
192
+ expect(new_subscription.subscribing?).to be_truthy
193
+ expect(new_subscription.subscribing_to_email?).to be_falsey
110
194
  expect(test_instance.subscriptions.reload.size).to eq(1)
111
195
  end
112
196
  end
@@ -115,23 +199,21 @@ shared_examples_for :subscriber do
115
199
  it "creates a new subscription" do
116
200
  params = { key: 'key_1', subscribing: true, subscribing_to_email: false }
117
201
  new_subscription = test_instance.create_subscription(params)
118
- expect(new_subscription.subscribing?).to be_truthy
119
- expect(new_subscription.subscribing_to_email?).to be_falsey
202
+ expect(new_subscription.subscribing?).to be_truthy
203
+ expect(new_subscription.subscribing_to_email?).to be_falsey
120
204
  expect(test_instance.subscriptions.reload.size).to eq(1)
121
205
  end
122
206
  end
123
207
 
124
208
  context "with false as subscribing and true as subscribing_to_email params" do
125
- it "does not create a new subscription since it is invalid" do
126
- params = { key: 'key_1', subscribing: false, subscribing_to_email: true }
127
- new_subscription = test_instance.create_subscription(params)
128
- expect(new_subscription).to be_nil
129
- expect(test_instance.subscriptions.reload).to be_empty
209
+ it "raises ActivityNotification::RecordInvalidError it is invalid" do
210
+ expect {
211
+ params = { key: 'key_1', subscribing: false, subscribing_to_email: true }
212
+ test_instance.create_subscription(params)
213
+ }.to raise_error(ActivityNotification::RecordInvalidError)
130
214
  end
131
215
  end
132
216
 
133
-
134
-
135
217
  context "with true as optional_targets params" do
136
218
  it "creates a new subscription" do
137
219
  params = { key: 'key_1', optional_targets: { subscribing_to_console_output: true } }
@@ -163,11 +245,11 @@ shared_examples_for :subscriber do
163
245
  end
164
246
 
165
247
  context "with false as subscribing and true as optional_targets params" do
166
- it "does not create a new subscription since it is invalid" do
167
- params = { key: 'key_1', subscribing: false, optional_targets: { subscribing_to_console_output: true } }
168
- new_subscription = test_instance.create_subscription(params)
169
- expect(new_subscription).to be_nil
170
- expect(test_instance.subscriptions.reload).to be_empty
248
+ it "raises ActivityNotification::RecordInvalidError it is invalid" do
249
+ expect {
250
+ params = { key: 'key_1', subscribing: false, optional_targets: { subscribing_to_console_output: true } }
251
+ test_instance.create_subscription(params)
252
+ }.to raise_error(ActivityNotification::RecordInvalidError)
171
253
  end
172
254
  end
173
255
  end
@@ -187,8 +269,8 @@ shared_examples_for :subscriber do
187
269
 
188
270
  context "without any options" do
189
271
  it "returns the array of subscriptions" do
190
- expect(test_instance.subscription_index[0]).to eq(@subscription1)
191
- expect(test_instance.subscription_index[1]).to eq(@subscription2)
272
+ expect(test_instance.subscription_index[0]).to eq(@subscription1)
273
+ expect(test_instance.subscription_index[1]).to eq(@subscription2)
192
274
  expect(test_instance.subscription_index.size).to eq(2)
193
275
  end
194
276
  end
@@ -196,7 +278,7 @@ shared_examples_for :subscriber do
196
278
  context "with limit" do
197
279
  it "returns the same as subscriptions with limit" do
198
280
  options = { limit: 1 }
199
- expect(test_instance.subscription_index(options)[0]).to eq(@subscription1)
281
+ expect(test_instance.subscription_index(options)[0]).to eq(@subscription1)
200
282
  expect(test_instance.subscription_index(options).size).to eq(1)
201
283
  end
202
284
  end
@@ -204,8 +286,8 @@ shared_examples_for :subscriber do
204
286
  context "with reverse" do
205
287
  it "returns the earliest order" do
206
288
  options = { reverse: true }
207
- expect(test_instance.subscription_index(options)[0]).to eq(@subscription2)
208
- expect(test_instance.subscription_index(options)[1]).to eq(@subscription1)
289
+ expect(test_instance.subscription_index(options)[0]).to eq(@subscription2)
290
+ expect(test_instance.subscription_index(options)[1]).to eq(@subscription1)
209
291
  expect(test_instance.subscription_index(options).size).to eq(2)
210
292
  end
211
293
  end
@@ -213,37 +295,36 @@ shared_examples_for :subscriber do
213
295
  context 'with filtered_by_key options' do
214
296
  it "returns filtered notifications only" do
215
297
  options = { filtered_by_key: 'subscription_key_2' }
216
- expect(test_instance.subscription_index(options)[0]).to eq(@subscription2)
298
+ expect(test_instance.subscription_index(options)[0]).to eq(@subscription2)
217
299
  expect(test_instance.subscription_index(options).size).to eq(1)
218
300
  end
219
301
  end
220
302
 
221
303
  context 'with custom_filter options' do
222
- it "returns filtered notifications only" do
223
- if ActivityNotification.config.orm == :active_record
224
- options = { custom_filter: ["subscriptions.key = ?", 'subscription_key_2'] }
225
- expect(test_instance.subscription_index(options)[0]).to eq(@subscription2)
226
- expect(test_instance.subscription_index(options).size).to eq(1)
227
- end
228
-
304
+ it "returns filtered subscriptions only" do
229
305
  options = { custom_filter: { key: 'subscription_key_1' } }
230
- expect(test_instance.subscription_index(options)[0]).to eq(@subscription1)
306
+ expect(test_instance.subscription_index(options)[0]).to eq(@subscription1)
231
307
  expect(test_instance.subscription_index(options).size).to eq(1)
232
308
  end
233
- end
234
309
 
235
- #TODO
236
- # context 'with with_target options' do
237
- # it "calls includes(:target)" do
238
- # expect(ActiveRecord::Base).to receive(:includes).with(:target)
239
- # test_instance.subscription_index(with_target: true)
240
- # end
241
- # end
310
+ it "returns filtered subscriptions only with filter depending on ORM" do
311
+ options =
312
+ case ActivityNotification.config.orm
313
+ when :active_record then { custom_filter: ["subscriptions.key = ?", 'subscription_key_2'] }
314
+ when :mongoid then { custom_filter: { key: {'$eq': 'subscription_key_2'} } }
315
+ when :dynamoid then { custom_filter: {'key.begins_with': 'subscription_key_2'} }
316
+ end
317
+ expect(test_instance.subscription_index(options)[0]).to eq(@subscription2)
318
+ expect(test_instance.subscription_index(options).size).to eq(1)
319
+ end
320
+ end
242
321
 
243
- context 'without with_target options' do
244
- it "does not call includes(:target)" do
245
- expect(ActiveRecord::Base).not_to receive(:includes).with(:target)
246
- test_instance.subscription_index
322
+ if ActivityNotification.config.orm == :active_record
323
+ context 'with with_target options' do
324
+ it "calls with_target" do
325
+ expect(ActivityNotification::Subscription).to receive_message_chain(:with_target)
326
+ test_instance.subscription_index(with_target: true)
327
+ end
247
328
  end
248
329
  end
249
330
  end
@@ -322,23 +403,28 @@ shared_examples_for :subscriber do
322
403
 
323
404
  context 'with custom_filter options' do
324
405
  it "returns filtered notifications only" do
325
- if ActivityNotification.config.orm == :active_record
326
- options = { custom_filter: ["notifications.key = ?", 'notification_key_2'] }
327
- expect(test_instance.notification_keys(options)[0]).to eq('notification_key_2')
328
- expect(test_instance.notification_keys(options).size).to eq(1)
329
- end
330
-
331
406
  options = { custom_filter: { key: 'notification_key_1' } }
332
407
  expect(test_instance.notification_keys(options)[0]).to eq('notification_key_1')
333
408
  expect(test_instance.notification_keys(options).size).to eq(1)
334
409
  end
410
+
411
+ it "returns filtered notifications only with filter depending on ORM" do
412
+ options =
413
+ case ActivityNotification.config.orm
414
+ when :active_record then { custom_filter: ["notifications.key = ?", 'notification_key_2'] }
415
+ when :mongoid then { custom_filter: { key: {'$eq': 'notification_key_2'} } }
416
+ when :dynamoid then { custom_filter: {'key.begins_with': 'notification_key_2'} }
417
+ end
418
+ expect(test_instance.notification_keys(options)[0]).to eq('notification_key_2')
419
+ expect(test_instance.notification_keys(options).size).to eq(1)
420
+ end
335
421
  end
336
422
  end
337
423
  end
338
424
 
339
425
  # Function test for subscriptions
340
426
 
341
- describe "#notify_to" do
427
+ describe "#receive_notification_of" do
342
428
  before do
343
429
  @test_key = 'test_key'
344
430
  Comment.acts_as_notifiable described_class.to_s.underscore.pluralize.to_sym, targets: [], email_allowed: true
@@ -353,13 +439,13 @@ shared_examples_for :subscriber do
353
439
  end
354
440
 
355
441
  it "returns created notification" do
356
- notification = test_instance.notify_to(@notifiable, key: @test_key)
442
+ notification = test_instance.receive_notification_of(@notifiable, key: @test_key)
357
443
  expect(notification).not_to be_nil
358
444
  expect(notification.target).to eq(test_instance)
359
445
  end
360
446
 
361
447
  it "creates notification records" do
362
- test_instance.notify_to(@notifiable, key: @test_key)
448
+ test_instance.receive_notification_of(@notifiable, key: @test_key)
363
449
  expect(test_instance.notifications.unopened_only.count).to eq(1)
364
450
  end
365
451
  end
@@ -374,7 +460,7 @@ shared_examples_for :subscriber do
374
460
  it "sends notification email later" do
375
461
  expect {
376
462
  perform_enqueued_jobs do
377
- test_instance.notify_to(@notifiable, key: @test_key)
463
+ test_instance.receive_notification_of(@notifiable, key: @test_key)
378
464
  end
379
465
  }.to change { ActivityNotification::Mailer.deliveries.size }.by(1)
380
466
  expect(ActivityNotification::Mailer.deliveries.size).to eq(1)
@@ -382,14 +468,14 @@ shared_examples_for :subscriber do
382
468
 
383
469
  it "sends notification email with active job queue" do
384
470
  expect {
385
- test_instance.notify_to(@notifiable, key: @test_key)
471
+ test_instance.receive_notification_of(@notifiable, key: @test_key)
386
472
  }.to change(ActiveJob::Base.queue_adapter.enqueued_jobs, :size).by(1)
387
473
  end
388
474
  end
389
475
 
390
476
  context "with send_later false" do
391
477
  it "sends notification email now" do
392
- test_instance.notify_to(@notifiable, key: @test_key, send_later: false)
478
+ test_instance.receive_notification_of(@notifiable, key: @test_key, send_later: false)
393
479
  expect(ActivityNotification::Mailer.deliveries.size).to eq(1)
394
480
  end
395
481
  end
@@ -402,12 +488,12 @@ shared_examples_for :subscriber do
402
488
  end
403
489
 
404
490
  it "returns nil" do
405
- notification = test_instance.notify_to(@notifiable, key: @test_key)
491
+ notification = test_instance.receive_notification_of(@notifiable, key: @test_key)
406
492
  expect(notification).to be_nil
407
493
  end
408
494
 
409
495
  it "does not create notification records" do
410
- test_instance.notify_to(@notifiable, key: @test_key)
496
+ test_instance.receive_notification_of(@notifiable, key: @test_key)
411
497
  expect(test_instance.notifications.unopened_only.count).to eq(0)
412
498
  end
413
499
  end
@@ -422,7 +508,7 @@ shared_examples_for :subscriber do
422
508
  it "does not send notification email later" do
423
509
  expect {
424
510
  perform_enqueued_jobs do
425
- test_instance.notify_to(@notifiable, key: @test_key)
511
+ test_instance.receive_notification_of(@notifiable, key: @test_key)
426
512
  end
427
513
  }.to change { ActivityNotification::Mailer.deliveries.size }.by(0)
428
514
  expect(ActivityNotification::Mailer.deliveries.size).to eq(0)
@@ -430,14 +516,14 @@ shared_examples_for :subscriber do
430
516
 
431
517
  it "does not send notification email with active job queue" do
432
518
  expect {
433
- test_instance.notify_to(@notifiable, key: @test_key)
519
+ test_instance.receive_notification_of(@notifiable, key: @test_key)
434
520
  }.to change(ActiveJob::Base.queue_adapter.enqueued_jobs, :size).by(0)
435
521
  end
436
522
  end
437
523
 
438
524
  context "with send_later false" do
439
525
  it "does not send notification email now" do
440
- test_instance.notify_to(@notifiable, key: @test_key, send_later: false)
526
+ test_instance.receive_notification_of(@notifiable, key: @test_key, send_later: false)
441
527
  expect(ActivityNotification::Mailer.deliveries.size).to eq(0)
442
528
  end
443
529
  end
@@ -461,7 +547,7 @@ shared_examples_for :subscriber do
461
547
  described_class._notification_subscription_allowed = true
462
548
  end
463
549
 
464
- context "without configured subscpriotion" do
550
+ context "without configured subscription" do
465
551
  context "without subscribe_as_default argument" do
466
552
  context "with true as ActivityNotification.config.subscribe_as_default" do
467
553
  it "returns true" do
@@ -483,7 +569,7 @@ shared_examples_for :subscriber do
483
569
  end
484
570
  end
485
571
 
486
- context "with configured subscpriotion" do
572
+ context "with configured subscription" do
487
573
  context "subscribing to notification" do
488
574
  it "returns true" do
489
575
  subscription = test_instance.create_subscription(key: @test_key)
@@ -520,7 +606,7 @@ shared_examples_for :subscriber do
520
606
  described_class._notification_subscription_allowed = true
521
607
  end
522
608
 
523
- context "without configured subscpriotion" do
609
+ context "without configured subscription" do
524
610
  context "without subscribe_as_default argument" do
525
611
  context "with true as ActivityNotification.config.subscribe_as_default" do
526
612
  it "returns true" do
@@ -529,6 +615,28 @@ shared_examples_for :subscriber do
529
615
  expect(test_instance.subscribes_to_notification_email?(@test_key)).to be_truthy
530
616
  ActivityNotification.config.subscribe_as_default = subscribe_as_default
531
617
  end
618
+
619
+ context "with true as ActivityNotification.config.subscribe_to_email_as_default" do
620
+ it "returns true" do
621
+ subscribe_as_default = ActivityNotification.config.subscribe_as_default
622
+ ActivityNotification.config.subscribe_as_default = true
623
+ ActivityNotification.config.subscribe_to_email_as_default = true
624
+ expect(test_instance.subscribes_to_notification_email?(@test_key)).to be_truthy
625
+ ActivityNotification.config.subscribe_as_default = subscribe_as_default
626
+ ActivityNotification.config.subscribe_to_email_as_default = nil
627
+ end
628
+ end
629
+
630
+ context "with false as ActivityNotification.config.subscribe_to_email_as_default" do
631
+ it "returns false" do
632
+ subscribe_as_default = ActivityNotification.config.subscribe_as_default
633
+ ActivityNotification.config.subscribe_as_default = true
634
+ ActivityNotification.config.subscribe_to_email_as_default = false
635
+ expect(test_instance.subscribes_to_notification_email?(@test_key)).to be_falsey
636
+ ActivityNotification.config.subscribe_as_default = subscribe_as_default
637
+ ActivityNotification.config.subscribe_to_email_as_default = nil
638
+ end
639
+ end
532
640
  end
533
641
 
534
642
  context "with false as ActivityNotification.config.subscribe_as_default" do
@@ -538,11 +646,33 @@ shared_examples_for :subscriber do
538
646
  expect(test_instance.subscribes_to_notification_email?(@test_key)).to be_falsey
539
647
  ActivityNotification.config.subscribe_as_default = subscribe_as_default
540
648
  end
649
+
650
+ context "with true as ActivityNotification.config.subscribe_to_email_as_default" do
651
+ it "returns false" do
652
+ subscribe_as_default = ActivityNotification.config.subscribe_as_default
653
+ ActivityNotification.config.subscribe_as_default = false
654
+ ActivityNotification.config.subscribe_to_email_as_default = true
655
+ expect(test_instance.subscribes_to_notification_email?(@test_key)).to be_falsey
656
+ ActivityNotification.config.subscribe_as_default = subscribe_as_default
657
+ ActivityNotification.config.subscribe_to_email_as_default = nil
658
+ end
659
+ end
660
+
661
+ context "with false as ActivityNotification.config.subscribe_to_email_as_default" do
662
+ it "returns false" do
663
+ subscribe_as_default = ActivityNotification.config.subscribe_as_default
664
+ ActivityNotification.config.subscribe_as_default = false
665
+ ActivityNotification.config.subscribe_to_email_as_default = false
666
+ expect(test_instance.subscribes_to_notification_email?(@test_key)).to be_falsey
667
+ ActivityNotification.config.subscribe_as_default = subscribe_as_default
668
+ ActivityNotification.config.subscribe_to_email_as_default = nil
669
+ end
670
+ end
541
671
  end
542
672
  end
543
673
  end
544
674
 
545
- context "with configured subscpriotion" do
675
+ context "with configured subscription" do
546
676
  context "subscribing to notification email" do
547
677
  it "returns true" do
548
678
  subscription = test_instance.create_subscription(key: @test_key)
@@ -580,7 +710,7 @@ shared_examples_for :subscriber do
580
710
  described_class._notification_subscription_allowed = true
581
711
  end
582
712
 
583
- context "without configured subscpriotion" do
713
+ context "without configured subscription" do
584
714
  context "without subscribe_as_default argument" do
585
715
  context "with true as ActivityNotification.config.subscribe_as_default" do
586
716
  it "returns true" do
@@ -589,6 +719,28 @@ shared_examples_for :subscriber do
589
719
  expect(test_instance.subscribes_to_optional_target?(@test_key, @optional_target_name)).to be_truthy
590
720
  ActivityNotification.config.subscribe_as_default = subscribe_as_default
591
721
  end
722
+
723
+ context "with true as ActivityNotification.config.subscribe_to_optional_targets_as_default" do
724
+ it "returns true" do
725
+ subscribe_as_default = ActivityNotification.config.subscribe_as_default
726
+ ActivityNotification.config.subscribe_as_default = true
727
+ ActivityNotification.config.subscribe_to_optional_targets_as_default = true
728
+ expect(test_instance.subscribes_to_optional_target?(@test_key, @optional_target_name)).to be_truthy
729
+ ActivityNotification.config.subscribe_as_default = subscribe_as_default
730
+ ActivityNotification.config.subscribe_to_optional_targets_as_default = nil
731
+ end
732
+ end
733
+
734
+ context "with false as ActivityNotification.config.subscribe_to_optional_targets_as_default" do
735
+ it "returns false" do
736
+ subscribe_as_default = ActivityNotification.config.subscribe_as_default
737
+ ActivityNotification.config.subscribe_as_default = true
738
+ ActivityNotification.config.subscribe_to_optional_targets_as_default = false
739
+ expect(test_instance.subscribes_to_optional_target?(@test_key, @optional_target_name)).to be_falsey
740
+ ActivityNotification.config.subscribe_as_default = subscribe_as_default
741
+ ActivityNotification.config.subscribe_to_optional_targets_as_default = nil
742
+ end
743
+ end
592
744
  end
593
745
 
594
746
  context "with false as ActivityNotification.config.subscribe_as_default" do
@@ -598,11 +750,33 @@ shared_examples_for :subscriber do
598
750
  expect(test_instance.subscribes_to_optional_target?(@test_key, @optional_target_name)).to be_falsey
599
751
  ActivityNotification.config.subscribe_as_default = subscribe_as_default
600
752
  end
753
+
754
+ context "with true as ActivityNotification.config.subscribe_to_optional_targets_as_default" do
755
+ it "returns false" do
756
+ subscribe_as_default = ActivityNotification.config.subscribe_as_default
757
+ ActivityNotification.config.subscribe_as_default = false
758
+ ActivityNotification.config.subscribe_to_optional_targets_as_default = true
759
+ expect(test_instance.subscribes_to_optional_target?(@test_key, @optional_target_name)).to be_falsey
760
+ ActivityNotification.config.subscribe_as_default = subscribe_as_default
761
+ ActivityNotification.config.subscribe_to_optional_targets_as_default = nil
762
+ end
763
+ end
764
+
765
+ context "with false as ActivityNotification.config.subscribe_to_optional_targets_as_default" do
766
+ it "returns false" do
767
+ subscribe_as_default = ActivityNotification.config.subscribe_as_default
768
+ ActivityNotification.config.subscribe_as_default = false
769
+ ActivityNotification.config.subscribe_to_optional_targets_as_default = false
770
+ expect(test_instance.subscribes_to_optional_target?(@test_key, @optional_target_name)).to be_falsey
771
+ ActivityNotification.config.subscribe_as_default = subscribe_as_default
772
+ ActivityNotification.config.subscribe_to_optional_targets_as_default = nil
773
+ end
774
+ end
601
775
  end
602
776
  end
603
777
  end
604
778
 
605
- context "with configured subscpriotion" do
779
+ context "with configured subscription" do
606
780
  context "subscribing to the specified optional target" do
607
781
  it "returns true" do
608
782
  subscription = test_instance.create_subscription(key: @test_key, optional_targets: { ActivityNotification::Subscription.to_optional_target_key(@optional_target_name) => true })