pact-mock_service 3.7.0 → 3.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 +28 -0
- data/lib/pact/consumer/server.rb +1 -1
- data/lib/pact/mock_service/app_manager.rb +3 -0
- data/lib/pact/mock_service/interactions/verification.rb +4 -0
- data/lib/pact/mock_service/request_handlers/interaction_replay.rb +1 -1
- data/lib/pact/mock_service/request_handlers/verification_get.rb +1 -1
- data/lib/pact/mock_service/run.rb +2 -0
- data/lib/pact/mock_service/version.rb +1 -1
- data/lib/pact/support/metrics.rb +85 -0
- metadata +8 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d16d00c403d1d26138138585d3d47c523d07c22d68e86bbe03281cb365602045
|
4
|
+
data.tar.gz: 8de64b754a090f75feec4ba1da30cf63647ee8e9d0bab378ddcab461427bb4d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 945a1bff98624e8274039efd472e1e58a3882f60ab4ac95c8c3c374ec3a213c2e0b877bfa0b3b025f8aed1aa5af78bcd5bb77f7e3e91e6494f71df9d104231eb
|
7
|
+
data.tar.gz: c4594ee0cc987482f35b92e460116e1a48c52f743850850bd3b949e3a070b53fdf008f833cb0adc837ea886633ee496126c0419ec5b6ace83f57e90c6fcd3762
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,31 @@
|
|
1
|
+
<a name="v3.10.0"></a>
|
2
|
+
### v3.10.0 (2022-02-21)
|
3
|
+
|
4
|
+
#### Features
|
5
|
+
|
6
|
+
* add telemetry ([db5dfa5](/../../commit/db5dfa5))
|
7
|
+
|
8
|
+
<a name="v3.9.1"></a>
|
9
|
+
### v3.9.1 (2021-06-03)
|
10
|
+
|
11
|
+
#### Bug Fixes
|
12
|
+
|
13
|
+
* check for nil body rather than falsey body when determining how to render mocked response Fixes: https://github.com/pact-foundation/pact-mock_service/issues/99 ([d26e520](/../../commit/d26e520))
|
14
|
+
|
15
|
+
<a name="v3.9.0"></a>
|
16
|
+
### v3.9.0 (2021-05-17)
|
17
|
+
|
18
|
+
#### Features
|
19
|
+
|
20
|
+
* pass host into WEBrick options to allow configuration (#128) ([ec234a4](/../../commit/ec234a4))
|
21
|
+
|
22
|
+
<a name="v3.8.0"></a>
|
23
|
+
### v3.8.0 (2021-02-25)
|
24
|
+
|
25
|
+
#### Features
|
26
|
+
|
27
|
+
* include interaction diffs in verification response ([6306693](/../../commit/6306693))
|
28
|
+
|
1
29
|
<a name="v3.7.0"></a>
|
2
30
|
### v3.7.0 (2020-11-13)
|
3
31
|
|
data/lib/pact/consumer/server.rb
CHANGED
@@ -83,7 +83,7 @@ module Pact
|
|
83
83
|
end
|
84
84
|
|
85
85
|
def webrick_opts
|
86
|
-
opts = { Port: port.nil? ? 0 : port, AccessLog: [], Logger: WEBrick::Log::new(nil, 0) }
|
86
|
+
opts = { Host: host.nil? ? 'localhost' : host, Port: port.nil? ? 0 : port, AccessLog: [], Logger: WEBrick::Log::new(nil, 0) }
|
87
87
|
opts.merge!({
|
88
88
|
:SSLCertificate => OpenSSL::X509::Certificate.new(File.open(options[:sslcert]).read) }) if options[:sslcert]
|
89
89
|
opts.merge!({
|
@@ -4,6 +4,7 @@ require 'pact/logging'
|
|
4
4
|
require 'pact/consumer/server'
|
5
5
|
require 'singleton'
|
6
6
|
require 'pact/mock_service/app'
|
7
|
+
require 'pact/support/metrics'
|
7
8
|
|
8
9
|
module Pact
|
9
10
|
module MockService
|
@@ -29,6 +30,8 @@ module Pact
|
|
29
30
|
pact_dir: pact_dir,
|
30
31
|
pact_specification_version: options.fetch(:pact_specification_version)
|
31
32
|
)
|
33
|
+
|
34
|
+
Pact::Support::Metrics.report_metric("Pact mock server started", "ConsumerTest", "MockServerStarted")
|
32
35
|
register(app, uri.host, uri.port)
|
33
36
|
end
|
34
37
|
|
@@ -38,6 +38,10 @@ module Pact
|
|
38
38
|
expected_interactions - actual_interactions.matched_interactions - @actual_interactions.interaction_mismatches.collect(&:candidate_interactions).flatten
|
39
39
|
end
|
40
40
|
|
41
|
+
def interaction_mismatches
|
42
|
+
actual_interactions.interaction_mismatches
|
43
|
+
end
|
44
|
+
|
41
45
|
private
|
42
46
|
|
43
47
|
attr_reader :expected_interactions, :actual_interactions
|
@@ -52,7 +52,7 @@ module Pact
|
|
52
52
|
def to_s
|
53
53
|
titles_and_summaries.collect do | title, summaries |
|
54
54
|
"#{title}:\n\t#{summaries.join("\n\t")}\n\n" if summaries.any?
|
55
|
-
end.compact.join
|
55
|
+
end.compact.join + verification.interaction_mismatches.collect(&:to_s).join("\n\n") + "\n"
|
56
56
|
|
57
57
|
end
|
58
58
|
|
@@ -4,6 +4,7 @@ require 'pact/consumer/mock_service/set_location'
|
|
4
4
|
require 'pact/mock_service/run'
|
5
5
|
require 'pact/mock_service/server/webrick_request_monkeypatch'
|
6
6
|
require 'pact/specification_version'
|
7
|
+
require 'pact/support/metrics'
|
7
8
|
|
8
9
|
module Pact
|
9
10
|
module MockService
|
@@ -35,6 +36,7 @@ module Pact
|
|
35
36
|
def mock_service
|
36
37
|
@mock_service ||= begin
|
37
38
|
mock_service = Pact::MockService.new(service_options)
|
39
|
+
Pact::Support::Metrics.report_metric("Pact mock server started", "ConsumerTest", "MockServerStarted")
|
38
40
|
Pact::Consumer::SetLocation.new(mock_service, base_url)
|
39
41
|
end
|
40
42
|
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
require 'securerandom'
|
2
|
+
require 'digest'
|
3
|
+
require 'socket'
|
4
|
+
require 'pact/support/metrics'
|
5
|
+
require 'pact/mock_service/version'
|
6
|
+
require 'net/http'
|
7
|
+
|
8
|
+
module Pact
|
9
|
+
module Support
|
10
|
+
class Metrics
|
11
|
+
|
12
|
+
def self.report_metric(event, category, action, value = 1)
|
13
|
+
in_thread do
|
14
|
+
begin
|
15
|
+
if track_events?
|
16
|
+
Pact.configuration.output_stream.puts "WARN: Please note: we are tracking events anonymously to gather important usage statistics like Pact-Ruby version and operating system. To disable tracking, set the 'PACT_DO_NOT_TRACK' environment variable to 'true'."
|
17
|
+
|
18
|
+
uri = URI('https://www.google-analytics.com/collect')
|
19
|
+
req = Net::HTTP::Post.new(uri)
|
20
|
+
req.set_form_data(create_tracking_event(event, category, action, value))
|
21
|
+
|
22
|
+
Net::HTTP.start(uri.hostname, uri.port, read_timeout:2, open_timeout:2, :use_ssl => true ) do |http|
|
23
|
+
http.request(req)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
rescue StandardError => e
|
27
|
+
handle_error(e)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def self.handle_error e
|
35
|
+
if ENV['PACT_METRICS_DEBUG'] == 'true'
|
36
|
+
Pact.configuration.output_stream.puts("DEBUG: #{e.inspect}\n" + e.backtrace.join("\n"))
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.in_thread
|
41
|
+
Thread.new do
|
42
|
+
yield
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.create_tracking_event(event, category, action, value)
|
47
|
+
{
|
48
|
+
"v" => 1,
|
49
|
+
"t" => "event",
|
50
|
+
"tid" => "UA-117778936-1",
|
51
|
+
"cid" => calculate_cid,
|
52
|
+
"an" => "Pact Mock Service",
|
53
|
+
"av" => Pact::MockService::VERSION,
|
54
|
+
"aid" => "pact-mock_service",
|
55
|
+
"aip" => 1,
|
56
|
+
"ds" => ENV['PACT_EXECUTING_LANGUAGE'] ? "client" : "cli",
|
57
|
+
"cd2" => ENV['CI'] == "true" ? "CI" : "unknown",
|
58
|
+
"cd3" => RUBY_PLATFORM,
|
59
|
+
"cd6" => ENV['PACT_EXECUTING_LANGUAGE'] || "unknown",
|
60
|
+
"cd7" => ENV['PACT_EXECUTING_LANGUAGE_VERSION'],
|
61
|
+
"el" => event,
|
62
|
+
"ec" => category,
|
63
|
+
"ea" => action,
|
64
|
+
"ev" => value
|
65
|
+
}
|
66
|
+
end
|
67
|
+
|
68
|
+
def self.track_events?
|
69
|
+
ENV['PACT_DO_NOT_TRACK'] != 'true'
|
70
|
+
end
|
71
|
+
|
72
|
+
def self.calculate_cid
|
73
|
+
if RUBY_PLATFORM.include? "windows"
|
74
|
+
hostname = ENV['COMPUTERNAME']
|
75
|
+
else
|
76
|
+
hostname = ENV['HOSTNAME']
|
77
|
+
end
|
78
|
+
if !hostname
|
79
|
+
hostname = Socket.gethostname
|
80
|
+
end
|
81
|
+
Digest::MD5.hexdigest hostname || SecureRandom.urlsafe_base64(5)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
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.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Fraser
|
@@ -9,10 +9,10 @@ authors:
|
|
9
9
|
- Brent Snook
|
10
10
|
- Ronald Holshausen
|
11
11
|
- Beth Skurrie
|
12
|
-
autorequire:
|
12
|
+
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date:
|
15
|
+
date: 2022-02-21 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: rack
|
@@ -312,7 +312,7 @@ dependencies:
|
|
312
312
|
- - "~>"
|
313
313
|
- !ruby/object:Gem::Version
|
314
314
|
version: '0.5'
|
315
|
-
description:
|
315
|
+
description:
|
316
316
|
email:
|
317
317
|
- james.fraser@alumni.swinburne.edu
|
318
318
|
- sergei.matheson@gmail.com
|
@@ -392,11 +392,12 @@ files:
|
|
392
392
|
- lib/pact/mock_service/version.rb
|
393
393
|
- lib/pact/stub_service/cli.rb
|
394
394
|
- lib/pact/support/expand_file_list.rb
|
395
|
+
- lib/pact/support/metrics.rb
|
395
396
|
homepage: https://github.com/bethesque/pact-mock_service
|
396
397
|
licenses:
|
397
398
|
- MIT
|
398
399
|
metadata: {}
|
399
|
-
post_install_message:
|
400
|
+
post_install_message:
|
400
401
|
rdoc_options: []
|
401
402
|
require_paths:
|
402
403
|
- lib
|
@@ -411,8 +412,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
411
412
|
- !ruby/object:Gem::Version
|
412
413
|
version: '0'
|
413
414
|
requirements: []
|
414
|
-
rubygems_version: 3.
|
415
|
-
signing_key:
|
415
|
+
rubygems_version: 3.3.7
|
416
|
+
signing_key:
|
416
417
|
specification_version: 4
|
417
418
|
summary: Provides a mock service for use with Pact
|
418
419
|
test_files: []
|