bugsnag-maze-runner 7.22.1 → 7.23.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/features/steps/trace_steps.rb +48 -0
- data/lib/maze.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 278a8086385e122760909cdb546fe9a15d76e24d5d13948c45bb097d86427f4a
|
4
|
+
data.tar.gz: 56a21399890869570fa4acffdbe962714fb423307e3b7575edc3bee14358d315
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bc3bca3a7e2471c755ec2e3ba6c7479fd62dc1cdcb46a503332ed31c148554f4c2bd664e43038af537930eedc1f322656baf718905242088fcaaa1f37e134e35
|
7
|
+
data.tar.gz: 716512518c9dd9124137bd4e1a867c8799dbfdbfc9ae87eec12d38a9da0835e8e34d128999afe24020863cc6bfbb7ae1170ae9d60bd587e7ce973921a70c3420
|
@@ -156,6 +156,30 @@ Then('a span field {string} matches the regex {string}') do |attribute, pattern|
|
|
156
156
|
Maze.check.false(selected_attributes.empty?)
|
157
157
|
end
|
158
158
|
|
159
|
+
Then('a span named {string} contains the attributes:') do |span_name, table|
|
160
|
+
spans = spans_from_request_list(Maze::Server.list_for('traces'))
|
161
|
+
named_spans = spans.find_all { |span| span['name'].eql?(span_name) }
|
162
|
+
raise Test::Unit::AssertionFailedError.new "No spans were found with the name #{span_name}" if named_spans.empty?
|
163
|
+
|
164
|
+
expected_attributes = table.hashes
|
165
|
+
|
166
|
+
match = false
|
167
|
+
named_spans.each do |span|
|
168
|
+
matches = expected_attributes.map do |expected_attribute|
|
169
|
+
span['attributes'].find_all { |attribute| attribute['key'].eql?(expected_attribute['attribute']) }
|
170
|
+
.any? { |attribute| attribute_value_matches?(attribute['value'], expected_attribute['type'], expected_attribute['value']) }
|
171
|
+
end
|
172
|
+
if matches.all? && !matches.empty?
|
173
|
+
match = true
|
174
|
+
break
|
175
|
+
end
|
176
|
+
end
|
177
|
+
|
178
|
+
unless match
|
179
|
+
raise Test::Unit::AssertionFailedError.new "No spans were found containing all of the given attributes"
|
180
|
+
end
|
181
|
+
end
|
182
|
+
|
159
183
|
def spans_from_request_list list
|
160
184
|
return list.remaining
|
161
185
|
.flat_map { |req| req[:body]['resourceSpans'] }
|
@@ -164,6 +188,30 @@ def spans_from_request_list list
|
|
164
188
|
.select { |s| !s.nil? }
|
165
189
|
end
|
166
190
|
|
191
|
+
def attribute_value_matches?(attribute_value, expected_type, expected_value)
|
192
|
+
# Check that the required value type key is present
|
193
|
+
unless attribute_value.keys.include?(expected_type)
|
194
|
+
return false
|
195
|
+
end
|
196
|
+
|
197
|
+
case expected_type
|
198
|
+
when 'bytesValue', 'stringValue'
|
199
|
+
expected_value.eql?(attribute_value[expected_type])
|
200
|
+
when 'intValue'
|
201
|
+
expected_value.to_i.eql?(attribute_value[expected_type].to_i)
|
202
|
+
when 'doubleValue'
|
203
|
+
expected_value.to_f.eql?(attribute_value[expected_type])
|
204
|
+
when 'boolValue'
|
205
|
+
expected_value.eql?('true').eql?(attribute_value[expected_type])
|
206
|
+
when 'arrayValue', 'kvlistValue'
|
207
|
+
$logger.error('Span attribute validation does not currently support the "arrayValue" or "kvlistValue" types')
|
208
|
+
false
|
209
|
+
else
|
210
|
+
$logger.error("An invalid attribute type was expected: '#{expected_type}'")
|
211
|
+
false
|
212
|
+
end
|
213
|
+
end
|
214
|
+
|
167
215
|
def assert_received_spans(span_count, list)
|
168
216
|
timeout = Maze.config.receive_requests_wait
|
169
217
|
wait = Maze::Wait.new(timeout: timeout)
|
data/lib/maze.rb
CHANGED
@@ -7,7 +7,7 @@ require_relative 'maze/timers'
|
|
7
7
|
# Glues the various parts of MazeRunner together that need to be accessed globally,
|
8
8
|
# providing an alternative to the proliferation of global variables or singletons.
|
9
9
|
module Maze
|
10
|
-
VERSION = '7.
|
10
|
+
VERSION = '7.23.0'
|
11
11
|
|
12
12
|
class << self
|
13
13
|
attr_accessor :check, :driver, :internal_hooks, :mode, :start_time, :dynamic_retry, :public_address, :run_uuid
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bugsnag-maze-runner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.
|
4
|
+
version: 7.23.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steve Kirkland
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-03-
|
11
|
+
date: 2023-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cucumber
|
@@ -425,11 +425,11 @@ files:
|
|
425
425
|
- lib/maze/wait.rb
|
426
426
|
- lib/utils/deep_merge.rb
|
427
427
|
- lib/utils/selenium_money_patch.rb
|
428
|
-
homepage:
|
428
|
+
homepage:
|
429
429
|
licenses:
|
430
430
|
- MIT
|
431
431
|
metadata: {}
|
432
|
-
post_install_message:
|
432
|
+
post_install_message:
|
433
433
|
rdoc_options: []
|
434
434
|
require_paths:
|
435
435
|
- lib
|
@@ -445,7 +445,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
445
445
|
version: '0'
|
446
446
|
requirements: []
|
447
447
|
rubygems_version: 3.1.6
|
448
|
-
signing_key:
|
448
|
+
signing_key:
|
449
449
|
specification_version: 4
|
450
450
|
summary: Bugsnag API request validation harness
|
451
451
|
test_files: []
|