bugsnag-maze-runner 8.1.4 → 8.2.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/bin/maze-runner +1 -0
- data/lib/features/support/internal_hooks.rb +11 -3
- data/lib/maze/api/cucumber/scenario.rb +25 -0
- data/lib/maze/hooks/hooks.rb +15 -2
- data/lib/maze/server.rb +5 -1
- data/lib/maze.rb +2 -2
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eac01df378fac543e5aa19a4999e4a2e403de8e7df9860b6463e27899f2f2f0d
|
4
|
+
data.tar.gz: c59e92d444b2da617bb0ec06c5fdc4355687129b7cc01cd56e5900a48c2fbe2c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a7d5e5079dc431e2c33d57f63ce3242cc0eaf12f81de1b043b843598ba15beb6d0610f21fbc2955502c6f35125781c1889b5a92963560e5dfc14d01f230bda90
|
7
|
+
data.tar.gz: 8551f7d971779b47ec6e65ba0a6402bcbf9110e4b9232b4851c2b37aab1793a89879c1e3946e86c87abea478465ec43a28306f6f1daf42ff5c043415e4b297e9
|
data/bin/maze-runner
CHANGED
@@ -9,6 +9,7 @@ require_relative '../lib/maze'
|
|
9
9
|
|
10
10
|
require_relative '../lib/maze/appium_server'
|
11
11
|
require_relative '../lib/maze/api/appium/file_manager'
|
12
|
+
require_relative '../lib/maze/api/cucumber/scenario'
|
12
13
|
require_relative '../lib/maze/bugsnag_config'
|
13
14
|
require_relative '../lib/maze/client/bb_api_client'
|
14
15
|
require_relative '../lib/maze/client/bb_client_utils'
|
@@ -94,6 +94,8 @@ end
|
|
94
94
|
|
95
95
|
# Before each scenario
|
96
96
|
Before do |scenario|
|
97
|
+
Maze.scenario = Maze::Api::Cucumber::Scenario.new(scenario)
|
98
|
+
|
97
99
|
# Default to no dynamic try
|
98
100
|
Maze.dynamic_retry = false
|
99
101
|
|
@@ -193,14 +195,20 @@ def output_received_requests(request_type)
|
|
193
195
|
end
|
194
196
|
end
|
195
197
|
|
196
|
-
# Check for invalid requests after each scenario. This is its own hook as failing a scenario
|
197
|
-
# and we need the logic in the other After hook to be performed.
|
198
|
+
# Check for invalid requests after each scenario. This is its own hook as failing a scenario (which
|
199
|
+
# Maze.scenario.complete may invoke) raises an exception and we need the logic in the other After hook to be performed.
|
200
|
+
#
|
198
201
|
# Furthermore, this hook should appear after the general hook as they are executed in reverse order by Cucumber.
|
199
202
|
After do |scenario|
|
203
|
+
# Call any pre_complete hooks registered by the client
|
204
|
+
Maze.hooks.call_pre_complete scenario
|
205
|
+
|
200
206
|
unless Maze::Server.invalid_requests.size_all == 0
|
201
207
|
msg = "#{Maze::Server.invalid_requests.size_all} invalid request(s) received during scenario"
|
202
|
-
scenario.
|
208
|
+
Maze.scenario.mark_as_failed msg
|
203
209
|
end
|
210
|
+
|
211
|
+
Maze.scenario.complete
|
204
212
|
end
|
205
213
|
|
206
214
|
# Test all requests against schemas or extra validation rules. These will only run if the schema/validation is
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Maze
|
2
|
+
module Api
|
3
|
+
module Cucumber
|
4
|
+
# An abstraction for the underlying Cucumber scenarios
|
5
|
+
class Scenario
|
6
|
+
|
7
|
+
# @param scenario The underlying Cucumber scenario
|
8
|
+
def initialize(scenario)
|
9
|
+
@scenario = scenario
|
10
|
+
@fail_override = false
|
11
|
+
@fail_override_reason = nil
|
12
|
+
end
|
13
|
+
|
14
|
+
def mark_as_failed(reason)
|
15
|
+
@fail_override = true
|
16
|
+
@fail_override_reason = reason
|
17
|
+
end
|
18
|
+
|
19
|
+
def complete
|
20
|
+
@scenario.fail(@fail_override_reason) if @fail_override
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/maze/hooks/hooks.rb
CHANGED
@@ -9,6 +9,7 @@ module Maze
|
|
9
9
|
def initialize
|
10
10
|
@before_all = []
|
11
11
|
@before = []
|
12
|
+
@pre_complete = []
|
12
13
|
@after = []
|
13
14
|
end
|
14
15
|
|
@@ -22,7 +23,13 @@ module Maze
|
|
22
23
|
@before << block
|
23
24
|
end
|
24
25
|
|
25
|
-
# Register blocks to be called from a Cucumber After hook (before
|
26
|
+
# Register blocks to be called from a Cucumber After hook (before the scenario is completed)
|
27
|
+
def pre_complete(&block)
|
28
|
+
@pre_complete << block
|
29
|
+
end
|
30
|
+
|
31
|
+
# Register blocks to be called from a Cucumber After hook (after the scenario is completed but before MazeRunner
|
32
|
+
# does everything it needs to between scenarios)
|
26
33
|
def after(&block)
|
27
34
|
@after << block
|
28
35
|
end
|
@@ -38,6 +45,12 @@ module Maze
|
|
38
45
|
@before.each { |block| block.call(scenario) }
|
39
46
|
end
|
40
47
|
|
48
|
+
# For MazeRunner use only, call the registered pre-complete blocks
|
49
|
+
# @param scenario The current Cucumber scenario
|
50
|
+
def call_pre_complete(scenario)
|
51
|
+
@pre_complete.each { |block| block.call(scenario) }
|
52
|
+
end
|
53
|
+
|
41
54
|
# For MazeRunner use only, call the registered After blocks
|
42
55
|
# @param scenario The current Cucumber scenario
|
43
56
|
def call_after(scenario)
|
@@ -50,7 +63,7 @@ module Maze
|
|
50
63
|
def before_all; end
|
51
64
|
|
52
65
|
def before(_scenario); end
|
53
|
-
|
66
|
+
def pre_complete(_scenario); end
|
54
67
|
def after(_scenario); end
|
55
68
|
|
56
69
|
def after_all; end
|
data/lib/maze/server.rb
CHANGED
@@ -215,9 +215,12 @@ module Maze
|
|
215
215
|
server.mount '/sessions', Servlets::Servlet, :sessions
|
216
216
|
server.mount '/builds', Servlets::Servlet, :builds
|
217
217
|
server.mount '/uploads', Servlets::Servlet, :uploads
|
218
|
-
server.mount '/sourcemap', Servlets::Servlet, :sourcemaps
|
219
218
|
server.mount '/traces', Servlets::TraceServlet, :traces, Maze::Schemas::TRACE_SCHEMA
|
219
|
+
server.mount '/sourcemap', Servlets::Servlet, :sourcemaps
|
220
220
|
server.mount '/react-native-source-map', Servlets::Servlet, :sourcemaps
|
221
|
+
server.mount '/dart-symbol', Servlets::Servlet, :sourcemaps
|
222
|
+
server.mount '/ndk-symbol', Servlets::Servlet, :sourcemaps
|
223
|
+
server.mount '/proguard', Servlets::Servlet, :sourcemaps
|
221
224
|
server.mount '/command', Servlets::CommandServlet
|
222
225
|
server.mount '/logs', Servlets::LogServlet
|
223
226
|
server.mount '/metrics', Servlets::Servlet, :metrics
|
@@ -256,6 +259,7 @@ module Maze
|
|
256
259
|
set_sampling_probability_generator(Maze::Generator.new [DEFAULT_SAMPLING_PROBABILITY].cycle)
|
257
260
|
|
258
261
|
# Clear request lists
|
262
|
+
commands.clear
|
259
263
|
errors.clear
|
260
264
|
sessions.clear
|
261
265
|
builds.clear
|
data/lib/maze.rb
CHANGED
@@ -7,11 +7,11 @@ 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 = '8.
|
10
|
+
VERSION = '8.2.0'
|
11
11
|
|
12
12
|
class << self
|
13
13
|
attr_accessor :check, :driver, :internal_hooks, :mode, :start_time, :dynamic_retry, :public_address,
|
14
|
-
:public_document_server_address, :run_uuid
|
14
|
+
:public_document_server_address, :run_uuid, :scenario
|
15
15
|
|
16
16
|
def config
|
17
17
|
@config ||= Maze::Configuration.new
|
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: 8.
|
4
|
+
version: 8.2.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-07-
|
11
|
+
date: 2023-07-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cucumber
|
@@ -367,6 +367,7 @@ files:
|
|
367
367
|
- lib/features/support/internal_hooks.rb
|
368
368
|
- lib/maze.rb
|
369
369
|
- lib/maze/api/appium/file_manager.rb
|
370
|
+
- lib/maze/api/cucumber/scenario.rb
|
370
371
|
- lib/maze/appium_server.rb
|
371
372
|
- lib/maze/assertions/request_set_assertions.rb
|
372
373
|
- lib/maze/aws/sam.rb
|