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
|
@@ -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
|
|
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 "
|
|
78
|
-
|
|
79
|
-
|
|
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
|
|
89
|
-
expect(new_subscription.subscribing_to_email?).to
|
|
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
|
|
99
|
-
expect(new_subscription.subscribing_to_email?).to
|
|
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
|
|
109
|
-
expect(new_subscription.subscribing_to_email?).to
|
|
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
|
|
119
|
-
expect(new_subscription.subscribing_to_email?).to
|
|
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 "
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
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 "
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
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
|
|
191
|
-
expect(test_instance.subscription_index[1]).to
|
|
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
|
|
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
|
|
208
|
-
expect(test_instance.subscription_index(options)[1]).to
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
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
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
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 "#
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 })
|