Skip to content

Commit 5f2fb3b

Browse files
author
Steve Kirkland
committed
Merge branch 'main' into integration/v10
2 parents e9685d9 + 819b37e commit 5f2fb3b

File tree

16 files changed

+74
-94
lines changed

16 files changed

+74
-94
lines changed

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,16 @@
66
- Remove deprecated Cucumber steps for sending keys to elements [751](https://github.com/bugsnag/maze-runner/pull/751)
77
- Remove document server on port 9340 [752](https://github.com/bugsnag/maze-runner/pull/752)
88

9+
# 9.31.0 - 2025/05/15
10+
11+
## Enhancements
12+
13+
- Add step `I discard all {request_type}`' [756](https://github.com/bugsnag/maze-runner/pull/756)
14+
15+
## Fixes
16+
17+
- Notify errors that fail the Appium driver [757](https://github.com/bugsnag/maze-runner/pull/757)
18+
919
# 9.30.3 - 2025/05/14
1020

1121
## Fixes

bin/maze-runner

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@ require_relative '../lib/maze/hooks/logger_hooks'
9393
require_relative '../lib/maze/driver/appium'
9494
require_relative '../lib/maze/driver/browser'
9595

96-
require_relative '../lib/maze/plugins/bugsnag_reporting_plugin'
9796
require_relative '../lib/maze/plugins/error_code_plugin'
9897
require_relative '../lib/maze/plugins/global_retry_plugin'
9998
require_relative '../lib/maze/plugins/datadog_metrics_plugin'

lib/features/steps/request_assertion_steps.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,15 @@ def assert_received_requests(request_count, list, list_name, precise = true, max
131131
Maze::Server.list_for(request_type).next
132132
end
133133

134+
# Moves to the end of the request list
135+
#
136+
# @step_input request_type [String] The type of request (error, session, build, etc)
137+
Then('I discard all {request_type}') do |request_type|
138+
raise "No #{request_type} to discard" if Maze::Server.list_for(request_type).current.nil?
139+
140+
Maze::Server.list_for(request_type).end
141+
end
142+
134143
Then('the received errors match:') do |table|
135144
# Checks that each request matches one of the event fields
136145
requests = Maze::Server.errors.remaining

lib/features/support/internal_hooks.rb

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,6 @@
8484

8585
# Add step logging
8686
config.filters << Maze::Plugins::LoggingScenariosPlugin.new(config)
87-
88-
# Add bugsnag failed scenario reporting only if ENV['MAZE_SCENARIO_BUGSNAG_API_KEY'] is present
89-
config.filters << Maze::Plugins::BugsnagReportingPlugin.new(config) unless ENV['MAZE_SCENARIO_BUGSNAG_API_KEY'].nil?
9087
end
9188

9289
# Before each scenario

lib/maze.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
# providing an alternative to the proliferation of global variables or singletons.
99
module Maze
1010

11-
VERSION = '9.30.3'
11+
VERSION = '9.31.0'
1212

1313
class << self
1414
attr_accessor :check, :driver, :internal_hooks, :mode, :start_time, :dynamic_retry, :public_address,

lib/maze/api/appium/app_manager.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def activate
2020
rescue Selenium::WebDriver::Error::ServerError, Selenium::WebDriver::Error::UnknownError => e
2121
$logger.error "Failed to activate app: #{e.message}"
2222
# Assume the remote appium session has stopped, so crash out of the session
23-
fail_driver(e.message)
23+
fail_driver(e)
2424
raise e
2525
end
2626

@@ -39,7 +39,7 @@ def terminate(fail_driver = true)
3939
rescue Selenium::WebDriver::Error::ServerError, Selenium::WebDriver::Error::UnknownError => e
4040
$logger.error "Failed to terminate app: #{e.message}"
4141
# Assume the remote appium session has stopped, so crash out of the session
42-
fail_driver(e.message) if fail_driver
42+
fail_driver(e) if fail_driver
4343
raise e
4444
end
4545

@@ -57,7 +57,7 @@ def background(seconds = -1)
5757
rescue Selenium::WebDriver::Error::ServerError, Selenium::WebDriver::Error::UnknownError => e
5858
$logger.error "Failed to background app: #{e.message}"
5959
# Assume the remote appium session has stopped, so crash out of the session
60-
fail_driver(e.message)
60+
fail_driver(e)
6161
raise e
6262
end
6363

@@ -74,7 +74,7 @@ def launch
7474
rescue Selenium::WebDriver::Error::ServerError, Selenium::WebDriver::Error::UnknownError => e
7575
$logger.error "Failed to launch app: #{e.message}"
7676
# Assume the remote appium session has stopped, so crash out of the session
77-
fail_driver(e.message)
77+
fail_driver(e)
7878
raise e
7979
end
8080

@@ -91,7 +91,7 @@ def close
9191
rescue Selenium::WebDriver::Error::ServerError, Selenium::WebDriver::Error::UnknownError => e
9292
$logger.error "Failed to close app: #{e.message}"
9393
# Assume the remote appium session has stopped, so crash out of the session
94-
fail_driver(e.message)
94+
fail_driver(e)
9595
raise e
9696
end
9797

@@ -107,7 +107,7 @@ def state
107107
rescue Selenium::WebDriver::Error::ServerError, Selenium::WebDriver::Error::UnknownError => e
108108
$logger.error "Failed to get app state: #{e.message}"
109109
# Assume the remote appium session has stopped, so crash out of the session
110-
fail_driver(e.message)
110+
fail_driver(e)
111111
raise e
112112
end
113113
end

lib/maze/api/appium/device_manager.rb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ def unlock
2121
rescue Selenium::WebDriver::Error::ServerError => e
2222
$logger.error "Failed to unlock the device: #{e.message}"
2323
# Assume the remote appium session has stopped, so crash out of the session
24-
fail_driver(e.message)
24+
fail_driver(e)
2525
raise e
2626
end
2727

@@ -38,7 +38,7 @@ def back
3838
rescue Selenium::WebDriver::Error::ServerError => e
3939
$logger.error "Failed to press back: #{e.message}"
4040
# Assume the remote appium session has stopped, so crash out of the session
41-
fail_driver(e.message)
41+
fail_driver(e)
4242
raise e
4343
end
4444

@@ -56,7 +56,7 @@ def get_log(log_type)
5656
rescue Selenium::WebDriver::Error::ServerError => e
5757
$logger.error "Failed to get logs: #{e.message}"
5858
# Assume the remote appium session has stopped, so crash out of the session
59-
fail_driver(e.message)
59+
fail_driver(e)
6060
raise e
6161
end
6262

@@ -74,7 +74,7 @@ def set_rotation(orientation)
7474
rescue Selenium::WebDriver::Error::ServerError => e
7575
$logger.error "Failed to set the device rotation: #{e.message}"
7676
# Assume the remote appium session has stopped, so crash out of the session
77-
fail_driver(e.message)
77+
fail_driver(e)
7878
raise e
7979
end
8080

@@ -90,7 +90,7 @@ def info
9090
rescue Selenium::WebDriver::Error::ServerError => e
9191
$logger.error "Failed to get the device info: #{e.message}"
9292
# Assume the remote appium session has stopped, so crash out of the session
93-
fail_driver(e.message)
93+
fail_driver(e)
9494
raise e
9595
end
9696
end

lib/maze/api/appium/file_manager.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def write_app_file(contents, filename)
3737
rescue Selenium::WebDriver::Error::ServerError => e
3838
$logger.error "Error writing file to device: #{e.message}"
3939
# Assume the remote appium session has stopped, so crash out of the session
40-
fail_driver(e.message)
40+
fail_driver(e)
4141
raise e
4242
end
4343

@@ -75,7 +75,7 @@ def read_app_file(filename, directory = nil)
7575
rescue Selenium::WebDriver::Error::ServerError => e
7676
$logger.error "Error reading file from device: #{e.message}"
7777
# Assume the remote appium session has stopped, so crash out of the session
78-
fail_driver(e.message)
78+
fail_driver(e)
7979
raise e
8080
end
8181

@@ -105,7 +105,7 @@ def read_app_folder
105105
rescue Selenium::WebDriver::Error::ServerError => e
106106
$logger.error "Error reading folder from device: #{e.message}"
107107
# Assume the remote appium session has stopped, so crash out of the session
108-
fail_driver(e.message)
108+
fail_driver(e)
109109
raise e
110110
end
111111
end

lib/maze/api/appium/manager.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@ def failed_driver?
1111
@driver.failed?
1212
end
1313

14-
def fail_driver(message)
15-
@driver.fail_driver(message)
14+
def fail_driver(exception)
15+
Bugsnag.notify(exception)
16+
@driver.fail_driver(exception.message)
1617
end
1718
end
1819
end

lib/maze/api/appium/ui_manager.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ def wait_for_element(element_id, timeout = 15, retry_if_stale = true)
2424
rescue Selenium::WebDriver::Error::ServerError => e
2525
$logger.error "Error waiting for element #{element_id}: #{e.message}"
2626
# Assume the remote appium session has stopped, so crash out of the session
27-
fail_driver(e.message)
27+
fail_driver(e)
2828
raise e
2929
end
3030

@@ -44,7 +44,7 @@ def click_element(element_id)
4444
rescue Selenium::WebDriver::Error::ServerError => e
4545
$logger.error "Error clicking element #{element_id}: #{e.message}"
4646
# Assume the remote appium session has stopped, so crash out of the session
47-
fail_driver(e.message)
47+
fail_driver(e)
4848
raise e
4949
end
5050

@@ -63,7 +63,7 @@ def click_element_if_present(element_id)
6363
rescue Selenium::WebDriver::Error::ServerError => e
6464
$logger.error "Error clicking element #{element_id}: #{e.message}"
6565
# Assume the remote appium session has stopped, so crash out of the session
66-
fail_driver(e.message)
66+
fail_driver(e)
6767
raise e
6868
end
6969
end

0 commit comments

Comments
 (0)