bugsnag-maze-runner 7.30.1 → 7.31.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/request_assertion_steps.rb +18 -3
- data/lib/maze/configuration.rb +4 -0
- data/lib/maze/servlets/servlet.rb +3 -2
- data/lib/maze/wait.rb +2 -2
- data/lib/maze.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8925ad9f15c3cf2239a9b09ebcc70301c7cabfc6fe7a415965d73b2f2c571a7e
|
4
|
+
data.tar.gz: 31705850e114a0237869262f71d37229ef28063003047c15f8ce29431220d9e2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 925e2cd06c71a3ab2de16f28a6f501d007436183552f1c44f0c9721643bcfdbe80d51976e5e3d998d1a83c501159157796166df9bba758308a5b92d05c0fec92
|
7
|
+
data.tar.gz: 6366c41d7ffe0c21809b8fa501abc45be1b37d5ddf3d859ccc6424800f972ed284acc7ae5ba105d6bbc0417fe6ddeb0790764b556271c6c2424f09010ac4f81f
|
@@ -10,9 +10,24 @@ require_relative '../../maze/wait'
|
|
10
10
|
|
11
11
|
def assert_received_requests(request_count, list, list_name, precise = true)
|
12
12
|
timeout = Maze.config.receive_requests_wait
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
# Interval set to 0.5s to make it more likely to detect erroneous extra requests,
|
14
|
+
# without impacting overall speed too much
|
15
|
+
wait = Maze::Wait.new(interval: 0.5, timeout: timeout)
|
16
|
+
|
17
|
+
last_count = 0
|
18
|
+
start_time = Time.now
|
19
|
+
received = wait.until do
|
20
|
+
|
21
|
+
count_now = list.size_remaining
|
22
|
+
elapsed = Time.now - start_time
|
23
|
+
if elapsed > Maze.config.receive_requests_slow_threshold
|
24
|
+
if count_now > last_count
|
25
|
+
$logger.warn "Received #{count_now - last_count} request(s) after #{elapsed.round(1)}s"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
last_count = count_now
|
29
|
+
count_now >= request_count
|
30
|
+
end
|
16
31
|
|
17
32
|
unless received
|
18
33
|
raise Test::Unit::AssertionFailedError.new <<-MESSAGE
|
data/lib/maze/configuration.rb
CHANGED
@@ -8,6 +8,7 @@ module Maze
|
|
8
8
|
def initialize
|
9
9
|
self.receive_no_requests_wait = 30
|
10
10
|
self.receive_requests_wait = 30
|
11
|
+
self.receive_requests_slow_threshold = 10
|
11
12
|
self.enforce_bugsnag_integrity = true
|
12
13
|
self.captured_invalid_requests = Set[:errors, :sessions, :builds, :uploads, :sourcemaps]
|
13
14
|
@legacy_driver = false
|
@@ -49,6 +50,9 @@ module Maze
|
|
49
50
|
# Maximum time in seconds to wait in the `I wait to receive {int} error(s)/session(s)/build(s)` steps
|
50
51
|
attr_accessor :receive_requests_wait
|
51
52
|
|
53
|
+
# Time after which requests are deemed to be slow to be received and a warning is logged for
|
54
|
+
attr_accessor :receive_requests_slow_threshold
|
55
|
+
|
52
56
|
# Whether presence of the Bugsnag-Integrity header should be enforced
|
53
57
|
attr_accessor :enforce_bugsnag_integrity
|
54
58
|
|
@@ -170,8 +170,9 @@ module Maze
|
|
170
170
|
# if configuration says so.
|
171
171
|
def check_digest(request)
|
172
172
|
header = request['Bugsnag-Integrity']
|
173
|
-
|
174
|
-
|
173
|
+
|
174
|
+
if header.nil? && Maze.config.enforce_bugsnag_integrity && %i[sessions errors traces].include?(@request_type)
|
175
|
+
raise "Bugsnag-Integrity header must be present for #{@request_type} according to Maze.config.enforce_bugsnag_integrity"
|
175
176
|
end
|
176
177
|
return if header.nil?
|
177
178
|
|
data/lib/maze/wait.rb
CHANGED
@@ -4,8 +4,8 @@ module Maze
|
|
4
4
|
# Allows repeated attempts at something, until it is successful or the timeout
|
5
5
|
# is exceed
|
6
6
|
class Wait
|
7
|
-
# @param interval [
|
8
|
-
# @param timeout [
|
7
|
+
# @param interval [Float] Optional. The time to sleep between attempts
|
8
|
+
# @param timeout [Integer] The amount of time to spend on attempts before giving up
|
9
9
|
def initialize(interval: 0.1, timeout:)
|
10
10
|
raise "Interval must be greater than zero, got '#{interval}'" unless interval > 0
|
11
11
|
raise "Timeout (#{timeout}) must be greater than interval (#{interval})" unless timeout > interval
|
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.31.0'
|
11
11
|
|
12
12
|
class << self
|
13
13
|
attr_accessor :check, :driver, :internal_hooks, :mode, :start_time, :dynamic_retry, :public_address,
|
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.31.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steve Kirkland
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-05-
|
11
|
+
date: 2023-05-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cucumber
|