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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 50ddc2b8a7d69a3c11f06e1f9984de46bc4fd607178f240fb76c0d47b03e7725
4
- data.tar.gz: 682fee5deb9bc66d86380ee5017a8ccd0b4f1b0f9809d6a9e36efa9e73510b83
3
+ metadata.gz: 8925ad9f15c3cf2239a9b09ebcc70301c7cabfc6fe7a415965d73b2f2c571a7e
4
+ data.tar.gz: 31705850e114a0237869262f71d37229ef28063003047c15f8ce29431220d9e2
5
5
  SHA512:
6
- metadata.gz: 9a2b800801966259fa5453d00340645e7afeee1626808ffe4b670c2d64e28614f0d5a69093a38dcb70e123e02150034ce768c4368557e11a57d17f119e3ed306
7
- data.tar.gz: fd5c15d2cede7d05040b0347d5816543eacaf3c1ca5430a33ccd26d2bb7c71e5bdedcb184b9cdc5113133e7a3ca1f23542aabb4325267f0dc4201b0d11463871
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
- wait = Maze::Wait.new(timeout: timeout)
14
-
15
- received = wait.until { list.size_remaining >= request_count }
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
@@ -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
- if header.nil? && Maze.config.enforce_bugsnag_integrity
174
- raise 'Bugsnag-Integrity header must be present according to Maze.config.enforce_bugsnag_integrity'
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 [Numeric] Optional. The time to sleep between attempts
8
- # @param timeout [Numeric] The amount of time to spend on attempts before giving up
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.30.1'
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.30.1
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-13 00:00:00.000000000 Z
11
+ date: 2023-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cucumber