Class: Maze::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/maze/configuration.rb

Overview

MazeRunner configuration

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Set default values



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/maze/configuration.rb', line 8

def initialize
  self.receive_no_requests_wait = 30
  self.receive_requests_wait = 30
  self.receive_requests_slow_threshold = 10
  self.enforce_bugsnag_integrity = true
  self.captured_invalid_requests = Set[:errors, :sessions, :builds, :uploads, :sourcemaps]
  self.android_app_files_directory = nil
  self.span_timestamp_validation = true
  self.unmanaged_traces_mode = false
  self.client_mode_validation = true
  @legacy_driver = false
end

Instance Attribute Details

#access_keyObject

Farm access key



162
163
164
# File 'lib/maze/configuration.rb', line 162

def access_key
  @access_key
end

#always_logObject

Always log all received requests to the console at the end of a scenario



233
234
235
# File 'lib/maze/configuration.rb', line 233

def always_log
  @always_log
end

#android_app_files_directoryObject

Folder to push app files to on Android



143
144
145
# File 'lib/maze/configuration.rb', line 143

def android_app_files_directory
  @android_app_files_directory
end

#appObject

The app that tests will be run against. Could be one of:

  • a local file path

  • a BrowserStack url for a previously uploaded app (bs://…)

  • on macOS, the name of an installed or previously executed application



131
132
133
# File 'lib/maze/configuration.rb', line 131

def app
  @app
end

#app_activityObject

The appActivity to be set in the Appium capabilities



177
178
179
# File 'lib/maze/configuration.rb', line 177

def app_activity
  @app_activity
end

#app_bundle_idObject

Bundle ID of the test application



156
157
158
# File 'lib/maze/configuration.rb', line 156

def app_bundle_id
  @app_bundle_id
end

#app_packageObject

The appPackage to be set in the Appium capabilities



180
181
182
# File 'lib/maze/configuration.rb', line 180

def app_package
  @app_package
end

#appium_logfileObject

The location of the appium server logfile



220
221
222
# File 'lib/maze/configuration.rb', line 220

def appium_logfile
  @appium_logfile
end

#appium_server_urlObject

URL of the Appium server



186
187
188
# File 'lib/maze/configuration.rb', line 186

def appium_server_url
  @appium_server_url
end

#appium_versionObject

Appium version to use



183
184
185
# File 'lib/maze/configuration.rb', line 183

def appium_version
  @appium_version
end

#apple_team_idObject

Apple Team Id



205
206
207
# File 'lib/maze/configuration.rb', line 205

def apple_team_id
  @apple_team_id
end

#aspecto_repeater_api_keyObject

API key to use when repeating requests to Bugsnag



73
74
75
# File 'lib/maze/configuration.rb', line 73

def aspecto_repeater_api_key
  @aspecto_repeater_api_key
end

#aws_public_ipObject

Enables awareness of a public IP address on Buildkite with the Elastic CI Stack for AWS.



79
80
81
# File 'lib/maze/configuration.rb', line 79

def aws_public_ip
  @aws_public_ip
end

#bind_addressObject

Mock server bind address



26
27
28
# File 'lib/maze/configuration.rb', line 26

def bind_address
  @bind_address
end

#browserObject

Test browser type



171
172
173
# File 'lib/maze/configuration.rb', line 171

def browser
  @browser
end

#browser_versionObject

Test browser version



174
175
176
# File 'lib/maze/configuration.rb', line 174

def browser_version
  @browser_version
end

#bs_localObject

Location of the BrowserStackLocal binary (if used)



153
154
155
# File 'lib/maze/configuration.rb', line 153

def bs_local
  @bs_local
end

#bugsnag_repeater_api_keyObject

API key to use when repeating requests to Bugsnag



76
77
78
# File 'lib/maze/configuration.rb', line 76

def bugsnag_repeater_api_key
  @bugsnag_repeater_api_key
end

#capabilitiesObject

Appium capabilities



122
123
124
# File 'lib/maze/configuration.rb', line 122

def capabilities
  @capabilities
end

#capabilities_optionObject

Appium capabilities provided via the CL



125
126
127
# File 'lib/maze/configuration.rb', line 125

def capabilities_option
  @capabilities_option
end

#captured_invalid_requestsObject

The server endpoints for which invalid requests should be captured and cause tests to fail



70
71
72
# File 'lib/maze/configuration.rb', line 70

def captured_invalid_requests
  @captured_invalid_requests
end

#client_mode_validationObject

Sets whether validation should be run in client mode



112
113
114
# File 'lib/maze/configuration.rb', line 112

def client_mode_validation
  @client_mode_validation
end

#custom_validatorsObject (readonly)

Custom validators to use for a given endpoint



88
89
90
# File 'lib/maze/configuration.rb', line 88

def custom_validators
  @custom_validators
end

#deviceObject

Test device type



165
166
167
# File 'lib/maze/configuration.rb', line 165

def device
  @device
end

#device_idObject

Device id for running on local iOS devices



214
215
216
# File 'lib/maze/configuration.rb', line 214

def device_id
  @device_id
end

#device_listObject

A list of devices to attempt to connect to, in order



168
169
170
# File 'lib/maze/configuration.rb', line 168

def device_list
  @device_list
end

#document_server_bind_addressObject

Document server bind address



42
43
44
# File 'lib/maze/configuration.rb', line 42

def document_server_bind_address
  @document_server_bind_address
end

#document_server_portObject

Document server port



45
46
47
# File 'lib/maze/configuration.rb', line 45

def document_server_port
  @document_server_port
end

#document_server_rootObject

Document server root



39
40
41
# File 'lib/maze/configuration.rb', line 39

def document_server_root
  @document_server_root
end

#enable_bugsnagObject

Enables bugsnag reporting



67
68
69
# File 'lib/maze/configuration.rb', line 67

def enable_bugsnag
  @enable_bugsnag
end

#enable_retriesObject

Whether retries should be allowed



64
65
66
# File 'lib/maze/configuration.rb', line 64

def enable_retries
  @enable_retries
end

#enforce_bugsnag_integrityObject

Whether presence of the Bugsnag-Integrity header should be enforced



61
62
63
# File 'lib/maze/configuration.rb', line 61

def enforce_bugsnag_integrity
  @enforce_bugsnag_integrity
end

#farmObject

Device farm to be used, one of: :bs (BrowserStack) :local (Using Appium Server with a local device) :none (Cucumber-driven testing with no devices)



137
138
139
# File 'lib/maze/configuration.rb', line 137

def farm
  @farm
end

#file_logObject

Write received requests to disk for all scenarios



227
228
229
# File 'lib/maze/configuration.rb', line 227

def file_log
  @file_log
end

#locatorObject

Element locator strategy, :id or :accessibility_id



119
120
121
# File 'lib/maze/configuration.rb', line 119

def locator
  @locator
end

#log_requestsObject

Console logging of received requests for a test failure



230
231
232
# File 'lib/maze/configuration.rb', line 230

def log_requests
  @log_requests
end

#null_portObject

Terminating server bind port



32
33
34
# File 'lib/maze/configuration.rb', line 32

def null_port
  @null_port
end

#osObject

OS



208
209
210
# File 'lib/maze/configuration.rb', line 208

def os
  @os
end

#os_versionObject

OS version



211
212
213
# File 'lib/maze/configuration.rb', line 211

def os_version
  @os_version
end

#portObject

Mock server port



29
30
31
# File 'lib/maze/configuration.rb', line 29

def port
  @port
end

#receive_no_requests_waitObject

Time in seconds to wait in the ‘I should receive no requests` step



52
53
54
# File 'lib/maze/configuration.rb', line 52

def receive_no_requests_wait
  @receive_no_requests_wait
end

#receive_requests_slow_thresholdObject

Time after which requests are deemed to be slow to be received and a warning is logged for



58
59
60
# File 'lib/maze/configuration.rb', line 58

def receive_requests_slow_threshold
  @receive_requests_slow_threshold
end

#receive_requests_waitObject

Maximum time in seconds to wait in the ‘I wait to receive int error(s)/session(s)/build(s)` steps



55
56
57
# File 'lib/maze/configuration.rb', line 55

def receive_requests_wait
  @receive_requests_wait
end

#sb_localObject

Location of the SmartBear binary (if used)



150
151
152
# File 'lib/maze/configuration.rb', line 150

def sb_local
  @sb_local
end

#selenium_server_urlObject

URL of the Selenium server



189
190
191
# File 'lib/maze/configuration.rb', line 189

def selenium_server_url
  @selenium_server_url
end

#skipped_validatorsObject (readonly)

Whether default validation should be skipped for a given endpoint



101
102
103
# File 'lib/maze/configuration.rb', line 101

def skipped_validators
  @skipped_validators
end

#span_timestamp_validationObject

Whether timestamp validation should be performed on spans



82
83
84
# File 'lib/maze/configuration.rb', line 82

def span_timestamp_validation
  @span_timestamp_validation
end

#start_appiumObject

Whether an appium server should be started



217
218
219
# File 'lib/maze/configuration.rb', line 217

def start_appium
  @start_appium
end

#start_tunnelObject

Whether the device farm secure tunnel should be started



140
141
142
# File 'lib/maze/configuration.rb', line 140

def start_tunnel
  @start_tunnel
end

#unmanaged_traces_modeObject

Enables unmanaged trace mode.



85
86
87
# File 'lib/maze/configuration.rb', line 85

def unmanaged_traces_mode
  @unmanaged_traces_mode
end

#usernameObject

Farm username



159
160
161
# File 'lib/maze/configuration.rb', line 159

def username
  @username
end

Instance Method Details

#add_validator(endpoint, &validator) ⇒ Object

Consumes a block that will be triggered when a request is received for a specific endpoint This will prevent any existing default validation from triggering.

Parameters:

  • endpoint (String)

    The endpoint to validate

  • validator (Proc)

    The block to run when a request is received



95
96
97
98
# File 'lib/maze/configuration.rb', line 95

def add_validator(endpoint, &validator)
  @custom_validators ||= {}
  @custom_validators[endpoint] = validator
end

#legacy_driver=(value) ⇒ Object



196
197
198
# File 'lib/maze/configuration.rb', line 196

def legacy_driver=(value)
  @legacy_driver = value
end

#legacy_driver?Boolean

Whether the legacy (JSON-WP) Appium driver should be used

Returns:

  • (Boolean)


192
193
194
# File 'lib/maze/configuration.rb', line 192

def legacy_driver?
  @legacy_driver
end

#skip_default_validation(endpoint) ⇒ Object

Sets whether to skip default validation for a given endpoint

Parameters:

  • endpoint (String)

    The endpoint to skip default validation for



106
107
108
109
# File 'lib/maze/configuration.rb', line 106

def skip_default_validation(endpoint)
  @skipped_validators ||= {}
  @skipped_validators[endpoint] = true
end