pact_broker 2.9.0 → 2.10.0
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 +4 -4
- data/CHANGELOG.md +24 -1
- data/config.ru +2 -2
- data/lib/pact_broker/api/decorators/relationships_csv_decorator.rb +6 -6
- data/lib/pact_broker/domain/group.rb +3 -3
- data/lib/pact_broker/domain/{relationship.rb → index_item.rb} +27 -7
- data/lib/pact_broker/groups/service.rb +2 -3
- data/lib/pact_broker/index/service.rb +56 -0
- data/lib/pact_broker/pacticipants/service.rb +0 -12
- data/lib/pact_broker/pacts/pact_publication.rb +4 -0
- data/lib/pact_broker/pacts/repository.rb +1 -1
- data/lib/pact_broker/relationships/groupify.rb +8 -8
- data/lib/pact_broker/services.rb +5 -0
- data/lib/pact_broker/tags/repository.rb +11 -1
- data/lib/pact_broker/tags/service.rb +3 -1
- data/lib/pact_broker/ui/app.rb +3 -3
- data/lib/pact_broker/ui/controllers/clusters.rb +1 -1
- data/lib/pact_broker/ui/controllers/groups.rb +1 -1
- data/lib/pact_broker/ui/controllers/index.rb +22 -0
- data/lib/pact_broker/ui/view_models/{relationship.rb → index_item.rb} +32 -5
- data/lib/pact_broker/ui/view_models/index_items.rb +30 -0
- data/lib/pact_broker/ui/views/index/show-with-tags.haml +83 -0
- data/lib/pact_broker/ui/views/{relationships → index}/show.haml +18 -18
- data/lib/pact_broker/ui/views/matrix/show.haml +1 -1
- data/lib/pact_broker/verifications/repository.rb +3 -0
- data/lib/pact_broker/version.rb +1 -1
- data/public/stylesheets/{relationships.css → index.css} +0 -0
- data/script/seed.rb +55 -39
- data/spec/integration/app_spec.rb +1 -1
- data/spec/integration/endpoints/{group.rb → group_spec.rb} +0 -3
- data/spec/integration/ui/index_spec.rb +36 -0
- data/spec/lib/pact_broker/domain/group_spec.rb +3 -3
- data/spec/lib/pact_broker/domain/{relationship_spec.rb → index_items_spec.rb} +3 -3
- data/spec/lib/pact_broker/groups/service_spec.rb +5 -4
- data/spec/lib/pact_broker/index/service_spec.rb +131 -0
- data/spec/lib/pact_broker/pacticipants/service_spec.rb +2 -35
- data/spec/lib/pact_broker/pacts/pact_publication_spec.rb +35 -0
- data/spec/lib/pact_broker/pacts/repository_spec.rb +16 -14
- data/spec/lib/pact_broker/relationships/groupify_spec.rb +7 -7
- data/spec/lib/pact_broker/tags/repository_spec.rb +23 -1
- data/spec/lib/pact_broker/tags/service_spec.rb +0 -1
- data/spec/lib/pact_broker/ui/controllers/index_spec.rb +71 -0
- data/spec/lib/pact_broker/ui/view_models/{relationship_spec.rb → index_item_spec.rb} +38 -18
- data/spec/lib/pact_broker/ui/view_models/{relationships_spec.rb → index_items_spec.rb} +10 -10
- metadata +26 -18
- data/lib/pact_broker/ui/controllers/relationships.rb +0 -21
- data/lib/pact_broker/ui/view_models/relationships.rb +0 -30
- data/spec/lib/pact_broker/ui/controllers/relationships_spec.rb +0 -39
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'pact_broker/ui/app'
|
2
|
+
|
3
|
+
describe "UI index" do
|
4
|
+
|
5
|
+
let(:app) { PactBroker::UI::App.new }
|
6
|
+
let(:td) { TestDataBuilder.new }
|
7
|
+
let(:params) { {} }
|
8
|
+
|
9
|
+
before do
|
10
|
+
td.create_pact_with_hierarchy("Foo", "1", "Bar")
|
11
|
+
.create_consumer_version_tag("prod")
|
12
|
+
.create_consumer_version("2")
|
13
|
+
.create_pact
|
14
|
+
get "/"
|
15
|
+
end
|
16
|
+
|
17
|
+
subject { get("/", params, {}); last_response }
|
18
|
+
|
19
|
+
describe "GET" do
|
20
|
+
it "returns a success response" do
|
21
|
+
expect(subject.status).to eq 200
|
22
|
+
end
|
23
|
+
|
24
|
+
it "returns a table of pacts" do
|
25
|
+
expect(subject.body.scan('<tr').to_a.count).to eq 1
|
26
|
+
end
|
27
|
+
|
28
|
+
context "with an array of tags" do
|
29
|
+
let(:params) { { tags: ['prod'] } }
|
30
|
+
|
31
|
+
it "returns a table of pacts with the specfied tags" do
|
32
|
+
expect(subject.body.scan('<tr').to_a.count).to eq 2
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'pact_broker/domain/group'
|
3
|
-
require 'pact_broker/domain/
|
3
|
+
require 'pact_broker/domain/index_item'
|
4
4
|
|
5
5
|
module PactBroker
|
6
6
|
module Domain
|
@@ -15,8 +15,8 @@ module PactBroker
|
|
15
15
|
let(:provider_x) { double('provider x') }
|
16
16
|
let(:provider_y) { double('provider y') }
|
17
17
|
|
18
|
-
let(:relationship_1) { Domain::
|
19
|
-
let(:relationship_2) { Domain::
|
18
|
+
let(:relationship_1) { Domain::IndexItem.new(consumer_a, provider_x)}
|
19
|
+
let(:relationship_2) { Domain::IndexItem.new(consumer_b, provider_y)}
|
20
20
|
|
21
21
|
subject { Group.new(relatio)}
|
22
22
|
end
|
@@ -1,8 +1,8 @@
|
|
1
|
-
require 'pact_broker/domain/
|
1
|
+
require 'pact_broker/domain/index_item'
|
2
2
|
|
3
3
|
module PactBroker
|
4
4
|
module Domain
|
5
|
-
describe
|
5
|
+
describe IndexItem do
|
6
6
|
describe "#last_webhook_execution_date" do
|
7
7
|
let(:webhook_execution_1) { double('webhook_execution', created_at: DateTime.new(2013)) }
|
8
8
|
let(:webhook_execution_2) { double('webhook_execution', created_at: DateTime.new(2015)) }
|
@@ -13,7 +13,7 @@ module PactBroker
|
|
13
13
|
allow(webhook_executions).to receive(:sort).and_return(webhook_executions)
|
14
14
|
end
|
15
15
|
|
16
|
-
subject {
|
16
|
+
subject { IndexItem.create(nil, nil, nil, true, nil, [], webhook_executions) }
|
17
17
|
|
18
18
|
it "returns the created_at date of the last execution" do
|
19
19
|
expect(subject.last_webhook_execution_date).to eq DateTime.new(2015)
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'pact_broker/groups/service'
|
3
|
+
require 'pact_broker/index/service'
|
3
4
|
|
4
5
|
module PactBroker
|
5
6
|
|
@@ -15,8 +16,8 @@ module PactBroker
|
|
15
16
|
let(:provider_x) { double('provider x', name: 'provider x', id: 3)}
|
16
17
|
let(:provider_y) { double('provider y', name: 'provider y', id: 4)}
|
17
18
|
|
18
|
-
let(:relationship_1) { Domain::
|
19
|
-
let(:relationship_2) { Domain::
|
19
|
+
let(:relationship_1) { Domain::IndexItem.new(consumer_a, provider_x) }
|
20
|
+
let(:relationship_2) { Domain::IndexItem.new(consumer_b, provider_y) }
|
20
21
|
|
21
22
|
let(:group_1) { Domain::Group.new(relationship_1) }
|
22
23
|
let(:group_2) { Domain::Group.new(relationship_2) }
|
@@ -27,12 +28,12 @@ module PactBroker
|
|
27
28
|
subject { Service.find_group_containing(consumer_b) }
|
28
29
|
|
29
30
|
before do
|
30
|
-
allow(
|
31
|
+
allow(PactBroker::Index::Service).to receive(:find_index_items).and_return(relationship_list)
|
31
32
|
allow(Relationships::Groupify).to receive(:call).and_return(groups)
|
32
33
|
end
|
33
34
|
|
34
35
|
it "retrieves a list of the relationships" do
|
35
|
-
allow(
|
36
|
+
allow(Index::Service).to receive(:find_index_items)
|
36
37
|
subject
|
37
38
|
end
|
38
39
|
|
@@ -0,0 +1,131 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'pact_broker/index/service'
|
3
|
+
require 'pact_broker/domain/tag'
|
4
|
+
require 'pact_broker/domain/pact'
|
5
|
+
|
6
|
+
module PactBroker
|
7
|
+
|
8
|
+
module Index
|
9
|
+
describe Service do
|
10
|
+
let(:td) { TestDataBuilder.new }
|
11
|
+
let(:tags) { ['prod', 'production'] }
|
12
|
+
let(:options) { { tags: tags } }
|
13
|
+
|
14
|
+
subject{ Service }
|
15
|
+
|
16
|
+
describe ".find_index_items" do
|
17
|
+
let(:consumer) { instance_double("PactBroker::Domain::Pacticipant")}
|
18
|
+
let(:provider) { instance_double("PactBroker::Domain::Pacticipant")}
|
19
|
+
let(:pact) { instance_double("PactBroker::Domain::Pact", id: 1, consumer: consumer, provider: provider, consumer_name: 'foo', provider_name: 'bar', consumer_version_tag_names: [])}
|
20
|
+
let(:verification) { instance_double("PactBroker::Domain::Verification")}
|
21
|
+
let(:pacts) { [pact]}
|
22
|
+
let(:webhooks) { [instance_double("PactBroker::Domain::Webhook")]}
|
23
|
+
let(:triggered_webhooks) { [instance_double("PactBroker::Webhooks::TriggeredWebhook")] }
|
24
|
+
|
25
|
+
before do
|
26
|
+
allow_any_instance_of(PactBroker::Pacts::Repository).to receive(:find_latest_pacts).and_return(pacts)
|
27
|
+
allow_any_instance_of(PactBroker::Pacts::Repository).to receive(:find_latest_pact).and_return(pact)
|
28
|
+
allow(PactBroker::Verifications::Service).to receive(:find_latest_verification_for).and_return(verification)
|
29
|
+
allow(PactBroker::Webhooks::Service).to receive(:find_by_consumer_and_provider).and_return(webhooks)
|
30
|
+
allow(PactBroker::Webhooks::Service).to receive(:find_latest_triggered_webhooks).and_return(triggered_webhooks)
|
31
|
+
end
|
32
|
+
|
33
|
+
it "retrieves the webhooks for the pact" do
|
34
|
+
expect(PactBroker::Webhooks::Service).to receive(:find_by_consumer_and_provider).with(consumer, provider)
|
35
|
+
subject.find_index_items(options)
|
36
|
+
end
|
37
|
+
|
38
|
+
it "retrieves the latest verification for the pact" do
|
39
|
+
expect(PactBroker::Verifications::Service).to receive(:find_latest_verification_for).with(consumer, provider)
|
40
|
+
subject.find_index_items(options)
|
41
|
+
end
|
42
|
+
|
43
|
+
it "returns a list of relationships" do
|
44
|
+
expect(subject.find_index_items(options)).to eq([PactBroker::Domain::IndexItem.create(consumer, provider, pact, true, verification, webhooks)])
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe "find_relationships integration test" do
|
49
|
+
context "when a prod pact exists and is not the latest version" do
|
50
|
+
before do
|
51
|
+
td.create_pact_with_hierarchy("Foo", "1.2.3", "Bar")
|
52
|
+
.create_consumer_version_tag("prod")
|
53
|
+
.create_consumer_version_tag("ignored")
|
54
|
+
.create_verification(provider_version: "2.0.0")
|
55
|
+
.create_consumer_version("1.2.4")
|
56
|
+
.create_consumer_version_tag("also-ignored")
|
57
|
+
.create_pact
|
58
|
+
.create_verification(provider_version: "2.1.0")
|
59
|
+
end
|
60
|
+
|
61
|
+
let(:rows) { subject.find_index_items(options) }
|
62
|
+
|
63
|
+
it "returns both rows" do
|
64
|
+
expect(rows.count).to eq 2
|
65
|
+
end
|
66
|
+
|
67
|
+
context "when the tags are not specified" do
|
68
|
+
let(:options) { {} }
|
69
|
+
|
70
|
+
it "only returns the latest row" do
|
71
|
+
expect(rows.count).to eq 1
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
it "returns the latest row first" do
|
76
|
+
expect(rows.first.consumer_version_number).to eq "1.2.4"
|
77
|
+
expect(rows.last.consumer_version_number).to eq "1.2.3"
|
78
|
+
end
|
79
|
+
|
80
|
+
it "designates the first row as the latest row, and the second as not latest" do
|
81
|
+
expect(rows.first.latest?).to be true
|
82
|
+
expect(rows.last.latest?).to be false
|
83
|
+
end
|
84
|
+
|
85
|
+
it "doesn't return any tag names for the latest row" do
|
86
|
+
expect(rows.first.tag_names).to eq []
|
87
|
+
end
|
88
|
+
|
89
|
+
it "includes the prod tag name for the prod row" do
|
90
|
+
expect(rows.last.tag_names).to eq ['prod']
|
91
|
+
end
|
92
|
+
|
93
|
+
it "includes the latest overall verification for the latest pact" do
|
94
|
+
expect(rows.first.latest_verification.provider_version_number).to eq '2.1.0'
|
95
|
+
end
|
96
|
+
|
97
|
+
it "includes the latest prod verification for the prod pact" do
|
98
|
+
expect(rows.last.latest_verification.provider_version_number).to eq '2.0.0'
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
context "when the prod version is the latest version" do
|
103
|
+
before do
|
104
|
+
td.create_pact_with_hierarchy("Foo", "1.2.3", "Bar")
|
105
|
+
.create_consumer_version_tag("prod")
|
106
|
+
.create_consumer_version_tag("ignored")
|
107
|
+
.create_verification(provider_version: "2.0.0")
|
108
|
+
end
|
109
|
+
|
110
|
+
let(:rows) { subject.find_index_items(options) }
|
111
|
+
|
112
|
+
it "returns one row" do
|
113
|
+
expect(rows.count).to eq 1
|
114
|
+
end
|
115
|
+
|
116
|
+
it "designates the row as the latest row" do
|
117
|
+
expect(rows.first.latest?).to be true
|
118
|
+
end
|
119
|
+
|
120
|
+
it "includes the prod tag name for the row" do
|
121
|
+
expect(rows.first.tag_names).to eq ['prod']
|
122
|
+
end
|
123
|
+
|
124
|
+
it "includes the latest overall verification for the latest pact" do
|
125
|
+
expect(rows.first.latest_verification.provider_version_number).to eq '2.0.0'
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
@@ -8,10 +8,10 @@ module PactBroker
|
|
8
8
|
module Pacticipants
|
9
9
|
describe Service do
|
10
10
|
|
11
|
-
subject{ Service }
|
12
|
-
|
13
11
|
let(:td) { TestDataBuilder.new }
|
14
12
|
|
13
|
+
subject{ Service }
|
14
|
+
|
15
15
|
describe ".update" do
|
16
16
|
before do
|
17
17
|
td.create_pacticipant("Foo")
|
@@ -112,40 +112,7 @@ module PactBroker
|
|
112
112
|
end
|
113
113
|
end
|
114
114
|
|
115
|
-
describe ".find_relationships" do
|
116
|
-
|
117
|
-
let(:consumer) { instance_double("PactBroker::Domain::Pacticipant")}
|
118
|
-
let(:provider) { instance_double("PactBroker::Domain::Pacticipant")}
|
119
|
-
let(:pact) { instance_double("PactBroker::Domain::Pact", consumer: consumer, provider: provider)}
|
120
|
-
let(:verification) { instance_double("PactBroker::Domain::Verification")}
|
121
|
-
let(:pacts) { [pact]}
|
122
|
-
let(:webhooks) { [instance_double("PactBroker::Domain::Webhook")]}
|
123
|
-
let(:triggered_webhooks) { [instance_double("PactBroker::Webhooks::TriggeredWebhook")] }
|
124
|
-
|
125
|
-
before do
|
126
|
-
allow_any_instance_of(PactBroker::Pacts::Repository).to receive(:find_latest_pacts).and_return(pacts)
|
127
|
-
allow(PactBroker::Verifications::Service).to receive(:find_latest_verification_for).and_return(verification)
|
128
|
-
allow(PactBroker::Webhooks::Service).to receive(:find_by_consumer_and_provider).and_return(webhooks)
|
129
|
-
allow(PactBroker::Webhooks::Service).to receive(:find_latest_triggered_webhooks).and_return(triggered_webhooks)
|
130
|
-
end
|
131
|
-
|
132
|
-
it "retrieves the webhooks for the pact" do
|
133
|
-
expect(PactBroker::Webhooks::Service).to receive(:find_by_consumer_and_provider).with(consumer, provider)
|
134
|
-
subject.find_relationships
|
135
|
-
end
|
136
|
-
|
137
|
-
it "retrieves the latest verification for the pact" do
|
138
|
-
expect(PactBroker::Verifications::Service).to receive(:find_latest_verification_for).with(consumer, provider)
|
139
|
-
subject.find_relationships
|
140
|
-
end
|
141
|
-
|
142
|
-
it "returns a list of relationships" do
|
143
|
-
expect(subject.find_relationships).to eq([PactBroker::Domain::Relationship.create(consumer, provider, pact, verification, webhooks)])
|
144
|
-
end
|
145
|
-
end
|
146
|
-
|
147
115
|
describe "delete" do
|
148
|
-
|
149
116
|
before do
|
150
117
|
TestDataBuilder.new
|
151
118
|
.create_consumer("Consumer")
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'pact_broker/pacts/pact_publication'
|
2
|
+
|
3
|
+
module PactBroker
|
4
|
+
module Pacts
|
5
|
+
describe PactPublication do
|
6
|
+
|
7
|
+
describe "#latest_tag_names" do
|
8
|
+
before do
|
9
|
+
td.create_pact_with_hierarchy("Foo", "1.2.3", "Bar")
|
10
|
+
.create_consumer_version_tag("no")
|
11
|
+
.create_consumer_version("3.4.5")
|
12
|
+
.create_consumer_version_tag("yes")
|
13
|
+
.create_pact
|
14
|
+
.create_consumer_version("5.6.7")
|
15
|
+
.create_consumer_version_tag("no")
|
16
|
+
end
|
17
|
+
|
18
|
+
let(:td) { TestDataBuilder.new }
|
19
|
+
let(:pact_publication) { PactPublication.find(id: td.pact.id) }
|
20
|
+
|
21
|
+
context "when the pact is the latest for a tag" do
|
22
|
+
it "returns the relevant tag names" do
|
23
|
+
expect(pact_publication.latest_tag_names).to eq ["yes"]
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context "when the pact is not the latest for a tag" do
|
28
|
+
it "returns the relevant tag names" do
|
29
|
+
expect(pact_publication.latest_tag_names).to eq ["yes"]
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -576,19 +576,20 @@ module PactBroker
|
|
576
576
|
describe "find_latest_pacts" do
|
577
577
|
before do
|
578
578
|
TestDataBuilder.new
|
579
|
-
.
|
580
|
-
.
|
581
|
-
.
|
582
|
-
.
|
583
|
-
.
|
584
|
-
.
|
585
|
-
.
|
586
|
-
.
|
587
|
-
.
|
588
|
-
.
|
589
|
-
.
|
590
|
-
.
|
591
|
-
.
|
579
|
+
.create_consumer("Condor")
|
580
|
+
.create_consumer_version('1.3.0')
|
581
|
+
.create_provider("Pricing Service")
|
582
|
+
.create_pact
|
583
|
+
.create_consumer_version('1.4.0')
|
584
|
+
.create_consumer_version_tag("prod")
|
585
|
+
.create_pact
|
586
|
+
.create_consumer("Contract Email Service")
|
587
|
+
.create_consumer_version("2.6.0")
|
588
|
+
.create_provider("Contract Proposal Service")
|
589
|
+
.create_pact
|
590
|
+
.create_consumer_version('2.7.0')
|
591
|
+
.create_pact
|
592
|
+
.create_consumer_version('2.8.0') # Create a version without a pact, it shouldn't be used
|
592
593
|
end
|
593
594
|
|
594
595
|
it "finds the latest pact for each consumer/provider pair" do
|
@@ -600,12 +601,13 @@ module PactBroker
|
|
600
601
|
expect(pacts[0].provider.name).to eq("Pricing Service")
|
601
602
|
expect(pacts[0].provider.id).to_not be nil
|
602
603
|
expect(pacts[0].consumer_version.number).to eq("1.4.0")
|
603
|
-
expect(pacts[
|
604
|
+
expect(pacts[0].consumer_version.tags.collect(&:name)).to eq ["prod"]
|
604
605
|
|
605
606
|
expect(pacts[1].consumer_version.pacticipant.name).to eq("Contract Email Service")
|
606
607
|
expect(pacts[1].consumer.name).to eq("Contract Email Service")
|
607
608
|
expect(pacts[1].provider.name).to eq("Contract Proposal Service")
|
608
609
|
expect(pacts[1].consumer_version.number).to eq("2.7.0")
|
610
|
+
expect(pacts[1].consumer_version.tags.collect(&:name)).to eq []
|
609
611
|
end
|
610
612
|
|
611
613
|
it "includes the timestamps - need to update view" do
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'pact_broker/relationships/groupify'
|
3
|
-
require 'pact_broker/domain/
|
3
|
+
require 'pact_broker/domain/index_item'
|
4
4
|
|
5
5
|
module PactBroker
|
6
6
|
|
@@ -24,15 +24,15 @@ module PactBroker
|
|
24
24
|
let(:provider_z) { double('provider z', id: 9, name: 'provider z') }
|
25
25
|
|
26
26
|
|
27
|
-
let(:relationship_1) { Domain::
|
28
|
-
let(:relationship_4) { Domain::
|
29
|
-
let(:relationship_2) { Domain::
|
27
|
+
let(:relationship_1) { Domain::IndexItem.new(consumer_a, provider_x) }
|
28
|
+
let(:relationship_4) { Domain::IndexItem.new(consumer_a, provider_y) }
|
29
|
+
let(:relationship_2) { Domain::IndexItem.new(consumer_b, provider_y) }
|
30
30
|
|
31
|
-
let(:relationship_3) { Domain::
|
31
|
+
let(:relationship_3) { Domain::IndexItem.new(consumer_c, provider_z) }
|
32
32
|
|
33
33
|
|
34
|
-
let(:relationship_5) { Domain::
|
35
|
-
let(:relationship_6) { Domain::
|
34
|
+
let(:relationship_5) { Domain::IndexItem.new(consumer_l, provider_p) }
|
35
|
+
let(:relationship_6) { Domain::IndexItem.new(consumer_m, provider_p) }
|
36
36
|
|
37
37
|
let(:relationships) { [relationship_1, relationship_2, relationship_3, relationship_4, relationship_5, relationship_6] }
|
38
38
|
|
@@ -5,6 +5,8 @@ module PactBroker
|
|
5
5
|
module Tags
|
6
6
|
describe Repository do
|
7
7
|
|
8
|
+
let(:td) { TestDataBuilder.new }
|
9
|
+
|
8
10
|
describe ".find" do
|
9
11
|
|
10
12
|
let(:pacticipant_name) { "test_pacticipant" }
|
@@ -80,9 +82,29 @@ module PactBroker
|
|
80
82
|
it "deletes the tag" do
|
81
83
|
expect{ subject }.to change { PactBroker::Domain::Tag.count }.by(-2)
|
82
84
|
end
|
83
|
-
|
84
85
|
end
|
85
86
|
|
87
|
+
|
88
|
+
describe "find_all_tag_names_for_pacticipant" do
|
89
|
+
before do
|
90
|
+
td.create_consumer("Foo")
|
91
|
+
.create_consumer_version("1")
|
92
|
+
.create_consumer_version_tag("prod")
|
93
|
+
.create_consumer_version_tag("master")
|
94
|
+
.create_consumer_version("2")
|
95
|
+
.create_consumer_version_tag("prod")
|
96
|
+
.create_consumer_version_tag("dev")
|
97
|
+
.create_consumer("Bar")
|
98
|
+
.create_consumer_version("1")
|
99
|
+
.create_consumer_version_tag("ignore")
|
100
|
+
end
|
101
|
+
|
102
|
+
subject { Repository.new.find_all_tag_names_for_pacticipant("Foo") }
|
103
|
+
|
104
|
+
it "returns all the tag names for the pacticipant" do
|
105
|
+
expect(subject).to eq ["dev", "master", "prod"]
|
106
|
+
end
|
107
|
+
end
|
86
108
|
end
|
87
109
|
end
|
88
110
|
end
|