3
3
module PactBroker
4
4
module Webhooks
5
5
describe Job do
6
-
7
6
before do
8
7
PactBroker . configuration . webhook_retry_schedule = [ 10 , 60 , 120 , 300 , 600 , 1200 ]
9
8
allow ( PactBroker ::Webhooks ::Service ) . to receive ( :execute_triggered_webhook_now ) . and_return ( result )
@@ -16,8 +15,9 @@ module Webhooks
16
15
let ( :result ) { instance_double ( "PactBroker::Domain::WebhookExecutionResult" , success? : success ) }
17
16
let ( :success ) { true }
18
17
let ( :logger ) { double ( 'logger' ) . as_null_object }
18
+ let ( :database_connector ) { -> ( &block ) { block . call } }
19
19
20
- subject { Job . new . perform ( triggered_webhook : triggered_webhook ) }
20
+ subject { Job . new . perform ( triggered_webhook : triggered_webhook , database_connector : database_connector ) }
21
21
22
22
it "reloads the TriggeredWebhook object to make sure it has a fresh copy" do
23
23
expect ( PactBroker ::Webhooks ::TriggeredWebhook ) . to receive ( :find ) . with ( id : 1 )
@@ -44,7 +44,7 @@ module Webhooks
44
44
end
45
45
46
46
it "reschedules the job in 10 seconds" do
47
- expect ( Job ) . to receive ( :perform_in ) . with ( 10 , { triggered_webhook : triggered_webhook , error_count : 1 } )
47
+ expect ( Job ) . to receive ( :perform_in ) . with ( 10 , { triggered_webhook : triggered_webhook , error_count : 1 , database_connector : database_connector } )
48
48
subject
49
49
end
50
50
@@ -59,7 +59,7 @@ module Webhooks
59
59
let ( :success ) { false }
60
60
61
61
it "reschedules the job in 10 seconds" do
62
- expect ( Job ) . to receive ( :perform_in ) . with ( 10 , { triggered_webhook : triggered_webhook , error_count : 1 } )
62
+ expect ( Job ) . to receive ( :perform_in ) . with ( 10 , { triggered_webhook : triggered_webhook , error_count : 1 , database_connector : database_connector } )
63
63
subject
64
64
end
65
65
@@ -84,10 +84,10 @@ module Webhooks
84
84
allow ( PactBroker ::Webhooks ::Service ) . to receive ( :execute_triggered_webhook_now ) . and_raise ( "an error" )
85
85
end
86
86
87
- subject { Job . new . perform ( triggered_webhook : triggered_webhook , error_count : 1 ) }
87
+ subject { Job . new . perform ( triggered_webhook : triggered_webhook , error_count : 1 , database_connector : database_connector ) }
88
88
89
89
it "reschedules the job in 60 seconds" do
90
- expect ( Job ) . to receive ( :perform_in ) . with ( 60 , { triggered_webhook : triggered_webhook , error_count : 2 } )
90
+ expect ( Job ) . to receive ( :perform_in ) . with ( 60 , { triggered_webhook : triggered_webhook , error_count : 2 , database_connector : database_connector } )
91
91
subject
92
92
end
93
93
@@ -101,7 +101,7 @@ module Webhooks
101
101
context "when the job is not successful for the last time" do
102
102
let ( :success ) { false }
103
103
104
- subject { Job . new . perform ( triggered_webhook : triggered_webhook , error_count : 6 ) }
104
+ subject { Job . new . perform ( triggered_webhook : triggered_webhook , error_count : 6 , database_connector : database_connector ) }
105
105
106
106
it "executes the job with an log message indicating that the webhook has failed" do
107
107
expect ( PactBroker ::Webhooks ::Service ) . to receive ( :execute_triggered_webhook_now )
0 commit comments