diff --git a/dev-packages/e2e-tests/maestro/captureReplay.yml b/dev-packages/e2e-tests/maestro/captureReplay.yml index 9499f427c2..6833d82f0b 100644 --- a/dev-packages/e2e-tests/maestro/captureReplay.yml +++ b/dev-packages/e2e-tests/maestro/captureReplay.yml @@ -6,15 +6,11 @@ jsEngine: graaljs env: replaysOnErrorSampleRate: 1.0 # Prime the native replay buffer before capturing the exception so a replay_id -# is attached to the event (iOS only; Android does not reliably capture replays -# in CI — see https://github.com/getsentry/sentry-react-native/pull/4277). -- runFlow: - file: utils/primeReplayBuffer.yml - when: - platform: iOS +# is attached to the event. Runs on both platforms: Android historically did not +# reliably capture replays in CI (see +# https://github.com/getsentry/sentry-react-native/pull/4277); this re-evaluates +# that with deterministic buffer priming. +- runFlow: utils/primeReplayBuffer.yml - tapOn: "Capture Exception" - runFlow: utils/assertEventIdVisible.yml -- runFlow: - file: utils/assertReplay.yml - when: - platform: iOS +- runFlow: utils/assertReplay.yml diff --git a/dev-packages/e2e-tests/maestro/utils/assertReplay.yml b/dev-packages/e2e-tests/maestro/utils/assertReplay.yml index b9885b8227..e21f10f3fe 100644 --- a/dev-packages/e2e-tests/maestro/utils/assertReplay.yml +++ b/dev-packages/e2e-tests/maestro/utils/assertReplay.yml @@ -20,4 +20,7 @@ jsEngine: graaljs - assertTrue: ${output.replayId} - assertTrue: ${output.replayDuration} - assertTrue: ${output.replaySegments} -- assertTrue: ${output.replayCodec == "ftypmp42"} +# Assert a valid MP4 container was produced (the "ftyp" box at byte offset 4) +# rather than a platform-specific major brand: iOS (AVAssetWriter) emits "mp42" +# while Android (MediaMuxer) may emit a different brand such as "isom". +- assertTrue: ${output.replayCodec.startsWith("ftyp")}