activity_notification 1.4.4 → 2.2.4

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 (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 })