File tree 2 files changed +22
-1
lines changed
2 files changed +22
-1
lines changed Original file line number Diff line number Diff line change @@ -5,7 +5,7 @@ class EventJob < ApplicationJob
5
5
def perform ( event )
6
6
# Enqueue bulk deliveries
7
7
event . bulk_delivery_methods . each_value do |deliver_by |
8
- deliver_by . perform_later ( event )
8
+ deliver_by . perform_later ( event ) if deliver_by . perform? ( event )
9
9
end
10
10
11
11
# Enqueue individual deliveries
Original file line number Diff line number Diff line change @@ -5,6 +5,10 @@ module ::Noticed
5
5
class DeliveryMethods ::Test1 < DeliveryMethod ; end
6
6
7
7
class DeliveryMethods ::Test2 < DeliveryMethod ; end
8
+
9
+ class BulkDeliveryMethods ::Test1 < BulkDeliveryMethod ; end
10
+
11
+ class BulkDeliveryMethods ::Test2 < BulkDeliveryMethod ; end
8
12
end
9
13
10
14
test "enqueues jobs for each notification and delivery method" do
@@ -28,4 +32,21 @@ class DeliveryMethods::Test2 < DeliveryMethod; end
28
32
event . class . delivery_methods . delete ( :test1 )
29
33
event . class . delivery_methods . delete ( :test2 )
30
34
end
35
+
36
+ test "skips enqueueing bulk delivery job if before_enqueue raises an error" do
37
+ notification = noticed_notifications ( :one )
38
+ event = notification . event
39
+ event . class . bulk_deliver_by :test1 do |config |
40
+ config . before_enqueue = -> { false }
41
+ end
42
+ event . class . bulk_deliver_by :test2 do |config |
43
+ config . before_enqueue = -> { throw :abort }
44
+ end
45
+
46
+ Noticed ::EventJob . perform_now ( event )
47
+ assert_enqueued_jobs 4
48
+
49
+ event . class . bulk_delivery_methods . delete ( :test1 )
50
+ event . class . bulk_delivery_methods . delete ( :test2 )
51
+ end
31
52
end
You can’t perform that action at this time.
0 commit comments