activity_notification 2.4.1 → 2.5.0

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 (250) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -2
  3. data/app/jobs/activity_notification/cascading_notification_job.rb +123 -0
  4. data/docs/Functions.md +197 -1
  5. data/lib/activity_notification/apis/cascading_notification_api.rb +208 -0
  6. data/lib/activity_notification/apis/notification_api.rb +3 -0
  7. data/lib/activity_notification/config.rb +10 -0
  8. data/lib/activity_notification/mailers/helpers.rb +27 -1
  9. data/lib/activity_notification/version.rb +1 -1
  10. data/lib/generators/templates/activity_notification.rb +8 -0
  11. metadata +5 -441
  12. data/.codeclimate.yml +0 -33
  13. data/.coveralls.yml +0 -1
  14. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -22
  15. data/.github/ISSUE_TEMPLATE/feature_request.md +0 -17
  16. data/.github/pull_request_template.md +0 -13
  17. data/.github/workflows/build.yml +0 -100
  18. data/.gitignore +0 -74
  19. data/.rspec +0 -3
  20. data/.rubocop.yml +0 -1157
  21. data/.yardopts +0 -6
  22. data/CHANGELOG.md +0 -452
  23. data/Gemfile +0 -31
  24. data/Procfile +0 -2
  25. data/Rakefile +0 -28
  26. data/activity_notification.gemspec +0 -44
  27. data/ai-curated-specs/issues/172/design.md +0 -220
  28. data/ai-curated-specs/issues/172/tasks.md +0 -326
  29. data/ai-curated-specs/issues/188/design.md +0 -227
  30. data/ai-curated-specs/issues/188/requirements.md +0 -78
  31. data/ai-curated-specs/issues/188/tasks.md +0 -203
  32. data/ai-curated-specs/issues/188/upstream-contributions.md +0 -592
  33. data/ai-curated-specs/issues/50/design.md +0 -235
  34. data/ai-curated-specs/issues/50/requirements.md +0 -49
  35. data/ai-curated-specs/issues/50/tasks.md +0 -232
  36. data/bin/_dynamodblocal +0 -4
  37. data/bin/bundle_update.sh +0 -7
  38. data/bin/deploy_on_heroku.sh +0 -16
  39. data/bin/install_dynamodblocal.sh +0 -5
  40. data/bin/start_dynamodblocal.sh +0 -47
  41. data/bin/stop_dynamodblocal.sh +0 -34
  42. data/gemfiles/Gemfile.rails-5.0 +0 -25
  43. data/gemfiles/Gemfile.rails-5.1 +0 -25
  44. data/gemfiles/Gemfile.rails-5.2 +0 -24
  45. data/gemfiles/Gemfile.rails-6.0 +0 -23
  46. data/gemfiles/Gemfile.rails-6.1 +0 -22
  47. data/gemfiles/Gemfile.rails-7.0 +0 -25
  48. data/gemfiles/Gemfile.rails-7.1 +0 -23
  49. data/gemfiles/Gemfile.rails-7.2 +0 -23
  50. data/gemfiles/Gemfile.rails-8.0 +0 -24
  51. data/package.json +0 -8
  52. data/spec/channels/notification_api_channel_shared_examples.rb +0 -59
  53. data/spec/channels/notification_api_channel_spec.rb +0 -49
  54. data/spec/channels/notification_api_with_devise_channel_spec.rb +0 -76
  55. data/spec/channels/notification_channel_shared_examples.rb +0 -59
  56. data/spec/channels/notification_channel_spec.rb +0 -48
  57. data/spec/channels/notification_with_devise_channel_spec.rb +0 -97
  58. data/spec/concerns/apis/notification_api_spec.rb +0 -1627
  59. data/spec/concerns/apis/subscription_api_spec.rb +0 -474
  60. data/spec/concerns/common_spec.rb +0 -213
  61. data/spec/concerns/models/group_spec.rb +0 -61
  62. data/spec/concerns/models/notifiable_spec.rb +0 -782
  63. data/spec/concerns/models/notifier_spec.rb +0 -71
  64. data/spec/concerns/models/subscriber_spec.rb +0 -800
  65. data/spec/concerns/models/target_spec.rb +0 -1285
  66. data/spec/concerns/renderable_spec.rb +0 -129
  67. data/spec/config_spec.rb +0 -85
  68. data/spec/controllers/common_controller_spec.rb +0 -25
  69. data/spec/controllers/controller_spec_utility.rb +0 -100
  70. data/spec/controllers/dummy_common_controller.rb +0 -5
  71. data/spec/controllers/notifications_api_controller_shared_examples.rb +0 -619
  72. data/spec/controllers/notifications_api_controller_spec.rb +0 -19
  73. data/spec/controllers/notifications_api_with_devise_controller_spec.rb +0 -60
  74. data/spec/controllers/notifications_controller_shared_examples.rb +0 -743
  75. data/spec/controllers/notifications_controller_spec.rb +0 -11
  76. data/spec/controllers/notifications_with_devise_controller_spec.rb +0 -97
  77. data/spec/controllers/subscriptions_api_controller_shared_examples.rb +0 -750
  78. data/spec/controllers/subscriptions_api_controller_spec.rb +0 -19
  79. data/spec/controllers/subscriptions_api_with_devise_controller_spec.rb +0 -60
  80. data/spec/controllers/subscriptions_controller_shared_examples.rb +0 -946
  81. data/spec/controllers/subscriptions_controller_spec.rb +0 -11
  82. data/spec/controllers/subscriptions_with_devise_controller_spec.rb +0 -97
  83. data/spec/factories/admins.rb +0 -5
  84. data/spec/factories/articles.rb +0 -5
  85. data/spec/factories/comments.rb +0 -6
  86. data/spec/factories/dummy/dummy_group.rb +0 -4
  87. data/spec/factories/dummy/dummy_notifiable.rb +0 -4
  88. data/spec/factories/dummy/dummy_notifier.rb +0 -4
  89. data/spec/factories/dummy/dummy_subscriber.rb +0 -4
  90. data/spec/factories/dummy/dummy_target.rb +0 -4
  91. data/spec/factories/notifications.rb +0 -7
  92. data/spec/factories/subscriptions.rb +0 -8
  93. data/spec/factories/users.rb +0 -11
  94. data/spec/generators/controllers_generator_spec.rb +0 -85
  95. data/spec/generators/install_generator_spec.rb +0 -43
  96. data/spec/generators/migration/migration_generator_spec.rb +0 -80
  97. data/spec/generators/models_generator_spec.rb +0 -96
  98. data/spec/generators/views_generator_spec.rb +0 -195
  99. data/spec/helpers/polymorphic_helpers_spec.rb +0 -89
  100. data/spec/helpers/view_helpers_spec.rb +0 -547
  101. data/spec/jobs/notification_resilience_job_spec.rb +0 -167
  102. data/spec/jobs/notify_all_job_spec.rb +0 -23
  103. data/spec/jobs/notify_job_spec.rb +0 -23
  104. data/spec/jobs/notify_to_job_spec.rb +0 -23
  105. data/spec/mailers/mailer_spec.rb +0 -214
  106. data/spec/mailers/notification_resilience_spec.rb +0 -263
  107. data/spec/models/dummy/dummy_group_spec.rb +0 -10
  108. data/spec/models/dummy/dummy_notifiable_spec.rb +0 -10
  109. data/spec/models/dummy/dummy_notifier_spec.rb +0 -10
  110. data/spec/models/dummy/dummy_subscriber_spec.rb +0 -8
  111. data/spec/models/dummy/dummy_target_spec.rb +0 -10
  112. data/spec/models/notification_spec.rb +0 -472
  113. data/spec/models/subscription_spec.rb +0 -215
  114. data/spec/optional_targets/action_cable_api_channel_spec.rb +0 -34
  115. data/spec/optional_targets/action_cable_channel_spec.rb +0 -41
  116. data/spec/optional_targets/amazon_sns_spec.rb +0 -47
  117. data/spec/optional_targets/base_spec.rb +0 -45
  118. data/spec/optional_targets/slack_spec.rb +0 -44
  119. data/spec/orm/dynamoid_spec.rb +0 -115
  120. data/spec/rails_app/Rakefile +0 -15
  121. data/spec/rails_app/app/assets/config/manifest.js +0 -3
  122. data/spec/rails_app/app/assets/images/.keep +0 -0
  123. data/spec/rails_app/app/assets/javascripts/application.js +0 -3
  124. data/spec/rails_app/app/assets/javascripts/cable.js +0 -12
  125. data/spec/rails_app/app/assets/stylesheets/application.css +0 -15
  126. data/spec/rails_app/app/assets/stylesheets/reset.css +0 -85
  127. data/spec/rails_app/app/assets/stylesheets/style.css +0 -244
  128. data/spec/rails_app/app/controllers/admins_controller.rb +0 -21
  129. data/spec/rails_app/app/controllers/application_controller.rb +0 -5
  130. data/spec/rails_app/app/controllers/articles_controller.rb +0 -67
  131. data/spec/rails_app/app/controllers/comments_controller.rb +0 -36
  132. data/spec/rails_app/app/controllers/concerns/.keep +0 -0
  133. data/spec/rails_app/app/controllers/spa_controller.rb +0 -7
  134. data/spec/rails_app/app/controllers/users/notifications_controller.rb +0 -2
  135. data/spec/rails_app/app/controllers/users/notifications_with_devise_controller.rb +0 -2
  136. data/spec/rails_app/app/controllers/users/subscriptions_controller.rb +0 -2
  137. data/spec/rails_app/app/controllers/users/subscriptions_with_devise_controller.rb +0 -2
  138. data/spec/rails_app/app/controllers/users_controller.rb +0 -26
  139. data/spec/rails_app/app/helpers/application_helper.rb +0 -2
  140. data/spec/rails_app/app/helpers/devise_helper.rb +0 -2
  141. data/spec/rails_app/app/javascript/App.vue +0 -40
  142. data/spec/rails_app/app/javascript/components/DeviseTokenAuth.vue +0 -82
  143. data/spec/rails_app/app/javascript/components/Top.vue +0 -98
  144. data/spec/rails_app/app/javascript/components/notifications/Index.vue +0 -200
  145. data/spec/rails_app/app/javascript/components/notifications/Notification.vue +0 -133
  146. data/spec/rails_app/app/javascript/components/notifications/NotificationContent.vue +0 -122
  147. data/spec/rails_app/app/javascript/components/subscriptions/Index.vue +0 -279
  148. data/spec/rails_app/app/javascript/components/subscriptions/NewSubscription.vue +0 -112
  149. data/spec/rails_app/app/javascript/components/subscriptions/NotificationKey.vue +0 -141
  150. data/spec/rails_app/app/javascript/components/subscriptions/Subscription.vue +0 -226
  151. data/spec/rails_app/app/javascript/config/development.js +0 -5
  152. data/spec/rails_app/app/javascript/config/environment.js +0 -7
  153. data/spec/rails_app/app/javascript/config/production.js +0 -5
  154. data/spec/rails_app/app/javascript/config/test.js +0 -5
  155. data/spec/rails_app/app/javascript/packs/application.js +0 -18
  156. data/spec/rails_app/app/javascript/packs/spa.js +0 -14
  157. data/spec/rails_app/app/javascript/router/index.js +0 -73
  158. data/spec/rails_app/app/javascript/store/index.js +0 -37
  159. data/spec/rails_app/app/mailers/.keep +0 -0
  160. data/spec/rails_app/app/mailers/custom_notification_mailer.rb +0 -5
  161. data/spec/rails_app/app/models/admin.rb +0 -35
  162. data/spec/rails_app/app/models/article.rb +0 -54
  163. data/spec/rails_app/app/models/comment.rb +0 -81
  164. data/spec/rails_app/app/models/dummy/dummy_base.rb +0 -11
  165. data/spec/rails_app/app/models/dummy/dummy_group.rb +0 -23
  166. data/spec/rails_app/app/models/dummy/dummy_notifiable.rb +0 -15
  167. data/spec/rails_app/app/models/dummy/dummy_notifiable_target.rb +0 -27
  168. data/spec/rails_app/app/models/dummy/dummy_notifier.rb +0 -15
  169. data/spec/rails_app/app/models/dummy/dummy_subscriber.rb +0 -14
  170. data/spec/rails_app/app/models/dummy/dummy_target.rb +0 -16
  171. data/spec/rails_app/app/models/user.rb +0 -73
  172. data/spec/rails_app/app/views/activity_notification/mailer/dummy_subscribers/test_key.text.erb +0 -1
  173. data/spec/rails_app/app/views/activity_notification/notifications/default/article/_update.html.erb +0 -146
  174. data/spec/rails_app/app/views/activity_notification/notifications/default/custom/_path_test.html.erb +0 -1
  175. data/spec/rails_app/app/views/activity_notification/notifications/default/custom/_test.html.erb +0 -1
  176. data/spec/rails_app/app/views/activity_notification/notifications/users/_custom_index.html.erb +0 -1
  177. data/spec/rails_app/app/views/activity_notification/notifications/users/custom/_test.html.erb +0 -1
  178. data/spec/rails_app/app/views/activity_notification/notifications/users/overridden/custom/_test.html.erb +0 -1
  179. data/spec/rails_app/app/views/activity_notification/optional_targets/admins/amazon_sns/comment/_default.text.erb +0 -10
  180. data/spec/rails_app/app/views/articles/_form.html.erb +0 -24
  181. data/spec/rails_app/app/views/articles/edit.html.erb +0 -8
  182. data/spec/rails_app/app/views/articles/index.html.erb +0 -113
  183. data/spec/rails_app/app/views/articles/new.html.erb +0 -7
  184. data/spec/rails_app/app/views/articles/show.html.erb +0 -49
  185. data/spec/rails_app/app/views/layouts/_header.html.erb +0 -46
  186. data/spec/rails_app/app/views/layouts/application.html.erb +0 -15
  187. data/spec/rails_app/app/views/spa/index.html.erb +0 -2
  188. data/spec/rails_app/babel.config.js +0 -72
  189. data/spec/rails_app/bin/bundle +0 -3
  190. data/spec/rails_app/bin/rails +0 -4
  191. data/spec/rails_app/bin/rake +0 -4
  192. data/spec/rails_app/bin/setup +0 -29
  193. data/spec/rails_app/bin/webpack +0 -18
  194. data/spec/rails_app/bin/webpack-dev-server +0 -18
  195. data/spec/rails_app/config/application.rb +0 -54
  196. data/spec/rails_app/config/boot.rb +0 -5
  197. data/spec/rails_app/config/cable.yml +0 -8
  198. data/spec/rails_app/config/database.yml +0 -36
  199. data/spec/rails_app/config/dynamoid.rb +0 -13
  200. data/spec/rails_app/config/environment.rb +0 -26
  201. data/spec/rails_app/config/environments/development.rb +0 -60
  202. data/spec/rails_app/config/environments/production.rb +0 -85
  203. data/spec/rails_app/config/environments/test.rb +0 -53
  204. data/spec/rails_app/config/initializers/activity_notification.rb +0 -104
  205. data/spec/rails_app/config/initializers/assets.rb +0 -11
  206. data/spec/rails_app/config/initializers/backtrace_silencers.rb +0 -7
  207. data/spec/rails_app/config/initializers/cookies_serializer.rb +0 -3
  208. data/spec/rails_app/config/initializers/copy_it.aws.rb.template +0 -6
  209. data/spec/rails_app/config/initializers/devise.rb +0 -278
  210. data/spec/rails_app/config/initializers/devise_token_auth.rb +0 -55
  211. data/spec/rails_app/config/initializers/filter_parameter_logging.rb +0 -4
  212. data/spec/rails_app/config/initializers/inflections.rb +0 -16
  213. data/spec/rails_app/config/initializers/mime_types.rb +0 -4
  214. data/spec/rails_app/config/initializers/mysql.rb +0 -9
  215. data/spec/rails_app/config/initializers/session_store.rb +0 -3
  216. data/spec/rails_app/config/initializers/wrap_parameters.rb +0 -14
  217. data/spec/rails_app/config/initializers/zeitwerk.rb +0 -10
  218. data/spec/rails_app/config/locales/activity_notification.en.yml +0 -26
  219. data/spec/rails_app/config/locales/devise.en.yml +0 -62
  220. data/spec/rails_app/config/mongoid.yml +0 -13
  221. data/spec/rails_app/config/routes.rb +0 -50
  222. data/spec/rails_app/config/secrets.yml +0 -22
  223. data/spec/rails_app/config/webpack/development.js +0 -5
  224. data/spec/rails_app/config/webpack/environment.js +0 -7
  225. data/spec/rails_app/config/webpack/loaders/vue.js +0 -6
  226. data/spec/rails_app/config/webpack/production.js +0 -5
  227. data/spec/rails_app/config/webpack/test.js +0 -5
  228. data/spec/rails_app/config/webpacker.yml +0 -97
  229. data/spec/rails_app/config.ru +0 -4
  230. data/spec/rails_app/db/migrate/20160716000000_create_test_tables.rb +0 -42
  231. data/spec/rails_app/db/migrate/20181209000000_create_activity_notification_tables.rb +0 -33
  232. data/spec/rails_app/db/migrate/20191201000000_add_tokens_to_users.rb +0 -10
  233. data/spec/rails_app/db/schema.rb +0 -98
  234. data/spec/rails_app/db/seeds.rb +0 -95
  235. data/spec/rails_app/lib/custom_optional_targets/console_output.rb +0 -16
  236. data/spec/rails_app/lib/custom_optional_targets/raise_error.rb +0 -14
  237. data/spec/rails_app/lib/custom_optional_targets/wrong_target.rb +0 -13
  238. data/spec/rails_app/lib/mailer_previews/mailer_preview.rb +0 -29
  239. data/spec/rails_app/package.json +0 -23
  240. data/spec/rails_app/postcss.config.js +0 -12
  241. data/spec/rails_app/public/404.html +0 -67
  242. data/spec/rails_app/public/422.html +0 -67
  243. data/spec/rails_app/public/500.html +0 -66
  244. data/spec/rails_app/public/favicon.ico +0 -0
  245. data/spec/roles/acts_as_group_spec.rb +0 -30
  246. data/spec/roles/acts_as_notifiable_spec.rb +0 -432
  247. data/spec/roles/acts_as_notifier_spec.rb +0 -30
  248. data/spec/roles/acts_as_target_spec.rb +0 -36
  249. data/spec/spec_helper.rb +0 -56
  250. data/spec/version_spec.rb +0 -31
