pact_broker 2.3.0 → 2.4.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.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +3 -4
  4. data/db/migrations/37_create_labels_table.rb +11 -0
  5. data/lib/pact_broker/api.rb +4 -0
  6. data/lib/pact_broker/api/decorators/embedded_label_decorator.rb +20 -0
  7. data/lib/pact_broker/api/decorators/label_decorator.rb +32 -0
  8. data/lib/pact_broker/api/decorators/pact_collection_decorator.rb +1 -5
  9. data/lib/pact_broker/api/decorators/pact_versions_decorator.rb +0 -5
  10. data/lib/pact_broker/api/decorators/pacticipant_collection_decorator.rb +31 -2
  11. data/lib/pact_broker/api/decorators/pacticipant_decorator.rb +37 -8
  12. data/lib/pact_broker/api/pact_broker_urls.rb +12 -4
  13. data/lib/pact_broker/api/resources/label.rb +52 -0
  14. data/lib/pact_broker/api/resources/pacticipants.rb +1 -1
  15. data/lib/pact_broker/api/resources/pacticipants_for_label.rb +27 -0
  16. data/lib/pact_broker/api/resources/verifications.rb +1 -1
  17. data/lib/pact_broker/badges/service.rb +13 -3
  18. data/lib/pact_broker/configuration.rb +1 -1
  19. data/lib/pact_broker/domain.rb +1 -0
  20. data/lib/pact_broker/domain/label.rb +19 -0
  21. data/lib/pact_broker/domain/pacticipant.rb +12 -1
  22. data/lib/pact_broker/labels/repository.rb +32 -0
  23. data/lib/pact_broker/labels/service.rb +26 -0
  24. data/lib/pact_broker/pacticipants/repository.rb +8 -7
  25. data/lib/pact_broker/pacticipants/service.rb +4 -0
  26. data/lib/pact_broker/repositories.rb +5 -0
  27. data/lib/pact_broker/services.rb +5 -0
  28. data/lib/pact_broker/version.rb +1 -1
  29. data/spec/features/delete_label_spec.rb +28 -0
  30. data/spec/features/get_label_spec.rb +28 -0
  31. data/spec/features/get_pacticipants_by_label_spec.rb +27 -0
  32. data/spec/features/label_pacticipant_spec.rb +22 -0
  33. data/spec/lib/pact_broker/api/decorators/embedded_label_decorator_spec.rb +34 -0
  34. data/spec/lib/pact_broker/api/decorators/label_decorator_spec.rb +42 -0
  35. data/spec/lib/pact_broker/api/decorators/pacticipant_collection_decorator_spec.rb +34 -8
  36. data/spec/lib/pact_broker/api/decorators/pacticipant_decorator_spec.rb +41 -2
  37. data/spec/lib/pact_broker/api/decorators/tag_decorator_spec.rb +1 -1
  38. data/spec/lib/pact_broker/api/resources/verifications_spec.rb +2 -2
  39. data/spec/lib/pact_broker/badges/service_spec.rb +1 -1
  40. data/spec/lib/pact_broker/labels/repository_spec.rb +124 -0
  41. data/spec/lib/pact_broker/labels/service_spec.rb +28 -0
  42. data/spec/lib/pact_broker/pacticipants/repository_spec.rb +19 -0
  43. data/spec/support/test_data_builder.rb +6 -0
  44. data/tasks/database.rb +1 -1
  45. data/vendor/hal-browser/browser.html +1 -1
  46. data/vendor/hal-browser/js/hal/resource.js +1 -0
  47. metadata +26 -2
@@ -10,16 +10,55 @@ module PactBroker
10
10
 
11
11
  describe PacticipantDecorator do
12
12
 
13
+ let(:test_data_builder) { TestDataBuilder.new }
14
+ let(:pacticipant) do
15
+ test_data_builder
16
+ .create_pacticipant('Name')
17
+ .create_label('foo')
18
+ .and_return(:pacticipant)
19
+ end
20
+
13
21
  let(:created_at) { Time.new(2014, 3, 4) }
