pact-mock_service 3.11.1 → 3.12.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 +14 -0
- data/lib/pact/consumer/server.rb +5 -1
- data/lib/pact/consumer_contract/consumer_contract_writer.rb +5 -4
- data/lib/pact/mock_service/cli.rb +5 -1
- data/lib/pact/mock_service/interactions/interaction_mismatch.rb +5 -5
- data/lib/pact/mock_service/request_handlers/interaction_post.rb +1 -1
- data/lib/pact/mock_service/version.rb +1 -1
- data/lib/pact/stub_service/cli.rb +5 -1
- metadata +33 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8df83bcc8595050f2a3a625966e7d2e43b4c75cdc634dc95c8b67eb4b7358d93
|
4
|
+
data.tar.gz: b09a1fc63348ec662c472353311c37036042093a40c6fe8f37561ab01fdbd11b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 60405d58990da42e85ea1853c6ff760ab2949f74fefe6af3b809e7b9e876102e9a63f59ec55c2319ed7d67cb5a0f1c9689a76c3e6404be283d0d3e7aeb95fbd1
|
7
|
+
data.tar.gz: 73118d1f9c52a59e655753e0c5a96bb16143b15fe6333d67350379cc5566550cdc5365062d1ea4237364bc3b3ca4bad9201b90434a923403cd018aac6b60e421
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
<a name="v3.12.0"></a>
|
2
|
+
### v3.12.0 (2023-10-18)
|
3
|
+
|
4
|
+
#### Features
|
5
|
+
|
6
|
+
* add Rack 3 compatibility (#146) ([9afea51](/../../commit/9afea51))
|
7
|
+
|
8
|
+
<a name="v3.11.2"></a>
|
9
|
+
### v3.11.2 (2023-05-18)
|
10
|
+
|
11
|
+
#### Bug Fixes
|
12
|
+
|
13
|
+
* use native lockfile, rather than ruby gem, tested on ruby 3.3.0-dev ([9a51a01](/../../commit/9a51a01))
|
14
|
+
|
1
15
|
<a name="v3.11.1"></a>
|
2
16
|
### v3.11.1 (2023-05-05)
|
3
17
|
|
data/lib/pact/consumer/server.rb
CHANGED
@@ -66,7 +66,11 @@ module Pact
|
|
66
66
|
end
|
67
67
|
|
68
68
|
def run_default_server(app, port)
|
69
|
-
|
69
|
+
begin
|
70
|
+
require 'rack/handler/webrick'
|
71
|
+
rescue LoadError
|
72
|
+
require 'rackup/handler/webrick'
|
73
|
+
end
|
70
74
|
Rack::Handler::WEBrick.run(app, **webrick_opts) do |server|
|
71
75
|
@port = server[:Port]
|
72
76
|
end
|
@@ -5,7 +5,6 @@ require 'pact/consumer_contract/pact_file'
|
|
5
5
|
require 'pact/consumer_contract/consumer_contract_decorator'
|
6
6
|
require 'pact/shared/active_support_support'
|
7
7
|
require 'fileutils'
|
8
|
-
require 'filelock'
|
9
8
|
|
10
9
|
module Pact
|
11
10
|
|
@@ -60,8 +59,10 @@ module Pact
|
|
60
59
|
def update_pactfile
|
61
60
|
logger.info log_message
|
62
61
|
FileUtils.mkdir_p File.dirname(pactfile_path)
|
63
|
-
|
64
|
-
|
62
|
+
# must be read after obtaining the lock, and must be read from the yielded file object, otherwise windows freaks out
|
63
|
+
# https://apidock.com/ruby/File/flock
|
64
|
+
File.open(pactfile_path, File::RDWR|File::CREAT, 0644) {|pact_file|
|
65
|
+
pact_file.flock(File::LOCK_EX)
|
65
66
|
@existing_contents = pact_file.read
|
66
67
|
new_contents = pact_json
|
67
68
|
pact_file.rewind
|
@@ -69,7 +70,7 @@ module Pact
|
|
69
70
|
pact_file.write new_contents
|
70
71
|
pact_file.flush
|
71
72
|
pact_file.truncate(pact_file.pos)
|
72
|
-
|
73
|
+
}
|
73
74
|
end
|
74
75
|
|
75
76
|
def pact_json
|
@@ -171,7 +171,11 @@ module Pact
|
|
171
171
|
|
172
172
|
def require_common_dependencies
|
173
173
|
require 'webrick/https'
|
174
|
-
|
174
|
+
begin
|
175
|
+
require 'rack/handler/webrick'
|
176
|
+
rescue LoadError
|
177
|
+
require 'rackup/handler/webrick'
|
178
|
+
end
|
175
179
|
require 'fileutils'
|
176
180
|
require 'pact/mock_service/server/wait_for_server_up'
|
177
181
|
require 'pact/mock_service/cli/pidfile'
|
@@ -14,25 +14,25 @@ module Pact
|
|
14
14
|
def initialize candidate_interactions, actual_request
|
15
15
|
@candidate_interactions = candidate_interactions
|
16
16
|
@actual_request = actual_request
|
17
|
-
@
|
17
|
+
@candidate_diffs = candidate_interactions.collect{ | candidate_interaction| CandidateDiff.new(candidate_interaction, actual_request)}
|
18
18
|
end
|
19
19
|
|
20
20
|
def to_hash
|
21
|
-
|
21
|
+
candidate_diffs.collect(&:to_hash)
|
22
22
|
end
|
23
23
|
|
24
24
|
def to_s
|
25
|
-
|
25
|
+
candidate_diffs.collect(&:to_s).join("\n")
|
26
26
|
end
|
27
27
|
|
28
28
|
def short_summary
|
29
|
-
mismatched_attributes =
|
29
|
+
mismatched_attributes = candidate_diffs.collect(&:mismatched_attributes).flatten.uniq.join(", ").reverse.sub(",", "dna ").reverse #OMG what a hack!
|
30
30
|
actual_request.method_and_path + " (request #{mismatched_attributes} did not match)"
|
31
31
|
end
|
32
32
|
|
33
33
|
private
|
34
34
|
|
35
|
-
attr_accessor :
|
35
|
+
attr_accessor :candidate_diffs
|
36
36
|
|
37
37
|
class CandidateDiff
|
38
38
|
|
@@ -21,7 +21,7 @@ module Pact
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def respond env
|
24
|
-
request_body = env['rack.input'].
|
24
|
+
request_body = env['rack.input'].read
|
25
25
|
parsing_options = { pact_specification_version: pact_specification_version }
|
26
26
|
interaction = Interaction.from_hash(JSON.load(request_body), parsing_options) # Load creates the Pact::XXX classes
|
27
27
|
|
@@ -1,6 +1,10 @@
|
|
1
1
|
require 'pact/mock_service/cli/custom_thor'
|
2
2
|
require 'webrick/https'
|
3
|
-
|
3
|
+
begin
|
4
|
+
require 'rack/handler/webrick'
|
5
|
+
rescue LoadError
|
6
|
+
require 'rackup/handler/webrick'
|
7
|
+
end
|
4
8
|
require 'fileutils'
|
5
9
|
require 'pact/mock_service/server/wait_for_server_up'
|
6
10
|
require 'pact/mock_service/cli/pidfile'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pact-mock_service
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Fraser
|
@@ -12,10 +12,30 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2023-
|
15
|
+
date: 2023-10-18 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: rack
|
19
|
+
requirement: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: '2.0'
|
24
|
+
- - "<"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '4.0'
|
27
|
+
type: :runtime
|
28
|
+
prerelease: false
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '2.0'
|
34
|
+
- - "<"
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '4.0'
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: rackup
|
19
39
|
requirement: !ruby/object:Gem::Requirement
|
20
40
|
requirements:
|
21
41
|
- - "~>"
|
@@ -96,14 +116,14 @@ dependencies:
|
|
96
116
|
requirements:
|
97
117
|
- - "~>"
|
98
118
|
- !ruby/object:Gem::Version
|
99
|
-
version: '1.
|
119
|
+
version: '1.8'
|
100
120
|
type: :runtime
|
101
121
|
prerelease: false
|
102
122
|
version_requirements: !ruby/object:Gem::Requirement
|
103
123
|
requirements:
|
104
124
|
- - "~>"
|
105
125
|
- !ruby/object:Gem::Version
|
106
|
-
version: '1.
|
126
|
+
version: '1.8'
|
107
127
|
- !ruby/object:Gem::Dependency
|
108
128
|
name: pact-support
|
109
129
|
requirement: !ruby/object:Gem::Requirement
|
@@ -124,34 +144,26 @@ dependencies:
|
|
124
144
|
- - ">="
|
125
145
|
- !ruby/object:Gem::Version
|
126
146
|
version: 1.16.4
|
127
|
-
- !ruby/object:Gem::Dependency
|
128
|
-
name: filelock
|
129
|
-
requirement: !ruby/object:Gem::Requirement
|
130
|
-
requirements:
|
131
|
-
- - "~>"
|
132
|
-
- !ruby/object:Gem::Version
|
133
|
-
version: '1.1'
|
134
|
-
type: :runtime
|
135
|
-
prerelease: false
|
136
|
-
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
requirements:
|
138
|
-
- - "~>"
|
139
|
-
- !ruby/object:Gem::Version
|
140
|
-
version: '1.1'
|
141
147
|
- !ruby/object:Gem::Dependency
|
142
148
|
name: rack-test
|
143
149
|
requirement: !ruby/object:Gem::Requirement
|
144
150
|
requirements:
|
145
|
-
- - "
|
151
|
+
- - ">="
|
146
152
|
- !ruby/object:Gem::Version
|
147
153
|
version: '0.7'
|
154
|
+
- - "<"
|
155
|
+
- !ruby/object:Gem::Version
|
156
|
+
version: '3.0'
|
148
157
|
type: :development
|
149
158
|
prerelease: false
|
150
159
|
version_requirements: !ruby/object:Gem::Requirement
|
151
160
|
requirements:
|
152
|
-
- - "
|
161
|
+
- - ">="
|
153
162
|
- !ruby/object:Gem::Version
|
154
163
|
version: '0.7'
|
164
|
+
- - "<"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '3.0'
|
155
167
|
- !ruby/object:Gem::Dependency
|
156
168
|
name: rake
|
157
169
|
requirement: !ruby/object:Gem::Requirement
|
@@ -398,7 +410,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
398
410
|
- !ruby/object:Gem::Version
|
399
411
|
version: '0'
|
400
412
|
requirements: []
|
401
|
-
rubygems_version: 3.4.
|
413
|
+
rubygems_version: 3.4.21
|
402
414
|
signing_key:
|
403
415
|
specification_version: 4
|
404
416
|
summary: Provides a mock service for use with Pact
|