4
4
module PactBroker
5
5
module Webhooks
6
6
describe Repository do
7
-
8
- let ( :td ) { TestDataBuilder . new }
9
7
let ( :url ) { 'http://example.org' }
10
8
let ( :body ) { { 'some' => 'json' } }
11
9
let ( :headers ) { { 'Content-Type' => 'application/json' , 'Accept' => 'application/json' } }
@@ -22,9 +20,9 @@ module Webhooks
22
20
PactBroker ::Webhooks ::WebhookEvent . new ( name : 'something_happened' )
23
21
end
24
22
let ( :events ) { [ event ] }
25
- let ( :webhook ) { Domain ::Webhook . new ( request : request , events : events ) }
26
- let ( :consumer ) { td . create_pacticipant 'Consumer' ; td . pacticipant }
27
- let ( :provider ) { td . create_pacticipant 'Provider' ; td . pacticipant }
23
+ let ( :webhook ) { Domain ::Webhook . new ( request : request , events : events ) }
24
+ let ( :consumer ) { td . create_pacticipant ( 'Consumer' ) . and_return ( : pacticipant) }
25
+ let ( :provider ) { td . create_pacticipant ( 'Provider' ) . and_return ( : pacticipant) }
28
26
let ( :uuid ) { 'the-uuid' }
29
27
let ( :created_webhook_record ) { ::DB ::PACT_BROKER_DB [ :webhooks ] . order ( :id ) . last }
30
28
let ( :created_events ) { ::DB ::PACT_BROKER_DB [ :webhook_events ] . where ( webhook_id : created_webhook_record [ :id ] ) . order ( :name ) . all }
@@ -57,10 +55,20 @@ module Webhooks
57
55
it "saves the webhook events" do
58
56
expect ( subject . events . first [ :name ] ) . to eq "something_happened"
59
57
end
58
+
59
+ context "when consumer and provider domain objects are set on the object rather than passed in" do
60
+ let ( :webhook ) { Domain ::Webhook . new ( request : request , events : events , consumer : consumer , provider : provider ) }
61
+
62
+ subject { Repository . new . create ( uuid , webhook , nil , nil ) }
63
+
64
+ it "sets the consumer and provider relationships" do
65
+ expect ( subject . consumer . id ) . to eq consumer . id
66
+ expect ( subject . provider . id ) . to eq provider . id
67
+ end
68
+ end
60
69
end
61
70
62
71
describe "delete_by_uuid" do
63
-
64
72
before do
65
73
Repository . new . create uuid , webhook , consumer , provider
66
74
Repository . new . create 'another-uuid' , webhook , consumer , provider
0 commit comments