Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions .buildkite/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,7 @@ steps:
command:
- "--app=/app/features/fixtures/mazerunner/build/ios/ipa/mazerunner-{{matrix}}.ipa"
- "--farm=bb"
# Avoid iOS 17 for now as it will force us to Appium 2.5, where the Touch we perform will fail.
- "--device=IOS_14|IOS_15|IOS_16"
- "--device=IOS_17|IOS_18|IOS_26"
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using iOS 17 automatically moves us to the newer Appium version, 2.5, on BitBar.

- "--fail-fast"
- "--no-tunnel"
- "--aws-public-ip"
Expand Down Expand Up @@ -133,7 +132,7 @@ steps:
- "--fail-fast"
- "--no-tunnel"
- "--aws-public-ip"
- "--appium-version=1.22"
- "--appium-version=2.19"
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On the Android side we have to explicitly set the Appium version. 2.19 is the last 2.x version that was released before moving to 3.

test-collector#v1.10.2:
files: "reports/TEST-*.xml"
format: "junit"
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ Package.resolved
Gemfile.lock
Podfile.lock
maze_output/
maze-runner.log
.idea/
bugsnag-flutter-performance.iml

Expand Down
4 changes: 2 additions & 2 deletions features/persistence.feature
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Feature: Persistence
Scenario: Device Id Persists Between Launches
When I run "ManualSpanScenario"
* I wait to receive a trace
* I relaunch the app
* I stop and relaunch the app
* I run "ManualSpanScenario"
* I wait to receive 2 traces
* every trace deviceid is valid and the same
Expand All @@ -19,7 +19,7 @@ Feature: Persistence
* I wait for requests to persist
* I discard the oldest trace
* I set the HTTP status code to 200
* I relaunch the app
* I stop and relaunch the app
* I run "StartSdkDefault"
* I wait to receive at least 1 span
* the trace payload field "resourceSpans.0.scopeSpans.0.spans.0.spanId" equals the stored value "original_span_id"
Expand Down
5 changes: 5 additions & 0 deletions features/scripts/generate_fixture.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
#!/usr/bin/env bash
set -o errexit

# Use fvm if it is on the PATH
if [ `command -v fvm` ]; then
FLUTTER_BIN="fvm flutter"
fi

if [ -z "$FLUTTER_BIN" ]; then
FLUTTER_BIN="flutter"
fi
Expand Down
17 changes: 7 additions & 10 deletions features/steps/flutter_steps.rb
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,7 @@ def execute_command(action, scenario_name)
command = { action: action, scenario_name: scenario_name, extra_config: extra_config }
Maze::Server.commands.add command

touch_action = Appium::TouchAction.new
touch_action.tap({:x => 200, :y => 200})
touch_action.perform
Maze::Api::Appium::UiManager.new.touch_at(200, 200)

$extra_config = ''
# Ensure fixture has read the command
Expand All @@ -41,14 +39,16 @@ def execute_command(action, scenario_name)
raise 'Test fixture did not GET /command' unless Maze::Server.commands.remaining.empty?
end

When('I relaunch the app') do
Maze::Api::Appium::AppManager.new.launch
When('I stop and relaunch the app') do
manager = Maze::Api::Appium::AppManager.new
manager.terminate
manager.activate
end

When("I relaunch the app after a crash") do
# Wait for the app to stop running before relaunching
step 'the app is not running'
Maze::Api::Appium::AppManager.new.launch
Maze::Api::Appium::AppManager.new.activate
end

Then('the app is not running') do
Expand Down Expand Up @@ -151,10 +151,7 @@ def execute_command(action, scenario_name)

When('I invoke {string}') do |method_name|
Maze::Server.commands.add({ action: "invoke_method", args: [method_name] })
# Ensure fixture has read the command
touch_action = Appium::TouchAction.new
touch_action.tap({:x => 200, :y => 200})
touch_action.perform
Maze::Api::Appium::UiManager.new.touch_at(200, 200)

$extra_config = ''
# Ensure fixture has read the command
Expand Down
2 changes: 2 additions & 0 deletions features/support/maze.all.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
--app-activity=com.bugsnag.mazerunner.MainActivity
--app-package=com.bugsnag.mazerunner