vault-tools 0.7.1 → 2.0.2
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 +5 -5
- data/.travis.yml +4 -3
- data/Gemfile +4 -3
- data/Gemfile.lock +65 -72
- data/README.md +0 -13
- data/lib/vault-tools.rb +15 -16
- data/lib/vault-tools/app.rb +3 -3
- data/lib/vault-tools/config.rb +6 -24
- data/lib/vault-tools/log.rb +4 -4
- data/lib/vault-tools/pipeline.rb +1 -1
- data/lib/vault-tools/s3.rb +9 -9
- data/lib/vault-tools/statement_store.rb +15 -9
- data/lib/vault-tools/time.rb +1 -1
- data/lib/vault-tools/user.rb +3 -3
- data/lib/vault-tools/version.rb +3 -1
- data/lib/vault-tools/web.rb +9 -1
- data/test/config_test.rb +7 -36
- data/test/defaults_test.rb +4 -4
- data/test/helper.rb +12 -46
- data/test/log_test.rb +5 -4
- data/test/s3_test.rb +16 -16
- data/test/statement_store_test.rb +9 -12
- data/test/web_test.rb +1 -0
- data/vault-tools.gemspec +10 -9
- metadata +17 -46
- data/lib/vault-tools/tracing.rb +0 -92
- data/lib/vault-tools/tracing/sidekiq_client.rb +0 -37
- data/lib/vault-tools/tracing/sidekiq_server.rb +0 -54
- data/test/tracing_test.rb +0 -86
data/test/web_test.rb
CHANGED
@@ -155,6 +155,7 @@ class WebTest < Vault::TestCase
|
|
155
155
|
head '/'
|
156
156
|
assert_equal '1', logged_data['count#test-app.http.200']
|
157
157
|
assert_equal '1', logged_data['count#test-app.http.2xx']
|
158
|
+
assert_equal '/', logged_data['request_path']
|
158
159
|
assert_equal(200, last_response.status)
|
159
160
|
end
|
160
161
|
|
data/vault-tools.gemspec
CHANGED
@@ -7,28 +7,29 @@ require 'vault-tools/version'
|
|
7
7
|
Gem::Specification.new do |gem|
|
8
8
|
gem.name = "vault-tools"
|
9
9
|
gem.version = Vault::Tools::VERSION
|
10
|
-
gem.authors = ["Chris Continanza", "Jamu Kakar"]
|
11
|
-
gem.email = ["
|
10
|
+
gem.authors = ["Chris Continanza", "Jamu Kakar", "Kenny Parnell"]
|
11
|
+
gem.email = ["csquared@heroku.com", "christopher.continanza@gmail.com",
|
12
|
+
"jkakar@heroku.com","jkakar@kakar.ca",
|
13
|
+
"kennyp@heroku.com", "k.parnell@gmail.com"]
|
12
14
|
gem.description = "Basic tools for Heroku Vault's Ruby projects"
|
13
15
|
gem.summary = "Test classes, base web classes, and helpers - oh my!"
|
14
16
|
gem.homepage = ""
|
17
|
+
gem.required_ruby_version = '>= 2.5.3'
|
15
18
|
|
16
19
|
gem.files = `git ls-files`.split($/)
|
17
20
|
gem.test_files = gem.files.grep('^(test|spec|features)/')
|
18
21
|
gem.require_paths = ["lib"]
|
19
22
|
|
20
23
|
gem.add_dependency 'scrolls', '~> 0.9'
|
21
|
-
gem.add_dependency 'sinatra', '~>
|
24
|
+
gem.add_dependency 'sinatra', '~> 2.0.4'
|
22
25
|
gem.add_dependency 'uuidtools'
|
23
26
|
gem.add_dependency 'rack-ssl-enforcer'
|
24
|
-
gem.add_dependency '
|
25
|
-
gem.add_dependency '
|
26
|
-
gem.add_dependency '
|
27
|
-
gem.add_dependency 'aws-sdk', '~> 1.0'
|
27
|
+
gem.add_dependency 'fernet', '2.0'
|
28
|
+
gem.add_dependency 'rollbar', '~> 2.18.2'
|
29
|
+
gem.add_dependency 'aws-sdk-s3', '~> 1.0'
|
28
30
|
gem.add_dependency 'excon'
|
29
|
-
gem.add_dependency 'rack', '~>
|
31
|
+
gem.add_dependency 'rack', '~> 2.0'
|
30
32
|
gem.add_dependency 'coderay'
|
31
|
-
gem.add_dependency 'zipkin-tracer', '~> 0.27'
|
32
33
|
|
33
34
|
gem.add_development_dependency 'dotenv'
|
34
35
|
gem.add_development_dependency 'pry'
|
metadata
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vault-tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 2.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Continanza
|
8
8
|
- Jamu Kakar
|
9
|
+
- Kenny Parnell
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date:
|
13
|
+
date: 2020-06-23 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: scrolls
|
@@ -31,14 +32,14 @@ dependencies:
|
|
31
32
|
requirements:
|
32
33
|
- - "~>"
|
33
34
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
35
|
+
version: 2.0.4
|
35
36
|
type: :runtime
|
36
37
|
prerelease: false
|
37
38
|
version_requirements: !ruby/object:Gem::Requirement
|
38
39
|
requirements:
|
39
40
|
- - "~>"
|
40
41
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
42
|
+
version: 2.0.4
|
42
43
|
- !ruby/object:Gem::Dependency
|
43
44
|
name: uuidtools
|
44
45
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,50 +68,36 @@ dependencies:
|
|
67
68
|
- - ">="
|
68
69
|
- !ruby/object:Gem::Version
|
69
70
|
version: '0'
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: heroku-api
|
72
|
-
requirement: !ruby/object:Gem::Requirement
|
73
|
-
requirements:
|
74
|
-
- - ">="
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: '0'
|
77
|
-
type: :runtime
|
78
|
-
prerelease: false
|
79
|
-
version_requirements: !ruby/object:Gem::Requirement
|
80
|
-
requirements:
|
81
|
-
- - ">="
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version: '0'
|
84
71
|
- !ruby/object:Gem::Dependency
|
85
72
|
name: fernet
|
86
73
|
requirement: !ruby/object:Gem::Requirement
|
87
74
|
requirements:
|
88
75
|
- - '='
|
89
76
|
- !ruby/object:Gem::Version
|
90
|
-
version: 2.0
|
77
|
+
version: '2.0'
|
91
78
|
type: :runtime
|
92
79
|
prerelease: false
|
93
80
|
version_requirements: !ruby/object:Gem::Requirement
|
94
81
|
requirements:
|
95
82
|
- - '='
|
96
83
|
- !ruby/object:Gem::Version
|
97
|
-
version: 2.0
|
84
|
+
version: '2.0'
|
98
85
|
- !ruby/object:Gem::Dependency
|
99
86
|
name: rollbar
|
100
87
|
requirement: !ruby/object:Gem::Requirement
|
101
88
|
requirements:
|
102
89
|
- - "~>"
|
103
90
|
- !ruby/object:Gem::Version
|
104
|
-
version: 2.
|
91
|
+
version: 2.18.2
|
105
92
|
type: :runtime
|
106
93
|
prerelease: false
|
107
94
|
version_requirements: !ruby/object:Gem::Requirement
|
108
95
|
requirements:
|
109
96
|
- - "~>"
|
110
97
|
- !ruby/object:Gem::Version
|
111
|
-
version: 2.
|
98
|
+
version: 2.18.2
|
112
99
|
- !ruby/object:Gem::Dependency
|
113
|
-
name: aws-sdk
|
100
|
+
name: aws-sdk-s3
|
114
101
|
requirement: !ruby/object:Gem::Requirement
|
115
102
|
requirements:
|
116
103
|
- - "~>"
|
@@ -143,14 +130,14 @@ dependencies:
|
|
143
130
|
requirements:
|
144
131
|
- - "~>"
|
145
132
|
- !ruby/object:Gem::Version
|
146
|
-
version:
|
133
|
+
version: '2.0'
|
147
134
|
type: :runtime
|
148
135
|
prerelease: false
|
149
136
|
version_requirements: !ruby/object:Gem::Requirement
|
150
137
|
requirements:
|
151
138
|
- - "~>"
|
152
139
|
- !ruby/object:Gem::Version
|
153
|
-
version:
|
140
|
+
version: '2.0'
|
154
141
|
- !ruby/object:Gem::Dependency
|
155
142
|
name: coderay
|
156
143
|
requirement: !ruby/object:Gem::Requirement
|
@@ -165,20 +152,6 @@ dependencies:
|
|
165
152
|
- - ">="
|
166
153
|
- !ruby/object:Gem::Version
|
167
154
|
version: '0'
|
168
|
-
- !ruby/object:Gem::Dependency
|
169
|
-
name: zipkin-tracer
|
170
|
-
requirement: !ruby/object:Gem::Requirement
|
171
|
-
requirements:
|
172
|
-
- - "~>"
|
173
|
-
- !ruby/object:Gem::Version
|
174
|
-
version: '0.27'
|
175
|
-
type: :runtime
|
176
|
-
prerelease: false
|
177
|
-
version_requirements: !ruby/object:Gem::Requirement
|
178
|
-
requirements:
|
179
|
-
- - "~>"
|
180
|
-
- !ruby/object:Gem::Version
|
181
|
-
version: '0.27'
|
182
155
|
- !ruby/object:Gem::Dependency
|
183
156
|
name: dotenv
|
184
157
|
requirement: !ruby/object:Gem::Requirement
|
@@ -237,10 +210,12 @@ dependencies:
|
|
237
210
|
version: '0'
|
238
211
|
description: Basic tools for Heroku Vault's Ruby projects
|
239
212
|
email:
|
240
|
-
- christopher.continanza@gmail.com
|
241
213
|
- csquared@heroku.com
|
214
|
+
- christopher.continanza@gmail.com
|
242
215
|
- jkakar@heroku.com
|
243
216
|
- jkakar@kakar.ca
|
217
|
+
- kennyp@heroku.com
|
218
|
+
- k.parnell@gmail.com
|
244
219
|
executables: []
|
245
220
|
extensions: []
|
246
221
|
extra_rdoc_files: []
|
@@ -272,9 +247,6 @@ files:
|
|
272
247
|
- lib/vault-tools/tasks.rb
|
273
248
|
- lib/vault-tools/text_processor.rb
|
274
249
|
- lib/vault-tools/time.rb
|
275
|
-
- lib/vault-tools/tracing.rb
|
276
|
-
- lib/vault-tools/tracing/sidekiq_client.rb
|
277
|
-
- lib/vault-tools/tracing/sidekiq_server.rb
|
278
250
|
- lib/vault-tools/usage_db_tasks.rb
|
279
251
|
- lib/vault-tools/user.rb
|
280
252
|
- lib/vault-tools/vault_db_tasks.rb
|
@@ -292,7 +264,6 @@ files:
|
|
292
264
|
- test/statement_store_test.rb
|
293
265
|
- test/text_processor_test.rb
|
294
266
|
- test/time_test.rb
|
295
|
-
- test/tracing_test.rb
|
296
267
|
- test/user_test.rb
|
297
268
|
- test/web_test.rb
|
298
269
|
- vault-tools.gemspec
|
@@ -307,7 +278,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
307
278
|
requirements:
|
308
279
|
- - ">="
|
309
280
|
- !ruby/object:Gem::Version
|
310
|
-
version:
|
281
|
+
version: 2.5.3
|
311
282
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
312
283
|
requirements:
|
313
284
|
- - ">="
|
@@ -315,7 +286,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
315
286
|
version: '0'
|
316
287
|
requirements: []
|
317
288
|
rubyforge_project:
|
318
|
-
rubygems_version: 2.
|
289
|
+
rubygems_version: 2.7.6.2
|
319
290
|
signing_key:
|
320
291
|
specification_version: 4
|
321
292
|
summary: Test classes, base web classes, and helpers - oh my!
|
data/lib/vault-tools/tracing.rb
DELETED
@@ -1,92 +0,0 @@
|
|
1
|
-
require 'zipkin-tracer'
|
2
|
-
|
3
|
-
module Vault
|
4
|
-
module Tracing
|
5
|
-
ZIPKIN_API_HOST_STAGING = 'https://zipkin-staging.heroku.tools'.freeze
|
6
|
-
|
7
|
-
# Injects the zipkin middleware into the Web class, add Zipkin middleware to
|
8
|
-
# Excon.
|
9
|
-
#
|
10
|
-
# @example
|
11
|
-
# Vault::Tracing.configure
|
12
|
-
#
|
13
|
-
# @return nil
|
14
|
-
def self.configure
|
15
|
-
return unless Vault::Tracing.enabled?
|
16
|
-
|
17
|
-
Vault::Web.instance_eval { require 'zipkin-tracer' }
|
18
|
-
Vault::Web.use ZipkinTracer::RackHandler, config
|
19
|
-
setup_excon
|
20
|
-
end
|
21
|
-
|
22
|
-
# Traces a local component. Useful to track down long running implementation
|
23
|
-
# methods within an app, instead of only tracing external calls.
|
24
|
-
#
|
25
|
-
# @param name [String] the name of the span to record in Zipkin.
|
26
|
-
# @param tracer [Constant] the const that should respond to :local_component_span
|
27
|
-
# @param options [Hash] the options to create a message with.
|
28
|
-
#
|
29
|
-
# @example
|
30
|
-
# Vault::Tracing.trace_local 'cashier_middleware_x', internal: true do
|
31
|
-
# # some expensive task
|
32
|
-
# end
|
33
|
-
#
|
34
|
-
# @yield [the_block_passed_in]
|
35
|
-
def self.trace_local(name, tracer = ZipkinTracer::TraceClient, **options)
|
36
|
-
return yield unless Vault::Tracing.enabled?
|
37
|
-
|
38
|
-
tracer.local_component_span(name) do |span|
|
39
|
-
span.name = name
|
40
|
-
span.record_tag('options', options.to_s) unless options.empty?
|
41
|
-
yield
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
# Configuration options for the Zipkin RackHandler.
|
46
|
-
#
|
47
|
-
# @return [Hash] config options for Zipkin tracer
|
48
|
-
def self.config
|
49
|
-
{
|
50
|
-
service_name: "#{Config.app_name}.herokuapp.com",
|
51
|
-
service_port: 443,
|
52
|
-
json_api_host: Config[:zipkin_api_host],
|
53
|
-
sample_rate: (Config[:zipkin_sample_rate] || 0.1).to_f,
|
54
|
-
sampled_as_boolean: false
|
55
|
-
}
|
56
|
-
end
|
57
|
-
|
58
|
-
# A helper to guard against injecting Zipkin when not desired.
|
59
|
-
#
|
60
|
-
# @return [true] if so
|
61
|
-
def self.enabled?
|
62
|
-
Config.app_name &&
|
63
|
-
Config[:zipkin_enabled] == 'true' &&
|
64
|
-
Config[:zipkin_api_host]
|
65
|
-
end
|
66
|
-
|
67
|
-
# Adds ZipkinTracer::ExconHandler to Excon's default middlewares if Excon is
|
68
|
-
# defined
|
69
|
-
#
|
70
|
-
# @private
|
71
|
-
#
|
72
|
-
# @return nil
|
73
|
-
def self.setup_excon
|
74
|
-
if add_to_excon_middlewares?
|
75
|
-
Excon.defaults[:middlewares].push(ZipkinTracer::ExconHandler)
|
76
|
-
end
|
77
|
-
end
|
78
|
-
private_class_method :setup_excon
|
79
|
-
|
80
|
-
# Checks to see if Excon is defined and if the Zipkin middleware has already
|
81
|
-
# been inserted.
|
82
|
-
#
|
83
|
-
# @private
|
84
|
-
#
|
85
|
-
# @return [true] if Excon is defined and the middleware is not already
|
86
|
-
# inserted
|
87
|
-
def self.add_to_excon_middlewares?
|
88
|
-
defined?(Excon) && !Excon.defaults[:middlewares].include?(ZipkinTracer::ExconHandler)
|
89
|
-
end
|
90
|
-
private_class_method :add_to_excon_middlewares?
|
91
|
-
end
|
92
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
module Vault
|
2
|
-
module Tracing
|
3
|
-
# Tracing info for sidekiq, adding them as params
|
4
|
-
# This was lifted straight out of heroku/coal_car
|
5
|
-
class SidekiqClient
|
6
|
-
def trace_information(trace_id)
|
7
|
-
{
|
8
|
-
"trace_id" => trace_id.trace_id,
|
9
|
-
"parent_id" => trace_id.parent_id,
|
10
|
-
"span_id" => trace_id.span_id,
|
11
|
-
"sampled" => trace_id.sampled,
|
12
|
-
"flags" => trace_id.flags
|
13
|
-
}
|
14
|
-
end
|
15
|
-
|
16
|
-
def call(worker_class, job, _queue, _redis_pool)
|
17
|
-
trace_id = ::ZipkinTracer::TraceGenerator.new.next_trace_id
|
18
|
-
::ZipkinTracer::TraceContainer.with_trace_id(trace_id) do
|
19
|
-
job["zipkin_trace_information"] = trace_information(trace_id)
|
20
|
-
if trace_id.sampled?
|
21
|
-
::Trace.tracer.with_new_span(trace_id, "sidekiq") do |span|
|
22
|
-
local_endpoint = Trace.default_endpoint
|
23
|
-
klass = job["wrapped".freeze] || worker_class
|
24
|
-
span.record_tag("job_class",
|
25
|
-
klass,
|
26
|
-
::Trace::BinaryAnnotation::Type::STRING,
|
27
|
-
local_endpoint)
|
28
|
-
yield
|
29
|
-
end
|
30
|
-
else
|
31
|
-
yield
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
@@ -1,54 +0,0 @@
|
|
1
|
-
module Vault
|
2
|
-
module Tracing
|
3
|
-
# Tracing info for sidekiq
|
4
|
-
# This was lifted straight out of heroku/coal_car
|
5
|
-
class SidekiqServer
|
6
|
-
def initialize(config = nil)
|
7
|
-
@config = ZipkinTracer::Config.new(nil, config).freeze
|
8
|
-
@tracer = ZipkinTracer::TracerFactory.new.tracer(@config)
|
9
|
-
end
|
10
|
-
|
11
|
-
def call(worker, job, _queue)
|
12
|
-
result = nil
|
13
|
-
id = trace_id(job)
|
14
|
-
klass = job["wrapped".freeze] || worker.class.to_s
|
15
|
-
::ZipkinTracer::TraceContainer.with_trace_id(id) do
|
16
|
-
if id.sampled?
|
17
|
-
@tracer.with_new_span(id, klass) do |span|
|
18
|
-
span.record("sidekiq.start")
|
19
|
-
result = yield
|
20
|
-
span.record("sidekiq.end")
|
21
|
-
end
|
22
|
-
else
|
23
|
-
yield
|
24
|
-
end
|
25
|
-
end
|
26
|
-
::Trace.tracer.flush! if ::Trace.tracer.respond_to?(:flush!)
|
27
|
-
result
|
28
|
-
end
|
29
|
-
|
30
|
-
private
|
31
|
-
|
32
|
-
def trace_id(job)
|
33
|
-
info = job["zipkin_trace_information"]
|
34
|
-
if info
|
35
|
-
trace_id = info["trace_id"]
|
36
|
-
span_id = info["span_id"]
|
37
|
-
parent_span_id = info["parent_id"]
|
38
|
-
sampled = info["sampled"]
|
39
|
-
flags = info["flags"].to_i
|
40
|
-
else
|
41
|
-
trace_id = span_id = ::Trace.generate_id
|
42
|
-
parent_span_id = nil
|
43
|
-
sampled = sample?
|
44
|
-
flags = ::Trace::Flags::EMPTY
|
45
|
-
end
|
46
|
-
::Trace::TraceId.new(trace_id, parent_span_id, span_id, sampled, flags)
|
47
|
-
end
|
48
|
-
|
49
|
-
def sample?
|
50
|
-
rand < @config.sample_rate
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
data/test/tracing_test.rb
DELETED
@@ -1,86 +0,0 @@
|
|
1
|
-
require 'helper'
|
2
|
-
|
3
|
-
class TracingTest < Vault::TestCase
|
4
|
-
# Anonymous Web Frontend
|
5
|
-
def app
|
6
|
-
@app ||= Class.new(Vault::Web)
|
7
|
-
end
|
8
|
-
|
9
|
-
# Middleware is attached at load time, so we have to delete the Vault::Web
|
10
|
-
# class and reload it to simulate being loaded with different environment
|
11
|
-
# variables.
|
12
|
-
def reload_web!
|
13
|
-
# remove the constant to force a clean reload
|
14
|
-
Vault.send(:remove_const, 'Web')
|
15
|
-
load 'lib/vault-tools/web.rb'
|
16
|
-
end
|
17
|
-
|
18
|
-
# Always reload the web class to eliminate test leakage
|
19
|
-
def setup
|
20
|
-
super
|
21
|
-
reload_web!
|
22
|
-
enable
|
23
|
-
end
|
24
|
-
|
25
|
-
def teardown
|
26
|
-
super
|
27
|
-
@app = nil
|
28
|
-
end
|
29
|
-
|
30
|
-
def enable
|
31
|
-
set_env('APP_NAME', 'test_app')
|
32
|
-
set_env('ZIPKIN_ENABLED', 'true')
|
33
|
-
set_env('ZIPKIN_API_HOST', 'http://localhost')
|
34
|
-
end
|
35
|
-
|
36
|
-
def disable
|
37
|
-
set_env('ZIPKIN_ENABLED', nil)
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_service_name_gets_herokuapp
|
41
|
-
assert_equal 'test_app.herokuapp.com', Vault::Tracing.config[:service_name]
|
42
|
-
end
|
43
|
-
|
44
|
-
def test_configure_enabled
|
45
|
-
Vault::Tracing.configure
|
46
|
-
middleware_constants = app.middleware.map(&:first)
|
47
|
-
assert middleware_constants.include?(ZipkinTracer::RackHandler),
|
48
|
-
"expected ZipkinTracer::RackHandler to be in the middleware stack, got #{middleware_constants}"
|
49
|
-
end
|
50
|
-
|
51
|
-
def test_configure_not_enabled
|
52
|
-
disable
|
53
|
-
refute Vault::Tracing.configure,
|
54
|
-
'Vault::Tracing.configure should return nil when not enabled'
|
55
|
-
end
|
56
|
-
|
57
|
-
def test_excon
|
58
|
-
Vault::Tracing.configure
|
59
|
-
assert Excon.defaults[:middlewares].include?(ZipkinTracer::ExconHandler),
|
60
|
-
"Vault::Tracing.setup_excon should add ZipkinTracer::ExconHandler to excon's middleware"
|
61
|
-
end
|
62
|
-
|
63
|
-
def test_enabled_true
|
64
|
-
assert Vault::Tracing.enabled?,
|
65
|
-
'Vault::Tracing.enabled? should return true when enabled'
|
66
|
-
end
|
67
|
-
|
68
|
-
def test_enabled_false
|
69
|
-
disable
|
70
|
-
refute Vault::Tracing.enabled?,
|
71
|
-
'Vault::Tracing.enabled? should return false when not enabled'
|
72
|
-
end
|
73
|
-
|
74
|
-
def test_trace_local_yield
|
75
|
-
result = Vault::Tracing.trace_local('testing', opt: 'foo') { 1 + 1 }
|
76
|
-
assert_equal 2, result, 'trace_local should yield the result of the block given'
|
77
|
-
end
|
78
|
-
|
79
|
-
def test_trace_local_calls_tracer
|
80
|
-
tracer_mock = Minitest::Mock.new
|
81
|
-
tracer_mock.expect :local_component_span, true, ['testing']
|
82
|
-
Vault::Tracing.trace_local('testing', tracer_mock, opt: 'foo') { 1 + 1 }
|
83
|
-
assert tracer_mock.verify,
|
84
|
-
'trace_local should call :local_component_span on the tracer'
|
85
|
-
end
|
86
|
-
end
|