@@ -1,25 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec path: '../'
4
-
5
- gem 'rails', '~> 5.1.0'
6
-
7
- group :development do
8
- gem 'bullet'
9
- gem 'rack-cors'
10
- end
11
-
12
- group :test do
13
- gem 'rspec-rails', '< 4.0.0'
14
- gem 'rails-controller-testing'
15
- gem 'action-cable-testing'
16
- gem 'ammeter'
17
- gem 'timecop'
18
- gem 'committee'
19
- gem 'committee-rails', '< 0.6'
20
- # gem 'coveralls', require: false
21
- gem 'coveralls_reborn', require: false
22
- gem 'mongoid', '>= 4.0.0', '< 8.0'
23
- end
24
-
25
- gem 'dotenv-rails', groups: [:development, :test]
@@ -1,24 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec path: '../'
4
-
5
- gem 'rails', '~> 5.2.0'
6
-
7
- group :development do
8
- gem 'bullet'
9
- gem 'rack-cors'
10
- end
11
-
12
- group :test do
13
- gem 'rspec-rails', '< 4.0.0'
14
- gem 'rails-controller-testing'
15
- gem 'action-cable-testing'
16
- gem 'ammeter'
17
- gem 'timecop'
18
- gem 'committee'
19
- gem 'committee-rails', '< 0.6'
20
- # gem 'coveralls', require: false
21
- gem 'coveralls_reborn', require: false
22
- end
23
-
24
- gem 'dotenv-rails', groups: [:development, :test]
@@ -1,23 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec path: '../'
4
-
5
- gem 'rails', '~> 6.0.0'
6
- gem 'psych', '< 4'
7
-
8
- group :development do
9
- gem 'bullet'
10
- gem 'rack-cors'
11
- end
12
-
13
- group :test do
14
- gem 'rails-controller-testing'
15
- gem 'ammeter'
16
- gem 'timecop'
17
- gem 'committee'
18
- gem 'committee-rails', '< 0.6'
19
- # gem 'coveralls', require: false
20
- gem 'coveralls_reborn', require: false
21
- end
22
-
23
- gem 'dotenv-rails', groups: [:development, :test]
@@ -1,22 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec path: '../'
4
-
5
- gem 'rails', '~> 6.1.0'
6
-
7
- group :development do
8
- gem 'bullet'
9
- gem 'rack-cors'
10
- end
11
-
12
- group :test do
13
- gem 'rails-controller-testing'
14
- gem 'ammeter'
15
- gem 'timecop'
16
- gem 'committee'
17
- gem 'committee-rails', '< 0.6'
18
- # gem 'coveralls', require: false
19
- gem 'coveralls_reborn', require: false
20
- end
21
-
22
- gem 'dotenv-rails', groups: [:development, :test]
@@ -1,25 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec path: '../'
4
-
5
- gem 'rails', '~> 7.0.0'
6
- gem 'sprockets-rails'
7
- gem 'concurrent-ruby', '<= 1.3.4'
8
- gem 'sqlite3', '~> 1.4'
9
-
10
- group :development do
11
- gem 'bullet'
12
- gem 'rack-cors'
13
- end
14
-
15
- group :test do
16
- gem 'rails-controller-testing'
17
- gem 'ammeter'
18
- gem 'timecop'
19
- gem 'committee'
20
- gem 'committee-rails', '< 0.6'
21
- # gem 'coveralls', require: false
22
- gem 'coveralls_reborn', require: false
23
- end
24
-
25
- gem 'dotenv-rails', groups: [:development, :test]
@@ -1,23 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec path: '../'
4
-
5
- gem 'rails', '~> 7.1.0'
6
- gem 'sprockets-rails'
7
-
8
- group :development do
9
- gem 'bullet'
10
- gem 'rack-cors'
11
- end
12
-
13
- group :test do
14
- gem 'rails-controller-testing'
15
- gem 'ammeter'
16
- gem 'timecop'
17
- gem 'committee'
18
- gem 'committee-rails', '< 0.6'
19
- # gem 'coveralls', require: false
20
- gem 'coveralls_reborn', require: false
21
- end
22
-
23
- gem 'dotenv-rails', groups: [:development, :test]
@@ -1,23 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec path: '../'
4
-
5
- gem 'rails', '~> 7.2.0'
6
- gem 'sprockets-rails'
7
-
8
- group :development do
9
- gem 'bullet'
10
- gem 'rack-cors'
11
- end
12
-
13
- group :test do
14
- gem 'rails-controller-testing'
15
- gem 'ammeter'
16
- gem 'timecop'
17
- gem 'committee'
18
- gem 'committee-rails', '< 0.6'
19
- # gem 'coveralls', require: false
20
- gem 'coveralls_reborn', require: false
21
- end
22
-
23
- gem 'dotenv-rails', groups: [:development, :test]
@@ -1,24 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec path: '../'
4
-
5
- gem 'rails', '~> 8.0.0'
6
- gem 'sprockets-rails'
7
-
8
- group :development do
9
- gem 'bullet'
10
- gem 'rack-cors'
11
- gem 'sqlite3'
12
- end
13
-
14
- group :test do
15
- gem 'rails-controller-testing'
16
- gem 'ammeter'
17
- gem 'timecop'
18
- gem 'committee'
19
- gem 'committee-rails', '< 0.6'
20
- # gem 'coveralls', require: false
21
- gem 'coveralls_reborn', require: false
22
- end
23
-
24
- gem 'dotenv-rails', groups: [:development, :test]
data/package.json DELETED
@@ -1,8 +0,0 @@
1
- {
2
- "engines": {
3
- "yarn": "1.x"
4
- },
5
- "scripts": {
6
- "postinstall": "cd ./spec/rails_app && yarn && yarn install --check-files"
7
- }
8
- }
@@ -1,59 +0,0 @@
1
- # @See https://github.com/palkan/action-cable-testing
2
- shared_examples_for :notification_api_channel do
3
- let(:target_params) { { target_type: target_type }.merge(extra_params || {}) }
4
-
5
- before { stub_connection }
6
-
7
- context "with target_type and target_id parameters" do
8
- it "successfully subscribes" do
9
- subscribe(target_params.merge({ target_id: test_target.id, typed_target_param => 'dummy' }).merge(@auth_headers))
10
- expect(subscription).to be_confirmed
11
- expect(subscription).to have_stream_from("#{ActivityNotification.config.notification_api_channel_prefix}_#{test_target.to_class_name}#{ActivityNotification.config.composite_key_delimiter}#{test_target.id}")
12
- end
13
- end
14
-
15
- context "with target_type and (typed_target)_id parameters" do
16
- it "successfully subscribes" do
17
- subscribe(target_params.merge({ typed_target_param => test_target.id }).merge(@auth_headers))
18
- expect(subscription).to be_confirmed
19
- expect(subscription).to have_stream_from("#{ActivityNotification.config.notification_api_channel_prefix}_#{test_target.to_class_name}#{ActivityNotification.config.composite_key_delimiter}#{test_target.id}")
20
- end
21
- end
22
-
23
- context "without any parameters" do
24
- it "rejects subscription" do
25
- subscribe(@auth_headers)
26
- expect(subscription).to be_rejected
27
- expect {
28
- expect(subscription).to have_stream_from("#{ActivityNotification.config.notification_api_channel_prefix}_#{test_target.to_class_name}#{ActivityNotification.config.composite_key_delimiter}#{test_target.id}")
29
- }.to raise_error(/Must be subscribed!/)
30
- end
31
- end
32
-
33
- context "without target_type parameter" do
34
- it "rejects subscription" do
35
- subscribe({ typed_target_param => test_target.id }.merge(@auth_headers))
36
- expect(subscription).to be_rejected
37
- expect {
38
- expect(subscription).to have_stream_from("#{ActivityNotification.config.notification_api_channel_prefix}_#{test_target.to_class_name}#{ActivityNotification.config.composite_key_delimiter}#{test_target.id}")
39
- }.to raise_error(/Must be subscribed!/)
40
- end
41
- end
42
-
43
- context "without target_id and (typed_target)_id parameters" do
44
- it "rejects subscription" do
45
- subscribe(target_params.merge(@auth_headers))
46
- expect(subscription).to be_rejected
47
- end
48
- end
49
-
50
- context "with not found (typed_target)_id parameter" do
51
- it "rejects subscription" do
52
- subscribe(target_params.merge({ typed_target_param => 0 }).merge(@auth_headers))
53
- expect(subscription).to be_rejected
54
- expect {
55
- expect(subscription).to have_stream_from("#{ActivityNotification.config.notification_api_channel_prefix}_#{test_target.to_class_name}#{ActivityNotification.config.composite_key_delimiter}#{test_target.id}")
56
- }.to raise_error(/Must be subscribed!/)
57
- end
58
- end
59
- end
@@ -1,49 +0,0 @@
1
- require 'channels/notification_api_channel_shared_examples'
2
-
3
- # @See https://github.com/palkan/action-cable-testing
4
- describe ActivityNotification::NotificationApiChannel, type: :channel do
5
- let(:test_target) { create(:user) }
6
- let(:target_type) { "User" }
7
- let(:typed_target_param) { "user_id" }
8
- let(:extra_params) { {} }
9
-
10
- context "when target.notification_action_cable_with_devise? returns true" do
11
- before do
12
- @user_notification_action_cable_with_devise = User._notification_action_cable_with_devise
13
- User._notification_action_cable_with_devise = true
14
- end
15
-
16
- after do
17
- User._notification_action_cable_with_devise = @user_notification_action_cable_with_devise
18
- end
19
-
20
- it "rejects subscription even if target_type and target_id parameters are passed" do
21
- subscribe({ target_type: target_type, target_id: test_target.id })
22
- expect(subscription).to be_rejected
23
- expect {
24
- expect(subscription).to have_stream_from("#{ActivityNotification.config.notification_api_channel_prefix}_#{test_target.to_class_name}#{ActivityNotification.config.composite_key_delimiter}#{test_target.id}")
25
- }.to raise_error(/Must be subscribed!/)
26
- end
27
- end
28
-
29
- context "when target.notification_action_cable_with_devise? returns false" do
30
- before do
31
- @user_notification_action_cable_with_devise = User._notification_action_cable_with_devise
32
- User._notification_action_cable_with_devise = false
33
- @auth_headers = {}
34
- end
35
-
36
- after do
37
- User._notification_action_cable_with_devise = @user_notification_action_cable_with_devise
38
- end
39
-
40
- it "successfully subscribes with target_type and target_id parameters" do
41
- subscribe({ target_type: target_type, target_id: test_target.id })
42
- expect(subscription).to be_confirmed
43
- expect(subscription).to have_stream_from("#{ActivityNotification.config.notification_api_channel_prefix}_#{test_target.to_class_name}#{ActivityNotification.config.composite_key_delimiter}#{test_target.id}")
44
- expect(subscription).to have_stream_from("activity_notification_api_channel_User##{test_target.id}")
45
- end
46
-
47
- it_behaves_like :notification_api_channel
48
- end
49
- end
@@ -1,76 +0,0 @@
1
- require 'channels/notification_api_channel_shared_examples'
2
-
3
- # @See https://github.com/palkan/action-cable-testing
4
- describe ActivityNotification::NotificationApiWithDeviseChannel, type: :channel do
5
- let(:test_user) { create(:confirmed_user) }
6
- let(:unauthenticated_user) { create(:confirmed_user) }
7
- let(:test_target) { create(:admin, user: test_user) }
8
- let(:target_type) { "Admin" }
9
- let(:typed_target_param) { "admin_id" }
10
- let(:extra_params) { { devise_type: :users } }
11
- let(:valid_session) {}
12
-
13
- # @See https://github.com/lynndylanhurley/devise_token_auth
14
- def sign_in(current_target)
15
- @auth_headers = current_target.create_new_auth_token
16
- end
17
-
18
- before do
19
- @user_notification_action_cable_with_devise = User._notification_action_cable_with_devise
20
- User._notification_action_cable_with_devise = true
21
- end
22
-
23
- after do
24
- User._notification_action_cable_with_devise = @user_notification_action_cable_with_devise
25
- end
26
-
27
- context "signed in with devise as authenticated user" do
28
- before do
29
- sign_in test_user
30
- end
31
-
32
- it_behaves_like :notification_api_channel
33
- end
34
-
35
- context "signed in with devise as unauthenticated user" do
36
- let(:target_params) { { target_type: target_type, devise_type: :users } }
37
-
38
- before do
39
- sign_in unauthenticated_user
40
- end
41
-
42
- it "rejects subscription" do
43
- subscribe(target_params.merge({ typed_target_param => test_target }).merge(@auth_headers))
44
- expect(subscription).to be_rejected
45
- expect {
46
- expect(subscription).to have_stream_from("#{ActivityNotification.config.notification_api_channel_prefix}_#{test_target.to_class_name}#{ActivityNotification.config.composite_key_delimiter}#{test_target.id}")
47
- }.to raise_error(/Must be subscribed!/)
48
- end
49
- end
50
-
51
- context "unsigned in with devise" do
52
- let(:target_params) { { target_type: target_type, devise_type: :users } }
53
-
54
- it "rejects subscription" do
55
- subscribe(target_params.merge({ typed_target_param => test_target }))
56
- expect(subscription).to be_rejected
57
- expect {
58
- expect(subscription).to have_stream_from("#{ActivityNotification.config.notification_api_channel_prefix}_#{test_target.to_class_name}#{ActivityNotification.config.composite_key_delimiter}#{test_target.id}")
59
- }.to raise_error(/Must be subscribed!/)
60
- end
61
- end
62
-
63
- context "without target_id and (typed_target)_id parameters for devise integrated channel with devise_type option" do
64
- let(:target_params) { { target_type: target_type, devise_type: :users } }
65
-
66
- before do
67
- sign_in test_target.user
68
- end
69
-
70
- it "successfully subscribes" do
71
- subscribe(target_params.merge(@auth_headers))
72
- expect(subscription).to have_stream_from("#{ActivityNotification.config.notification_api_channel_prefix}_#{test_target.to_class_name}#{ActivityNotification.config.composite_key_delimiter}#{test_target.id}")
73
- expect(subscription).to have_stream_from("activity_notification_api_channel_Admin##{test_target.id}")
74
- end
75
- end
76
- end
@@ -1,59 +0,0 @@
1
- # @See https://github.com/palkan/action-cable-testing
2
- shared_examples_for :notification_channel do
3
- let(:target_params) { { target_type: target_type }.merge(extra_params || {}) }
4
-
5
- before { stub_connection }
6
-
7
- context "with target_type and target_id parameters" do
8
- it "successfully subscribes" do
9
- subscribe(target_params.merge({ target_id: test_target.id, typed_target_param => 'dummy' }))
10
- expect(subscription).to be_confirmed
11
- expect(subscription).to have_stream_from("#{ActivityNotification.config.notification_channel_prefix}_#{test_target.to_class_name}#{ActivityNotification.config.composite_key_delimiter}#{test_target.id}")
12
- end
13
- end
14
-
15
- context "with target_type and (typed_target)_id parameters" do
16
- it "successfully subscribes" do
17
- subscribe(target_params.merge({ typed_target_param => test_target.id }))
18
- expect(subscription).to be_confirmed
19
- expect(subscription).to have_stream_from("#{ActivityNotification.config.notification_channel_prefix}_#{test_target.to_class_name}#{ActivityNotification.config.composite_key_delimiter}#{test_target.id}")
20
- end
21
- end
22
-
23
- context "without any parameters" do
24
- it "rejects subscription" do
25
- subscribe
26
- expect(subscription).to be_rejected
27
- expect {
28
- expect(subscription).to have_stream_from("#{ActivityNotification.config.notification_channel_prefix}_#{test_target.to_class_name}#{ActivityNotification.config.composite_key_delimiter}#{test_target.id}")
29
- }.to raise_error(/Must be subscribed!/)
30
- end
31
- end
32
-
33
- context "without target_type parameter" do
34
- it "rejects subscription" do
35
- subscribe({ typed_target_param => test_target.id })
36
- expect(subscription).to be_rejected
37
- expect {
38
- expect(subscription).to have_stream_from("#{ActivityNotification.config.notification_channel_prefix}_#{test_target.to_class_name}#{ActivityNotification.config.composite_key_delimiter}#{test_target.id}")
39
- }.to raise_error(/Must be subscribed!/)
40
- end
41
- end
42
-
43
- context "without target_id and (typed_target)_id parameters" do
44
- it "rejects subscription" do
45
- subscribe(target_params)
46
- expect(subscription).to be_rejected
47
- end
48
- end
49
-
50
- context "with not found (typed_target)_id parameter" do
51
- it "rejects subscription" do
52
- subscribe(target_params.merge({ typed_target_param => 0 }))
53
- expect(subscription).to be_rejected
54
- expect {
55
- expect(subscription).to have_stream_from("#{ActivityNotification.config.notification_channel_prefix}_#{test_target.to_class_name}#{ActivityNotification.config.composite_key_delimiter}#{test_target.id}")
56
- }.to raise_error(/Must be subscribed!/)
57
- end
58
- end
59
- end
@@ -1,48 +0,0 @@
1
- require 'channels/notification_channel_shared_examples'
2
-
3
- # @See https://github.com/palkan/action-cable-testing
4
- describe ActivityNotification::NotificationChannel, type: :channel do
5
- let(:test_target) { create(:user) }
6
- let(:target_type) { "User" }
7
- let(:typed_target_param) { "user_id" }
8
- let(:extra_params) { {} }
9
-
10
- context "when target.notification_action_cable_with_devise? returns true" do
11
- before do
12
- @user_notification_action_cable_with_devise = User._notification_action_cable_with_devise
13
- User._notification_action_cable_with_devise = true
14
- end
15
-
16
- after do
17
- User._notification_action_cable_with_devise = @user_notification_action_cable_with_devise
18
- end
19
-
20
- it "rejects subscription even if target_type and target_id parameters are passed" do
21
- subscribe({ target_type: target_type, target_id: test_target.id })
22
- expect(subscription).to be_rejected
23
- expect {
24
- expect(subscription).to have_stream_from("#{ActivityNotification.config.notification_channel_prefix}_#{test_target.to_class_name}#{ActivityNotification.config.composite_key_delimiter}#{test_target.id}")
25
- }.to raise_error(/Must be subscribed!/)
26
- end
27
- end
28
-
29
- context "when target.notification_action_cable_with_devise? returns false" do
30
- before do
31
- @user_notification_action_cable_with_devise = User._notification_action_cable_with_devise
32
- User._notification_action_cable_with_devise = false
33
- end
34
-
35
- after do
36
- User._notification_action_cable_with_devise = @user_notification_action_cable_with_devise
37
- end
38
-
39
- it "successfully subscribes with target_type and target_id parameters" do
40
- subscribe({ target_type: target_type, target_id: test_target.id })
41
- expect(subscription).to be_confirmed
42
- expect(subscription).to have_stream_from("#{ActivityNotification.config.notification_channel_prefix}_#{test_target.to_class_name}#{ActivityNotification.config.composite_key_delimiter}#{test_target.id}")
43
- expect(subscription).to have_stream_from("activity_notification_channel_User##{test_target.id}")
44
- end
45
-
46
- it_behaves_like :notification_channel
47
- end
48
- end
@@ -1,97 +0,0 @@
1
- require 'channels/notification_channel_shared_examples'
2
-
3
- #TODO Make it more smart test method
4
- module ActivityNotification
5
- module Test
6
- class NotificationWithDeviseChannel < ::ActivityNotification::NotificationWithDeviseChannel
7
- @@custom_current_target = nil
8
-
9
- def set_custom_current_target(custom_current_target)
10
- @@custom_current_target = custom_current_target
11
- end
12
-
13
- def find_current_target(devise_type = nil)
14
- super(devise_type)
15
- rescue NoMethodError
16
- devise_type = (devise_type || @target.notification_devise_resource.class.name).to_s
17
- @@custom_current_target.is_a?(devise_type.to_model_class) ? @@custom_current_target : nil
18
- end
19
- end
20
- end
21
- end
22
-
23
- # @See https://github.com/palkan/action-cable-testing
24
- describe ActivityNotification::Test::NotificationWithDeviseChannel, type: :channel do
25
- let(:test_user) { create(:confirmed_user) }
26
- let(:unauthenticated_user) { create(:confirmed_user) }
27
- let(:test_target) { create(:admin, user: test_user) }
28
- let(:target_type) { "Admin" }
29
- let(:typed_target_param) { "admin_id" }
30
- let(:extra_params) { { devise_type: :users } }
31
- let(:valid_session) {}
32
-
33
- #TODO Make it more smart test method
34
- #include Devise::Test::IntegrationHelpers
35
- def sign_in(current_target)
36
- described_class.new(ActionCable::Channel::ConnectionStub.new, {}).set_custom_current_target(current_target)
37
- end
38
-
39
- before do
40
- @user_notification_action_cable_with_devise = User._notification_action_cable_with_devise
41
- User._notification_action_cable_with_devise = true
42
- end
43
-
44
- after do
45
- User._notification_action_cable_with_devise = @user_notification_action_cable_with_devise
46
- end
47
-
48
- context "signed in with devise as authenticated user" do
49
- before do
50
- sign_in test_user
51
- end
52
-
53
- it_behaves_like :notification_channel
54
- end
55
-
56
- context "signed in with devise as unauthenticated user" do
57
- let(:target_params) { { target_type: target_type, devise_type: :users } }
58
-
59
- before do
60
- sign_in unauthenticated_user
61
- end
62
-
63
- it "rejects subscription" do
64
- subscribe(target_params.merge({ typed_target_param => test_target }))
65
- expect(subscription).to be_rejected
66
- expect {
67
- expect(subscription).to have_stream_from("#{ActivityNotification.config.notification_channel_prefix}_#{test_target.to_class_name}#{ActivityNotification.config.composite_key_delimiter}#{test_target.id}")
68
- }.to raise_error(/Must be subscribed!/)
69
- end
70
- end
71
-
72
- context "unsigned in with devise" do
73
- let(:target_params) { { target_type: target_type, devise_type: :users } }
74
-
75
- it "rejects subscription" do
76
- subscribe(target_params.merge({ typed_target_param => test_target }))
77
- expect(subscription).to be_rejected
78
- expect {
79
- expect(subscription).to have_stream_from("#{ActivityNotification.config.notification_channel_prefix}_#{test_target.to_class_name}#{ActivityNotification.config.composite_key_delimiter}#{test_target.id}")
80
- }.to raise_error(/Must be subscribed!/)
81
- end
82
- end
83
-
84
- context "without target_id and (typed_target)_id parameters for devise integrated channel with devise_type option" do
85
- let(:target_params) { { target_type: target_type, devise_type: :users } }
86
-
87
- before do
88
- sign_in test_target.user
89
- end
90
-
91
- it "successfully subscribes" do
92
- subscribe(target_params)
93
- expect(subscription).to have_stream_from("#{ActivityNotification.config.notification_channel_prefix}_#{test_target.to_class_name}#{ActivityNotification.config.composite_key_delimiter}#{test_target.id}")
94
- expect(subscription).to have_stream_from("activity_notification_channel_Admin##{test_target.id}")
95
- end
96
- end
97
- end