14
22
  let(:updated_at) { Time.new(2014, 3, 5) }
15
- let(:pacticipant) { PactBroker::Domain::Pacticipant.new(name: 'Name', updated_at: updated_at, created_at: created_at)}
16
23
 
17
- subject { JSON.parse PacticipantDecorator.new(pacticipant).to_json, symbolize_names: true }
24
+ before do
25
+ pacticipant.created_at = created_at
26
+ pacticipant.updated_at = updated_at
27
+ end
28
+
29
+ subject { JSON.parse PacticipantDecorator.new(pacticipant).to_json(user_options: {base_url: 'http://example.org'}), symbolize_names: true }
18
30
 
19
31
  it "includes timestamps" do
20
32
  expect(subject[:createdAt]).to eq created_at.xmlschema
21
33
  expect(subject[:updatedAt]).to eq updated_at.xmlschema
22
34
  end
35
+
36
+ it "includes embedded labels" do
37
+ expect(subject[:_embedded][:labels].first).to include name: 'foo'
38
+ expect(subject[:_embedded][:labels].first[:_links][:self][:href]).to match %r{http://example.org/.*foo}
39
+ end
40
+
41
+ context "when there is a latest_version" do
42
+ before { test_data_builder.create_version("1.2.107") }
43
+ it "includes an embedded latestVersion" do
44
+ expect(subject[:_embedded][:latestVersion]).to include number: "1.2.107"
45
+ end
46
+
47
+ it "includes an embedded latest-version for backwards compatibility" do
48
+ expect(subject[:_embedded][:'latest-version']).to include number: "1.2.107"
49
+ end
50
+
51
+ it "includes a deprecation warning" do
52
+ expect(subject[:_embedded][:'latest-version']).to include title: "DEPRECATED - please use latestVersion"
53
+ end
54
+ end
55
+
56
+ context "when there is no latest_version" do
57
+ it "doesn't blow up" do
58
+ expect(subject[:_embedded]).to_not have_key(:latestVersion)
59
+ expect(subject[:_embedded]).to_not have_key(:'latest-version')
60
+ end
61
+ end
23
62
  end
24
63
  end
25
64
  end
@@ -16,7 +16,7 @@ module PactBroker
16
16
  .create_consumer("Consumer")
17
17
  .create_version("1.2.3")
18
18
  .create_tag("prod")
19
- PactBroker::Tags::Repository.new.find tag_name: 'prod', pacticipant_version_number: '1.2.3', pacticipant_name: 'Consumer'
19
+ .and_return(:tag)
20
20
  end
21
21
 
22
22
  let(:options) { { user_options: { base_url: 'http://example.org' } } }
@@ -39,7 +39,7 @@ module PactBroker
39
39
  end
40
40
 
41
41
  context "when the pact exists" do
42
- let(:pact) { instance_double("PactBroker::Domain::Pact") }
42
+ let(:pact) { instance_double("PactBroker::Domain::Pact", provider_name: 'Provider', consumer_name: 'Consumer', pact_version_sha: '1234') }
43
43
  let(:next_verification_number) { "2" }
44
44
  let(:serialised_verification) { {some: 'verification'}.to_json }
45
45
  let(:decorator) { instance_double('PactBroker::Api::Decorators::VerificationDecorator', to_json: serialised_verification) }
@@ -55,7 +55,7 @@ module PactBroker
55
55
  end
56
56
 
57
57
  it "returns the path of the newly created resource in the headers" do
58
- expect(subject.headers['Location']).to end_with("/verification-results/2")
58
+ expect(subject.headers['Location']).to eq("http://example.org/pacts/provider/Provider/consumer/Consumer/pact-version/1234/verification-results/2")
59
59
  end
60
60
 
61
61
  it "stores the verification in the database" do
@@ -69,7 +69,7 @@ module PactBroker
69
69
  let(:initials) { true }
70
70
  let(:pact) { double("pact", consumer_name: "FooApp", provider_name: "doAThing") }
71
71
 
72
- it "creates a badge with the consumer and provider names, not initials", pending: "Need to make regexp smarter" do
72
+ it "creates a badge with the consumer and provider names, not initials" do
73
73
  subject
74
74
  expect(http_request).to have_been_made
75
75
  end
@@ -0,0 +1,124 @@
1
+ require 'spec_helper'
2
+ require 'pact_broker/labels/repository'
3
+
4
+ module PactBroker
5
+ module Labels
6
+ describe Repository do
7
+
8
+ describe ".find" do
9
+
10
+ let(:pacticipant_name) { "foo" }
11
+ let(:label_name) { "ios" }
12
+
13
+ subject { Repository.new }
14
+ let(:options) { {pacticipant_name: pacticipant_name, label_name: label_name} }
15
+ let(:find_label) { subject.find options }
16
+
17
+ let!(:test_data_builder) do
18
+ TestDataBuilder.new
19
+ .create_pacticipant("wiffle")
20
+ .create_label(label_name)
21
+ .create_pacticipant(pacticipant_name)
22
+ .create_label("wrong label")
23
+ end
24
+
25
+ context "when the label exists" do
26
+
27
+ before do
28
+ test_data_builder.create_label(label_name)
29
+ end
30
+
31
+ it "returns the label" do
32
+ expect(find_label.name).to eq label_name
33
+ expect(find_label.pacticipant.name).to eq pacticipant_name
34
+ expect(find_label.created_at).to be_datey
35
+ expect(find_label.updated_at).to be_datey
36
+ end
37
+
38
+ context "when case sensitivity is turned off and a name with different case is used" do
39
+ before do
40
+ allow(PactBroker.configuration).to receive(:use_case_sensitive_resource_names).and_return(false)
41
+ end
42
+
43
+ let(:options) { {pacticipant_name: pacticipant_name.upcase, label_name: label_name.upcase} }
44
+
45
+ it "returns the label" do
46
+ expect(find_label).to_not be nil
47
+ expect(find_label.name).to eq label_name
48
+ end
49
+ end
50
+
51
+ context "when case sensitivity is turned on and a label name with different case is used" do
52
+ before do
53
+ allow(PactBroker.configuration).to receive(:use_case_sensitive_resource_names).and_return(true)
54
+ end
55
+
56
+ let(:options) { {pacticipant_name: pacticipant_name, label_name: label_name.upcase} }
57
+
58
+ it "returns nil" do
59
+ expect(find_label).to be nil
60
+ end
61
+ end
62
+
63
+ context "when case sensitivity is turned on and a pacticipant name with different case is used" do
64
+ before do
65
+ allow(PactBroker.configuration).to receive(:use_case_sensitive_resource_names).and_return(true)
66
+ end
67
+
68
+ let(:options) { {pacticipant_name: pacticipant_name.upcase, label_name: label_name} }
69
+
70
+ it "returns nil" do
71
+ expect(find_label).to be nil
72
+ end
73
+ end
74
+ end
75
+
76
+ context "when the tag does not exist" do
77
+ it "returns nil" do
78
+ expect(find_label).to be_nil
79
+ end
80
+ end
81
+ end
82
+
83
+ describe "delete" do
84
+ let(:pacticipant_name) { "foo" }
85
+ let(:label_name) { "ios" }
86
+
87
+ let!(:pacticipant) do
88
+ TestDataBuilder.new
89
+ .create_pacticipant("Ignore")
90
+ .create_label("ios")
91
+ .create_pacticipant(pacticipant_name)
92
+ .create_label("ios")
93
+ .create_label("bar")
94
+ .and_return(:pacticipant)
95
+ end
96
+ let(:options) { {pacticipant_name: pacticipant_name, label_name: label_name} }
97
+
98
+ subject { Repository.new.delete(options) }
99
+
100
+ it "deletes the label" do
101
+ expect{ subject }.to change { PactBroker::Domain::Label.count }.by(-1)
102
+ end
103
+ end
104
+
105
+ describe "delete_by_pacticipant_id" do
106
+ let!(:pacticipant) do
107
+ TestDataBuilder.new
108
+ .create_pacticipant("Ignore")
109
+ .create_label("ios")
110
+ .create_pacticipant("Foo")
111
+ .create_label("ios")
112
+ .create_label("bar")
113
+ .and_return(:pacticipant)
114
+ end
115
+
116
+ subject { Repository.new.delete_by_pacticipant_id(pacticipant.id) }
117
+
118
+ it "deletes the labels" do
119
+ expect{ subject }.to change { PactBroker::Domain::Label.count }.by(-2)
120
+ end
121
+ end
122
+ end
123
+ end
124
+ end
@@ -0,0 +1,28 @@
1
+ require 'pact_broker/labels/service'
2
+
3
+ module PactBroker
4
+ module Labels
5
+ describe Service do
6
+ let(:pacticipant_name) { "foo" }
7
+ let(:label_name) { "ios" }
8
+ let(:options) { {pacticipant_name: pacticipant_name, label_name: label_name}}
9
+
10
+ describe ".create" do
11
+ subject { Service.create(options) }
12
+
13
+ # Naughty integration test... didn't seem much point unit testing this
14
+ it "creates the new tag" do
15
+ expect(subject.name).to eq label_name
16
+ expect(subject.pacticipant.name).to eq pacticipant_name
17
+ end
18
+ end
19
+
20
+ describe "delete" do
21
+ it "calls delete on the label repository" do
22
+ allow_any_instance_of(Labels::Repository).to receive(:delete).with(options)
23
+ Service.delete(options)
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -6,6 +6,25 @@ module PactBroker
6
6
  module Pacticipants
7
7
  describe Repository do
8
8
 
9
+ describe "#find" do
10
+ before do
11
+ TestDataBuilder.new
12
+ .create_pacticipant("Foo")
13
+ .create_label("in")
14
+ .create_pacticipant("Bar")
15
+ .create_label("in")
16
+ .create_label("blah")
17
+ .create_pacticipant("Wiffle")
18
+ .create_label("out")
19
+ end
20
+
21
+ subject { Repository.new.find label_name: "in" }
22
+
23
+ it "returns the pacticipants with the given label" do
24
+ expect(subject.collect(&:name)).to eq ["Bar", "Foo"]
25
+ end
26
+
27
+ end
9
28
  describe "#find_by_name" do
10
29
  before do
11
30
  TestDataBuilder.new.create_pacticipant("Foo Bar")
@@ -9,6 +9,7 @@ require 'pact_broker/pacticipants/service'
9
9
  require 'pact_broker/versions/repository'
10
10
  require 'pact_broker/versions/service'
11
11
  require 'pact_broker/tags/repository'
12
+ require 'pact_broker/labels/repository'
12
13
  require 'pact_broker/tags/service'
13
14
  require 'pact_broker/domain'
14
15
  require 'json'
@@ -135,6 +136,11 @@ class TestDataBuilder
135
136
  self
136
137
  end
137
138
 
139
+ def create_label label_name
140
+ @label = PactBroker::Domain::Label.create(name: label_name, pacticipant: @pacticipant)
141
+ self
142
+ end
143
+
138
144
  def create_pact params = {}
139
145
  @pact = PactBroker::Pacts::Repository.new.create({version_id: @consumer_version.id, consumer_id: @consumer.id, provider_id: @provider.id, json_content: params[:json_content] || default_json_content})
140
146
  set_created_at_if_set params[:created_at], :pact_publications, {id: @pact.id}
data/tasks/database.rb CHANGED
@@ -9,7 +9,7 @@ Sequel.extension :migration
9
9
  module PactBroker
10
10
  module Database
11
11
 
12
- TABLES = [:webhook_executions, :config, :pacts, :pact_version_contents, :tags, :verifications, :pact_publications, :pact_versions, :webhook_headers, :webhooks, :versions, :pacticipants].freeze
12
+ TABLES = [:labels, :webhook_executions, :config, :pacts, :pact_version_contents, :tags, :verifications, :pact_publications, :pact_versions, :webhook_headers, :webhooks, :versions, :pacticipants].freeze
13
13
 
14
14
  extend self
15
15
 
@@ -192,7 +192,7 @@ Content-Type: application/json
192
192
 
193
193
  <script id="embedded-resource-template" type="text/template">
194
194
  <div class="accordion-heading">
195
- <a class="accordion-toggle" href="#"><%= resource.identifier %><% if (resource.title) { %>: <span class="embedded-resource-title"><%- resource.title %></span><% } %>
195
+ <a class="accordion-toggle" href="#"><%= resource.identifier %><% if (resource.title || resource.name) { %>: <span class="embedded-resource-title"><%- resource.title || resource.name %></span><% } %>
196
196
  <% if (HAL.isUrl(resource.embed_rel)) { %>
197
197
  <span class="dox pull-right" data-href="<%= HAL.buildUrl(resource.embed_rel) %>">
198
198
  <i class="icon-book"></i>
@@ -3,6 +3,7 @@ HAL.Models.Resource = Backbone.Model.extend({
3
3
  representation = representation || {};
4
4
  this.links = representation._links;
5
5
  this.title = representation.title;
6
+ this.name = representation.name;
6
7
  if(representation._embedded !== undefined) {
7
8
  this.embeddedResources = this.buildEmbeddedResources(representation._embedded);
8
9
  }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pact_broker
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.0
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bethany Skurrie
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-07-14 00:00:00.000000000 Z
13
+ date: 2017-07-31 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: httparty
@@ -470,6 +470,7 @@ files:
470
470
  - db/migrations/34_create_index_on_consumer_version_order.rb
471
471
  - db/migrations/35_create_index_on_names.rb
472
472
  - db/migrations/36_create_webhook_execution.rb
473
+ - db/migrations/37_create_labels_table.rb
473
474
  - db/migrations/migration_helper.rb
474
475
  - db/pact_broker_database.sqlite3
475
476
  - example/Gemfile
@@ -492,8 +493,10 @@ files:
492
493
  - lib/pact_broker/api/decorators/base_decorator.rb
493
494
  - lib/pact_broker/api/decorators/basic_pacticipant_decorator.rb
494
495
  - lib/pact_broker/api/decorators/decorator_context.rb
496
+ - lib/pact_broker/api/decorators/embedded_label_decorator.rb
495
497
  - lib/pact_broker/api/decorators/embedded_tag_decorator.rb
496
498
  - lib/pact_broker/api/decorators/embedded_version_decorator.rb
499
+ - lib/pact_broker/api/decorators/label_decorator.rb
497
500
  - lib/pact_broker/api/decorators/latest_pact_decorator.rb
498
501
  - lib/pact_broker/api/decorators/pact_collection_decorator.rb
499
502
  - lib/pact_broker/api/decorators/pact_decorator.rb
@@ -523,6 +526,7 @@ files:
523
526
  - lib/pact_broker/api/resources/base_resource.rb
524
527
  - lib/pact_broker/api/resources/group.rb
525
528
  - lib/pact_broker/api/resources/index.rb
529
+ - lib/pact_broker/api/resources/label.rb
526
530
  - lib/pact_broker/api/resources/latest_pact.rb
527
531
  - lib/pact_broker/api/resources/latest_pacts.rb
528
532
  - lib/pact_broker/api/resources/latest_provider_pacts.rb
@@ -534,6 +538,7 @@ files:
534
538
  - lib/pact_broker/api/resources/pacticipant.rb
535
539
  - lib/pact_broker/api/resources/pacticipant_resource_methods.rb
536
540
  - lib/pact_broker/api/resources/pacticipants.rb
541
+ - lib/pact_broker/api/resources/pacticipants_for_label.rb
537
542
  - lib/pact_broker/api/resources/previous_distinct_pact_version.rb
538
543
  - lib/pact_broker/api/resources/relationships.rb
539
544
  - lib/pact_broker/api/resources/tag.rb
@@ -582,6 +587,7 @@ files:
582
587
  - lib/pact_broker/doc/views/webhooks.markdown
583
588
  - lib/pact_broker/domain.rb
584
589
  - lib/pact_broker/domain/group.rb
590
+ - lib/pact_broker/domain/label.rb
585
591
  - lib/pact_broker/domain/order_versions.rb
586
592
  - lib/pact_broker/domain/pact.rb
587
593
  - lib/pact_broker/domain/pacticipant.rb
@@ -595,6 +601,8 @@ files:
595
601
  - lib/pact_broker/domain/webhook_request_header.rb
596
602
  - lib/pact_broker/groups/service.rb
597
603
  - lib/pact_broker/json.rb
604
+ - lib/pact_broker/labels/repository.rb
605
+ - lib/pact_broker/labels/service.rb
598
606
  - lib/pact_broker/locale/en.yml
599
607
  - lib/pact_broker/logging.rb
600
608
  - lib/pact_broker/messages.rb
@@ -700,10 +708,12 @@ files:
700
708
  - script/recreate-pg-db.sh
701
709
  - script/update-hal-browser
702
710
  - spec/features/create_webhook_spec.rb
711
+ - spec/features/delete_label_spec.rb
703
712
  - spec/features/delete_pact_spec.rb
704
713
  - spec/features/delete_version_spec.rb
705
714
  - spec/features/delete_webhook_spec.rb
706
715
  - spec/features/get_diff_spec.rb
716
+ - spec/features/get_label_spec.rb
707
717
  - spec/features/get_latest_pact_badge_spec.rb
708
718
  - spec/features/get_latest_tagged_pact_badge_spec.rb
709
719
  - spec/features/get_latest_tagged_pact_spec.rb
@@ -711,11 +721,13 @@ files:
711
721
  - spec/features/get_latest_untagged_pact_spec.rb
712
722
  - spec/features/get_pact_spec.rb
713
723
  - spec/features/get_pact_versions_spec.rb
724
+ - spec/features/get_pacticipants_by_label_spec.rb
714
725
  - spec/features/get_previous_distinct_version.rb
715
726
  - spec/features/get_provider_pacts_spec.rb
716
727
  - spec/features/get_verifications_for_consumer_version_spec.rb
717
728
  - spec/features/get_version_spec.rb
718
729
  - spec/features/get_versions_spec.rb
730
+ - spec/features/label_pacticipant_spec.rb
719
731
  - spec/features/merge_pact_spec.rb
720
732
  - spec/features/publish_not_a_pact_spec.rb
721
733
  - spec/features/publish_pact_spec.rb
@@ -737,8 +749,10 @@ files:
737
749
  - spec/lib/pact_broker/api/contracts/put_pact_params_contract_spec.rb
738
750
  - spec/lib/pact_broker/api/contracts/verification_contract_spec.rb
739
751
  - spec/lib/pact_broker/api/contracts/webhook_contract_spec.rb
752
+ - spec/lib/pact_broker/api/decorators/embedded_label_decorator_spec.rb
740
753
  - spec/lib/pact_broker/api/decorators/embedded_tag_decorator_spec.rb
741
754
  - spec/lib/pact_broker/api/decorators/embedded_version_decorator_spec.rb
755
+ - spec/lib/pact_broker/api/decorators/label_decorator_spec.rb
742
756
  - spec/lib/pact_broker/api/decorators/latest_pact_decorator_spec.rb
743
757
  - spec/lib/pact_broker/api/decorators/pact_collection_decorator_spec.rb
744
758
  - spec/lib/pact_broker/api/decorators/pact_decorator_spec.rb
@@ -788,6 +802,8 @@ files:
788
802
  - spec/lib/pact_broker/domain/webhook_request_spec.rb
789
803
  - spec/lib/pact_broker/domain/webhook_spec.rb
790
804
  - spec/lib/pact_broker/groups/service_spec.rb
805
+ - spec/lib/pact_broker/labels/repository_spec.rb
806
+ - spec/lib/pact_broker/labels/service_spec.rb
791
807
  - spec/lib/pact_broker/messages_spec.rb
792
808
  - spec/lib/pact_broker/pacticipants/find_potential_duplicate_pacticipant_names_spec.rb
793
809
  - spec/lib/pact_broker/pacticipants/repository_spec.rb
@@ -902,10 +918,12 @@ specification_version: 4
902
918
  summary: See description
903
919
  test_files:
904
920
  - spec/features/create_webhook_spec.rb
921
+ - spec/features/delete_label_spec.rb
905
922
  - spec/features/delete_pact_spec.rb
906
923
  - spec/features/delete_version_spec.rb
907
924
  - spec/features/delete_webhook_spec.rb
908
925
  - spec/features/get_diff_spec.rb
926
+ - spec/features/get_label_spec.rb
909
927
  - spec/features/get_latest_pact_badge_spec.rb
910
928
  - spec/features/get_latest_tagged_pact_badge_spec.rb
911
929
  - spec/features/get_latest_tagged_pact_spec.rb
@@ -913,11 +931,13 @@ test_files:
913
931
  - spec/features/get_latest_untagged_pact_spec.rb
914
932
  - spec/features/get_pact_spec.rb
915
933
  - spec/features/get_pact_versions_spec.rb
934
+ - spec/features/get_pacticipants_by_label_spec.rb
916
935
  - spec/features/get_previous_distinct_version.rb
917
936
  - spec/features/get_provider_pacts_spec.rb
918
937
  - spec/features/get_verifications_for_consumer_version_spec.rb
919
938
  - spec/features/get_version_spec.rb
920
939
  - spec/features/get_versions_spec.rb
940
+ - spec/features/label_pacticipant_spec.rb
921
941
  - spec/features/merge_pact_spec.rb
922
942
  - spec/features/publish_not_a_pact_spec.rb
923
943
  - spec/features/publish_pact_spec.rb
@@ -939,8 +959,10 @@ test_files:
939
959
  - spec/lib/pact_broker/api/contracts/put_pact_params_contract_spec.rb
940
960
  - spec/lib/pact_broker/api/contracts/verification_contract_spec.rb
941
961
  - spec/lib/pact_broker/api/contracts/webhook_contract_spec.rb
962
+ - spec/lib/pact_broker/api/decorators/embedded_label_decorator_spec.rb
942
963
  - spec/lib/pact_broker/api/decorators/embedded_tag_decorator_spec.rb
943
964
  - spec/lib/pact_broker/api/decorators/embedded_version_decorator_spec.rb
965
+ - spec/lib/pact_broker/api/decorators/label_decorator_spec.rb
944
966
  - spec/lib/pact_broker/api/decorators/latest_pact_decorator_spec.rb
945
967
  - spec/lib/pact_broker/api/decorators/pact_collection_decorator_spec.rb
946
968
  - spec/lib/pact_broker/api/decorators/pact_decorator_spec.rb
@@ -990,6 +1012,8 @@ test_files:
990
1012
  - spec/lib/pact_broker/domain/webhook_request_spec.rb
991
1013
  - spec/lib/pact_broker/domain/webhook_spec.rb
992
1014
  - spec/lib/pact_broker/groups/service_spec.rb
1015
+ - spec/lib/pact_broker/labels/repository_spec.rb
1016
+ - spec/lib/pact_broker/labels/service_spec.rb
993
1017
  - spec/lib/pact_broker/messages_spec.rb
994
1018
  - spec/lib/pact_broker/pacticipants/find_potential_duplicate_pacticipant_names_spec.rb
995
1019
  - spec/lib/pact_broker/pacticipants/repository_spec.rb