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.
- checksums.yaml +5 -5
- data/.github/ISSUE_TEMPLATE/bug_report.md +22 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +17 -0
- data/.github/pull_request_template.md +13 -0
- data/.github/workflows/build.yml +116 -0
- data/.gitignore +15 -3
- data/CHANGELOG.md +200 -1
- data/Gemfile +17 -2
- data/Procfile +2 -0
- data/README.md +168 -1033
- data/Rakefile +19 -10
- data/activity_notification.gemspec +14 -9
- data/app/channels/activity_notification/notification_api_channel.rb +12 -0
- data/app/channels/activity_notification/notification_api_with_devise_channel.rb +46 -0
- data/app/channels/activity_notification/notification_channel.rb +37 -0
- data/app/channels/activity_notification/notification_with_devise_channel.rb +51 -0
- data/app/controllers/activity_notification/apidocs_controller.rb +75 -0
- data/app/controllers/activity_notification/notifications_api_controller.rb +143 -0
- data/app/controllers/activity_notification/notifications_api_with_devise_controller.rb +7 -0
- data/app/controllers/activity_notification/notifications_controller.rb +60 -54
- data/app/controllers/activity_notification/subscriptions_api_controller.rb +197 -0
- data/app/controllers/activity_notification/subscriptions_api_with_devise_controller.rb +7 -0
- data/app/controllers/activity_notification/subscriptions_controller.rb +83 -73
- data/app/jobs/activity_notification/notify_all_job.rb +25 -0
- data/app/jobs/activity_notification/notify_job.rb +26 -0
- data/app/jobs/activity_notification/notify_to_job.rb +25 -0
- data/app/views/activity_notification/notifications/default/_default.html.erb +23 -23
- data/app/views/activity_notification/notifications/default/_default_without_grouping.html.erb +19 -19
- data/app/views/activity_notification/notifications/default/_index.html.erb +3 -3
- data/app/views/activity_notification/notifications/default/index.html.erb +60 -7
- data/app/views/activity_notification/notifications/default/open.js.erb +2 -2
- data/app/views/activity_notification/notifications/default/open_all.js.erb +2 -2
- data/app/views/activity_notification/notifications/default/show.html.erb +2 -2
- data/app/views/activity_notification/optional_targets/default/action_cable_channel/_default.html.erb +176 -0
- data/app/views/activity_notification/optional_targets/default/base/_default.text.erb +1 -1
- data/app/views/activity_notification/optional_targets/default/slack/_default.text.erb +1 -1
- data/app/views/activity_notification/subscriptions/default/_form.html.erb +2 -2
- data/app/views/activity_notification/subscriptions/default/_notification_keys.html.erb +5 -33
- data/app/views/activity_notification/subscriptions/default/_subscription.html.erb +8 -8
- data/app/views/activity_notification/subscriptions/default/index.html.erb +13 -9
- data/app/views/activity_notification/subscriptions/default/show.html.erb +3 -3
- data/app/views/activity_notification/subscriptions/default/subscribe.js.erb +1 -1
- data/app/views/activity_notification/subscriptions/default/subscribe_to_email.js.erb +1 -1
- data/app/views/activity_notification/subscriptions/default/subscribe_to_optional_target.js.erb +1 -1
- data/app/views/activity_notification/subscriptions/default/unsubscribe.js.erb +1 -1
- data/app/views/activity_notification/subscriptions/default/unsubscribe_to_email.js.erb +1 -1
- data/app/views/activity_notification/subscriptions/default/unsubscribe_to_optional_target.js.erb +1 -1
- data/bin/_dynamodblocal +4 -0
- data/bin/bundle_update.sh +7 -0
- data/bin/deploy_on_heroku.sh +16 -0
- data/bin/install_dynamodblocal.sh +5 -0
- data/bin/start_dynamodblocal.sh +47 -0
- data/bin/stop_dynamodblocal.sh +34 -0
- data/docs/CODE_OF_CONDUCT.md +76 -0
- data/docs/CONTRIBUTING.md +36 -0
- data/docs/Functions.md +1146 -0
- data/docs/Setup.md +817 -0
- data/docs/Testing.md +148 -0
- data/gemfiles/Gemfile.rails-5.0 +8 -1
- data/gemfiles/Gemfile.rails-5.1 +7 -1
- data/gemfiles/Gemfile.rails-5.2 +24 -0
- data/gemfiles/Gemfile.rails-6.0 +23 -0
- data/gemfiles/Gemfile.rails-6.1 +22 -0
- data/gemfiles/Gemfile.rails-7.0 +25 -0
- data/lib/activity_notification/apis/notification_api.rb +356 -159
- data/lib/activity_notification/apis/subscription_api.rb +98 -59
- data/lib/activity_notification/apis/swagger.rb +6 -0
- data/lib/activity_notification/common.rb +18 -7
- data/lib/activity_notification/config.rb +176 -30
- data/lib/activity_notification/controllers/common_api_controller.rb +30 -0
- data/lib/activity_notification/controllers/common_controller.rb +47 -27
- data/lib/activity_notification/controllers/concerns/swagger/error_responses.rb +55 -0
- data/lib/activity_notification/controllers/concerns/swagger/notifications_api.rb +273 -0
- data/lib/activity_notification/controllers/concerns/swagger/notifications_parameters.rb +92 -0
- data/lib/activity_notification/controllers/concerns/swagger/subscriptions_api.rb +405 -0
- data/lib/activity_notification/controllers/concerns/swagger/subscriptions_parameters.rb +50 -0
- data/lib/activity_notification/controllers/devise_authentication_controller.rb +22 -5
- data/lib/activity_notification/gem_version.rb +14 -0
- data/lib/activity_notification/helpers/errors.rb +6 -0
- data/lib/activity_notification/helpers/view_helpers.rb +118 -28
- data/lib/activity_notification/mailers/helpers.rb +19 -12
- data/lib/activity_notification/models/concerns/notifiable.rb +142 -55
- data/lib/activity_notification/models/concerns/subscriber.rb +28 -13
- data/lib/activity_notification/models/concerns/swagger/error_schema.rb +36 -0
- data/lib/activity_notification/models/concerns/swagger/notification_schema.rb +209 -0
- data/lib/activity_notification/models/concerns/swagger/subscription_schema.rb +162 -0
- data/lib/activity_notification/models/concerns/target.rb +131 -32
- data/lib/activity_notification/models/notification.rb +1 -0
- data/lib/activity_notification/models/subscription.rb +1 -0
- data/lib/activity_notification/models.rb +23 -1
- data/lib/activity_notification/optional_targets/action_cable_api_channel.rb +69 -0
- data/lib/activity_notification/optional_targets/action_cable_channel.rb +68 -0
- data/lib/activity_notification/optional_targets/base.rb +9 -15
- data/lib/activity_notification/orm/active_record/notification.rb +23 -34
- data/lib/activity_notification/orm/active_record/subscription.rb +1 -1
- data/lib/activity_notification/orm/active_record.rb +1 -1
- data/lib/activity_notification/orm/dynamoid/extension.rb +262 -0
- data/lib/activity_notification/orm/dynamoid/notification.rb +224 -0
- data/lib/activity_notification/orm/dynamoid/subscription.rb +82 -0
- data/lib/activity_notification/orm/dynamoid.rb +530 -0
- data/lib/activity_notification/orm/mongoid/notification.rb +29 -28
- data/lib/activity_notification/orm/mongoid/subscription.rb +3 -3
- data/lib/activity_notification/orm/mongoid.rb +33 -1
- data/lib/activity_notification/rails/routes.rb +273 -60
- data/lib/activity_notification/renderable.rb +22 -7
- data/lib/activity_notification/roles/acts_as_notifiable.rb +64 -1
- data/lib/activity_notification/roles/acts_as_target.rb +99 -9
- data/lib/activity_notification/version.rb +1 -1
- data/lib/activity_notification.rb +14 -0
- data/lib/generators/activity_notification/controllers_generator.rb +2 -1
- data/lib/generators/templates/activity_notification.rb +61 -7
- data/lib/generators/templates/controllers/README +2 -2
- data/lib/generators/templates/controllers/notifications_api_controller.rb +31 -0
- data/lib/generators/templates/controllers/notifications_api_with_devise_controller.rb +31 -0
- data/lib/generators/templates/controllers/notifications_controller.rb +1 -37
- data/lib/generators/templates/controllers/notifications_with_devise_controller.rb +1 -45
- data/lib/generators/templates/controllers/subscriptions_api_controller.rb +61 -0
- data/lib/generators/templates/controllers/subscriptions_api_with_devise_controller.rb +61 -0
- data/lib/generators/templates/controllers/subscriptions_controller.rb +14 -37
- data/lib/generators/templates/controllers/subscriptions_with_devise_controller.rb +14 -45
- data/lib/generators/templates/migrations/migration.rb +5 -5
- data/lib/generators/templates/models/README +8 -4
- data/lib/generators/templates/models/notification.rb +1 -1
- data/lib/generators/templates/models/subscription.rb +1 -1
- data/lib/tasks/activity_notification_tasks.rake +14 -4
- data/package.json +8 -0
- data/spec/channels/notification_api_channel_shared_examples.rb +59 -0
- data/spec/channels/notification_api_channel_spec.rb +49 -0
- data/spec/channels/notification_api_with_devise_channel_spec.rb +76 -0
- data/spec/channels/notification_channel_shared_examples.rb +59 -0
- data/spec/channels/notification_channel_spec.rb +48 -0
- data/spec/channels/notification_with_devise_channel_spec.rb +97 -0
- data/spec/concerns/apis/notification_api_spec.rb +177 -12
- data/spec/concerns/apis/subscription_api_spec.rb +146 -4
- data/spec/concerns/common_spec.rb +25 -3
- data/spec/concerns/models/notifiable_spec.rb +161 -11
- data/spec/concerns/models/subscriber_spec.rb +253 -79
- data/spec/concerns/models/target_spec.rb +180 -47
- data/spec/concerns/renderable_spec.rb +35 -16
- data/spec/config_spec.rb +52 -1
- data/spec/controllers/controller_spec_utility.rb +100 -0
- data/spec/controllers/notifications_api_controller_shared_examples.rb +506 -0
- data/spec/controllers/notifications_api_controller_spec.rb +19 -0
- data/spec/controllers/notifications_api_with_devise_controller_spec.rb +60 -0
- data/spec/controllers/notifications_controller_shared_examples.rb +55 -76
- data/spec/controllers/notifications_controller_spec.rb +1 -2
- data/spec/controllers/notifications_with_devise_controller_spec.rb +14 -8
- data/spec/controllers/subscriptions_api_controller_shared_examples.rb +750 -0
- data/spec/controllers/subscriptions_api_controller_spec.rb +19 -0
- data/spec/controllers/subscriptions_api_with_devise_controller_spec.rb +60 -0
- data/spec/controllers/subscriptions_controller_shared_examples.rb +99 -121
- data/spec/controllers/subscriptions_controller_spec.rb +1 -2
- data/spec/controllers/subscriptions_with_devise_controller_spec.rb +14 -8
- data/spec/factories/notifications.rb +1 -1
- data/spec/factories/subscriptions.rb +3 -3
- data/spec/factories/users.rb +3 -3
- data/spec/generators/migration/migration_generator_spec.rb +29 -4
- data/spec/helpers/view_helpers_spec.rb +31 -21
- data/spec/jobs/notify_all_job_spec.rb +23 -0
- data/spec/jobs/notify_job_spec.rb +23 -0
- data/spec/jobs/notify_to_job_spec.rb +23 -0
- data/spec/mailers/mailer_spec.rb +42 -1
- data/spec/models/dummy/dummy_group_spec.rb +4 -0
- data/spec/models/dummy/dummy_notifiable_spec.rb +4 -0
- data/spec/models/dummy/dummy_notifier_spec.rb +4 -0
- data/spec/models/dummy/dummy_subscriber_spec.rb +3 -0
- data/spec/models/dummy/dummy_target_spec.rb +4 -0
- data/spec/models/notification_spec.rb +181 -45
- data/spec/models/subscription_spec.rb +77 -27
- data/spec/optional_targets/action_cable_api_channel_spec.rb +34 -0
- data/spec/optional_targets/action_cable_channel_spec.rb +41 -0
- data/spec/optional_targets/amazon_sns_spec.rb +0 -2
- data/spec/optional_targets/slack_spec.rb +0 -2
- data/spec/orm/dynamoid_spec.rb +115 -0
- data/spec/rails_app/Rakefile +9 -0
- data/spec/rails_app/app/assets/config/manifest.js +3 -0
- data/spec/rails_app/app/assets/javascripts/application.js +2 -1
- data/spec/rails_app/app/assets/javascripts/cable.js +12 -0
- data/spec/rails_app/app/controllers/admins_controller.rb +21 -0
- data/spec/rails_app/app/controllers/application_controller.rb +1 -1
- data/spec/rails_app/app/controllers/articles_controller.rb +6 -1
- data/spec/rails_app/app/controllers/comments_controller.rb +3 -1
- data/spec/rails_app/app/controllers/spa_controller.rb +7 -0
- data/spec/rails_app/app/controllers/users/notifications_controller.rb +0 -65
- data/spec/rails_app/app/controllers/users/notifications_with_devise_controller.rb +0 -73
- data/spec/rails_app/app/controllers/users/subscriptions_controller.rb +0 -77
- data/spec/rails_app/app/controllers/users/subscriptions_with_devise_controller.rb +0 -85
- data/spec/rails_app/app/controllers/users_controller.rb +26 -0
- data/spec/rails_app/app/javascript/App.vue +40 -0
- data/spec/rails_app/app/javascript/components/DeviseTokenAuth.vue +82 -0
- data/spec/rails_app/app/javascript/components/Top.vue +98 -0
- data/spec/rails_app/app/javascript/components/notifications/Index.vue +200 -0
- data/spec/rails_app/app/javascript/components/notifications/Notification.vue +133 -0
- data/spec/rails_app/app/javascript/components/notifications/NotificationContent.vue +122 -0
- data/spec/rails_app/app/javascript/components/subscriptions/Index.vue +279 -0
- data/spec/rails_app/app/javascript/components/subscriptions/NewSubscription.vue +112 -0
- data/spec/rails_app/app/javascript/components/subscriptions/NotificationKey.vue +141 -0
- data/spec/rails_app/app/javascript/components/subscriptions/Subscription.vue +226 -0
- data/spec/rails_app/app/javascript/config/development.js +5 -0
- data/spec/rails_app/app/javascript/config/environment.js +7 -0
- data/spec/rails_app/app/javascript/config/production.js +5 -0
- data/spec/rails_app/app/javascript/config/test.js +5 -0
- data/spec/rails_app/app/javascript/packs/application.js +18 -0
- data/spec/rails_app/app/javascript/packs/spa.js +14 -0
- data/spec/rails_app/app/javascript/router/index.js +73 -0
- data/spec/rails_app/app/javascript/store/index.js +37 -0
- data/spec/rails_app/app/models/admin.rb +15 -10
- data/spec/rails_app/app/models/article.rb +25 -20
- data/spec/rails_app/app/models/comment.rb +27 -62
- data/spec/rails_app/app/models/dummy/dummy_base.rb +1 -0
- data/spec/rails_app/app/models/dummy/dummy_group.rb +9 -0
- data/spec/rails_app/app/models/dummy/dummy_notifiable.rb +1 -0
- data/spec/rails_app/app/models/dummy/dummy_notifiable_target.rb +27 -0
- data/spec/rails_app/app/models/dummy/dummy_notifier.rb +1 -0
- data/spec/rails_app/app/models/dummy/dummy_subscriber.rb +1 -0
- data/spec/rails_app/app/models/dummy/dummy_target.rb +1 -0
- data/spec/rails_app/app/models/user.rb +44 -18
- data/spec/rails_app/app/views/activity_notification/notifications/default/article/_update.html.erb +146 -0
- data/spec/rails_app/app/views/activity_notification/notifications/users/overridden/custom/_test.html.erb +1 -0
- data/spec/rails_app/app/views/activity_notification/optional_targets/admins/amazon_sns/comment/_default.text.erb +1 -1
- data/spec/rails_app/app/views/articles/index.html.erb +68 -20
- data/spec/rails_app/app/views/articles/show.html.erb +1 -1
- data/spec/rails_app/app/views/layouts/_header.html.erb +9 -3
- data/spec/rails_app/app/views/spa/index.html.erb +2 -0
- data/spec/rails_app/babel.config.js +72 -0
- data/spec/rails_app/bin/webpack +18 -0
- data/spec/rails_app/bin/webpack-dev-server +18 -0
- data/spec/rails_app/config/application.rb +26 -6
- data/spec/rails_app/config/cable.yml +8 -0
- data/spec/rails_app/config/database.yml +1 -1
- data/spec/rails_app/config/dynamoid.rb +13 -0
- data/spec/rails_app/config/environment.rb +5 -1
- data/spec/rails_app/config/environments/development.rb +5 -0
- data/spec/rails_app/config/environments/production.rb +7 -1
- data/spec/rails_app/config/environments/test.rb +7 -11
- data/spec/rails_app/config/initializers/activity_notification.rb +63 -9
- data/spec/rails_app/config/initializers/copy_it.aws.rb.template +6 -0
- data/spec/rails_app/config/initializers/devise_token_auth.rb +55 -0
- data/spec/rails_app/config/initializers/mysql.rb +9 -0
- data/spec/rails_app/config/locales/activity_notification.en.yml +10 -4
- data/spec/rails_app/config/routes.rb +42 -1
- data/spec/rails_app/config/webpack/development.js +5 -0
- data/spec/rails_app/config/webpack/environment.js +7 -0
- data/spec/rails_app/config/webpack/loaders/vue.js +6 -0
- data/spec/rails_app/config/webpack/production.js +5 -0
- data/spec/rails_app/config/webpack/test.js +5 -0
- data/spec/rails_app/config/webpacker.yml +97 -0
- data/spec/rails_app/db/migrate/{20160715050433_create_test_tables.rb → 20160716000000_create_test_tables.rb} +1 -1
- data/spec/rails_app/db/migrate/{20160715050420_create_activity_notification_tables.rb → 20181209000000_create_activity_notification_tables.rb} +3 -3
- data/spec/rails_app/db/migrate/20191201000000_add_tokens_to_users.rb +10 -0
- data/spec/rails_app/db/schema.rb +46 -43
- data/spec/rails_app/db/seeds.rb +28 -4
- data/spec/rails_app/lib/custom_optional_targets/raise_error.rb +14 -0
- data/spec/rails_app/lib/mailer_previews/mailer_preview.rb +14 -4
- data/spec/rails_app/package.json +23 -0
- data/spec/rails_app/postcss.config.js +12 -0
- data/spec/roles/acts_as_group_spec.rb +0 -2
- data/spec/roles/acts_as_notifiable_spec.rb +80 -20
- data/spec/roles/acts_as_notifier_spec.rb +0 -2
- data/spec/roles/acts_as_target_spec.rb +1 -5
- data/spec/spec_helper.rb +13 -11
- data/spec/version_spec.rb +31 -0
- metadata +306 -53
- data/.travis.yml +0 -85
- data/Gemfile.lock +0 -234
- data/gemfiles/Gemfile.rails-4.2 +0 -17
- data/gemfiles/Gemfile.rails-4.2.lock +0 -225
- data/gemfiles/Gemfile.rails-5.0.lock +0 -234
- data/gemfiles/Gemfile.rails-5.1.lock +0 -234
- data/spec/rails_app/app/views/activity_notification/notifications/users/overriden/custom/_test.html.erb +0 -1
- /data/spec/rails_app/app/{models → assets/images}/.keep +0 -0
|
@@ -21,6 +21,7 @@ shared_examples_for :notifiable do
|
|
|
21
21
|
expect(described_class._notifier).to eq({})
|
|
22
22
|
expect(described_class._notification_parameters).to eq({})
|
|
23
23
|
expect(described_class._notification_email_allowed).to eq({})
|
|
24
|
+
expect(described_class._notifiable_action_cable_allowed).to eq({})
|
|
24
25
|
expect(described_class._notifiable_path).to eq({})
|
|
25
26
|
expect(described_class._printable_notifiable_name).to eq({})
|
|
26
27
|
end
|
|
@@ -47,7 +48,7 @@ shared_examples_for :notifiable do
|
|
|
47
48
|
end
|
|
48
49
|
end
|
|
49
50
|
|
|
50
|
-
context "configured with
|
|
51
|
+
context "configured with overridden method" do
|
|
51
52
|
it "returns specified value" do
|
|
52
53
|
module AdditionalMethods
|
|
53
54
|
def notification_users(key)
|
|
@@ -116,7 +117,7 @@ shared_examples_for :notifiable do
|
|
|
116
117
|
end
|
|
117
118
|
end
|
|
118
119
|
|
|
119
|
-
context "configured with
|
|
120
|
+
context "configured with overridden method" do
|
|
120
121
|
it "returns specified value" do
|
|
121
122
|
module AdditionalMethods
|
|
122
123
|
def notification_group_for_users(key)
|
|
@@ -175,7 +176,7 @@ shared_examples_for :notifiable do
|
|
|
175
176
|
end
|
|
176
177
|
end
|
|
177
178
|
|
|
178
|
-
context "configured with
|
|
179
|
+
context "configured with overridden method" do
|
|
179
180
|
it "returns specified value" do
|
|
180
181
|
module AdditionalMethods
|
|
181
182
|
def notification_group_expiry_delay_for_users(key)
|
|
@@ -234,7 +235,7 @@ shared_examples_for :notifiable do
|
|
|
234
235
|
end
|
|
235
236
|
end
|
|
236
237
|
|
|
237
|
-
context "configured with
|
|
238
|
+
context "configured with overridden method" do
|
|
238
239
|
it "returns specified value" do
|
|
239
240
|
module AdditionalMethods
|
|
240
241
|
def notification_parameters_for_users(key)
|
|
@@ -293,7 +294,7 @@ shared_examples_for :notifiable do
|
|
|
293
294
|
end
|
|
294
295
|
end
|
|
295
296
|
|
|
296
|
-
context "configured with
|
|
297
|
+
context "configured with overridden method" do
|
|
297
298
|
it "returns specified value" do
|
|
298
299
|
module AdditionalMethods
|
|
299
300
|
def notifier_for_users(key)
|
|
@@ -357,7 +358,7 @@ shared_examples_for :notifiable do
|
|
|
357
358
|
end
|
|
358
359
|
end
|
|
359
360
|
|
|
360
|
-
context "configured with
|
|
361
|
+
context "configured with overridden method" do
|
|
361
362
|
it "returns specified value" do
|
|
362
363
|
module AdditionalMethods
|
|
363
364
|
def notification_email_allowed_for_users?(target, key)
|
|
@@ -409,6 +410,134 @@ shared_examples_for :notifiable do
|
|
|
409
410
|
end
|
|
410
411
|
end
|
|
411
412
|
|
|
413
|
+
describe "#notifiable_action_cable_allowed?" do
|
|
414
|
+
context "without any configuration" do
|
|
415
|
+
it "returns ActivityNotification.config.action_cable_enabled" do
|
|
416
|
+
expect(test_instance.notifiable_action_cable_allowed?(test_target, 'dummy_key'))
|
|
417
|
+
.to eq(ActivityNotification.config.action_cable_enabled)
|
|
418
|
+
end
|
|
419
|
+
|
|
420
|
+
it "returns false as default" do
|
|
421
|
+
expect(test_instance.notifiable_action_cable_allowed?(test_target, 'dummy_key')).to be_falsey
|
|
422
|
+
end
|
|
423
|
+
end
|
|
424
|
+
|
|
425
|
+
context "configured with overridden method" do
|
|
426
|
+
it "returns specified value" do
|
|
427
|
+
module AdditionalMethods
|
|
428
|
+
def notifiable_action_cable_allowed_for_users?(target, key)
|
|
429
|
+
true
|
|
430
|
+
end
|
|
431
|
+
end
|
|
432
|
+
test_instance.extend(AdditionalMethods)
|
|
433
|
+
expect(test_instance.notifiable_action_cable_allowed?(test_target, 'dummy_key')).to eq(true)
|
|
434
|
+
end
|
|
435
|
+
end
|
|
436
|
+
|
|
437
|
+
context "configured with a field" do
|
|
438
|
+
it "returns specified value" do
|
|
439
|
+
described_class._notifiable_action_cable_allowed[:users] = true
|
|
440
|
+
expect(test_instance.notifiable_action_cable_allowed?(test_target, 'dummy_key')).to eq(true)
|
|
441
|
+
end
|
|
442
|
+
|
|
443
|
+
it "returns specified symbol without arguments" do
|
|
444
|
+
module AdditionalMethods
|
|
445
|
+
def custom_notifiable_action_cable_allowed?
|
|
446
|
+
true
|
|
447
|
+
end
|
|
448
|
+
end
|
|
449
|
+
test_instance.extend(AdditionalMethods)
|
|
450
|
+
described_class._notifiable_action_cable_allowed[:users] = :custom_notifiable_action_cable_allowed?
|
|
451
|
+
expect(test_instance.notifiable_action_cable_allowed?(test_target, 'dummy_key')).to eq(true)
|
|
452
|
+
end
|
|
453
|
+
|
|
454
|
+
it "returns specified symbol with target and key arguments" do
|
|
455
|
+
module AdditionalMethods
|
|
456
|
+
def custom_notifiable_action_cable_allowed?(target, key)
|
|
457
|
+
true
|
|
458
|
+
end
|
|
459
|
+
end
|
|
460
|
+
test_instance.extend(AdditionalMethods)
|
|
461
|
+
described_class._notifiable_action_cable_allowed[:users] = :custom_notifiable_action_cable_allowed?
|
|
462
|
+
expect(test_instance.notifiable_action_cable_allowed?(test_target, 'dummy_key')).to eq(true)
|
|
463
|
+
end
|
|
464
|
+
|
|
465
|
+
it "returns specified lambda with single notifiable argument" do
|
|
466
|
+
described_class._notifiable_action_cable_allowed[:users] = ->(notifiable){ true }
|
|
467
|
+
expect(test_instance.notifiable_action_cable_allowed?(test_target, 'dummy_key')).to eq(true)
|
|
468
|
+
end
|
|
469
|
+
|
|
470
|
+
it "returns specified lambda with notifiable, target and key arguments" do
|
|
471
|
+
described_class._notifiable_action_cable_allowed[:users] = ->(notifiable, target, key){ true }
|
|
472
|
+
expect(test_instance.notifiable_action_cable_allowed?(test_target, 'dummy_key')).to eq(true)
|
|
473
|
+
end
|
|
474
|
+
end
|
|
475
|
+
end
|
|
476
|
+
|
|
477
|
+
describe "#notifiable_action_cable_api_allowed?" do
|
|
478
|
+
context "without any configuration" do
|
|
479
|
+
it "returns ActivityNotification.config.action_cable_api_enabled" do
|
|
480
|
+
expect(test_instance.notifiable_action_cable_api_allowed?(test_target, 'dummy_key'))
|
|
481
|
+
.to eq(ActivityNotification.config.action_cable_api_enabled)
|
|
482
|
+
end
|
|
483
|
+
|
|
484
|
+
it "returns false as default" do
|
|
485
|
+
expect(test_instance.notifiable_action_cable_api_allowed?(test_target, 'dummy_key')).to be_falsey
|
|
486
|
+
end
|
|
487
|
+
end
|
|
488
|
+
|
|
489
|
+
context "configured with overridden method" do
|
|
490
|
+
it "returns specified value" do
|
|
491
|
+
module AdditionalMethods
|
|
492
|
+
def notifiable_action_cable_api_allowed_for_users?(target, key)
|
|
493
|
+
true
|
|
494
|
+
end
|
|
495
|
+
end
|
|
496
|
+
test_instance.extend(AdditionalMethods)
|
|
497
|
+
expect(test_instance.notifiable_action_cable_api_allowed?(test_target, 'dummy_key')).to eq(true)
|
|
498
|
+
end
|
|
499
|
+
end
|
|
500
|
+
|
|
501
|
+
context "configured with a field" do
|
|
502
|
+
it "returns specified value" do
|
|
503
|
+
described_class._notifiable_action_cable_api_allowed[:users] = true
|
|
504
|
+
expect(test_instance.notifiable_action_cable_api_allowed?(test_target, 'dummy_key')).to eq(true)
|
|
505
|
+
end
|
|
506
|
+
|
|
507
|
+
it "returns specified symbol without arguments" do
|
|
508
|
+
module AdditionalMethods
|
|
509
|
+
def custom_notifiable_action_cable_api_allowed?
|
|
510
|
+
true
|
|
511
|
+
end
|
|
512
|
+
end
|
|
513
|
+
test_instance.extend(AdditionalMethods)
|
|
514
|
+
described_class._notifiable_action_cable_api_allowed[:users] = :custom_notifiable_action_cable_api_allowed?
|
|
515
|
+
expect(test_instance.notifiable_action_cable_api_allowed?(test_target, 'dummy_key')).to eq(true)
|
|
516
|
+
end
|
|
517
|
+
|
|
518
|
+
it "returns specified symbol with target and key arguments" do
|
|
519
|
+
module AdditionalMethods
|
|
520
|
+
def custom_notifiable_action_cable_api_allowed?(target, key)
|
|
521
|
+
true
|
|
522
|
+
end
|
|
523
|
+
end
|
|
524
|
+
test_instance.extend(AdditionalMethods)
|
|
525
|
+
described_class._notifiable_action_cable_api_allowed[:users] = :custom_notifiable_action_cable_api_allowed?
|
|
526
|
+
expect(test_instance.notifiable_action_cable_api_allowed?(test_target, 'dummy_key')).to eq(true)
|
|
527
|
+
end
|
|
528
|
+
|
|
529
|
+
it "returns specified lambda with single notifiable argument" do
|
|
530
|
+
described_class._notifiable_action_cable_api_allowed[:users] = ->(notifiable){ true }
|
|
531
|
+
expect(test_instance.notifiable_action_cable_api_allowed?(test_target, 'dummy_key')).to eq(true)
|
|
532
|
+
end
|
|
533
|
+
|
|
534
|
+
it "returns specified lambda with notifiable, target and key arguments" do
|
|
535
|
+
described_class._notifiable_action_cable_api_allowed[:users] = ->(notifiable, target, key){ true }
|
|
536
|
+
expect(test_instance.notifiable_action_cable_api_allowed?(test_target, 'dummy_key')).to eq(true)
|
|
537
|
+
end
|
|
538
|
+
end
|
|
539
|
+
end
|
|
540
|
+
|
|
412
541
|
describe "#notifiable_path" do
|
|
413
542
|
context "without any configuration" do
|
|
414
543
|
it "raises NotImplementedError" do
|
|
@@ -424,7 +553,7 @@ shared_examples_for :notifiable do
|
|
|
424
553
|
end
|
|
425
554
|
end
|
|
426
555
|
|
|
427
|
-
context "configured with
|
|
556
|
+
context "configured with overridden method" do
|
|
428
557
|
it "returns specified value" do
|
|
429
558
|
module AdditionalMethods
|
|
430
559
|
def notifiable_path_for_users(key)
|
|
@@ -607,10 +736,10 @@ shared_examples_for :notifiable do
|
|
|
607
736
|
end
|
|
608
737
|
end
|
|
609
738
|
|
|
610
|
-
describe "#
|
|
611
|
-
it "is an alias of ActivityNotification::Notification.
|
|
612
|
-
expect(ActivityNotification::Notification).to receive(:
|
|
613
|
-
test_instance.
|
|
739
|
+
describe "#notify_later" do
|
|
740
|
+
it "is an alias of ActivityNotification::Notification.notify_later" do
|
|
741
|
+
expect(ActivityNotification::Notification).to receive(:notify_later)
|
|
742
|
+
test_instance.notify_later :users
|
|
614
743
|
end
|
|
615
744
|
end
|
|
616
745
|
|
|
@@ -621,6 +750,27 @@ shared_examples_for :notifiable do
|
|
|
621
750
|
end
|
|
622
751
|
end
|
|
623
752
|
|
|
753
|
+
describe "#notify_all_later" do
|
|
754
|
+
it "is an alias of ActivityNotification::Notification.notify_all_later" do
|
|
755
|
+
expect(ActivityNotification::Notification).to receive(:notify_all_later)
|
|
756
|
+
test_instance.notify_all_later [create(:user)]
|
|
757
|
+
end
|
|
758
|
+
end
|
|
759
|
+
|
|
760
|
+
describe "#notify_to" do
|
|
761
|
+
it "is an alias of ActivityNotification::Notification.notify_to" do
|
|
762
|
+
expect(ActivityNotification::Notification).to receive(:notify_to)
|
|
763
|
+
test_instance.notify_to create(:user)
|
|
764
|
+
end
|
|
765
|
+
end
|
|
766
|
+
|
|
767
|
+
describe "#notify_later_to" do
|
|
768
|
+
it "is an alias of ActivityNotification::Notification.notify_later_to" do
|
|
769
|
+
expect(ActivityNotification::Notification).to receive(:notify_later_to)
|
|
770
|
+
test_instance.notify_later_to create(:user)
|
|
771
|
+
end
|
|
772
|
+
end
|
|
773
|
+
|
|
624
774
|
describe "#default_notification_key" do
|
|
625
775
|
it "returns '#to_resource_name.default'" do
|
|
626
776
|
expect(test_instance.default_notification_key).to eq("#{test_instance.to_resource_name}.default")
|