Skip to content

test(e2e): Assert TTID/TTFD trace in the navigation e2e #6529

Description

@antonis

Context (rescoped)

This issue originally claimed the repo had no e2e navigation tests. That was incorrect. samples/react-native/e2e/tests/captureSpaceflightNewsScreenTransaction already provides an e2e navigation test that:

  • drives real navigation via Maestro and captures envelopes through a mock Sentry server;
  • exercises cold start (clearState + stopApp), navigation, and screen revisit;
  • asserts navigation / ui.load transactions carry time_to_initial_display + time_to_full_display measurements;
  • runs on iOS and Android, in both auto-init and manual-init modes.

The individual cluster defects also already have unit-level regression tests: #6432 (trace_id inheritance) → #6437, #6436 (route override) → #6458, #6433#6438. #6434 is still open and its test should land with its fix.

Actual gap (narrow)

The existing e2e asserts TTID/TTFD measurements exist, but does not assert end-to-end trace topology — i.e. that the TTID/TTFD child spans inherit the navigation transaction's trace_id and use its span_id as parent_span_id. That is the end-to-end analogue of #6432, currently only guarded at the unit layer (#6437).

Scope

Add a trace-topology assertion to captureSpaceflightNewsScreenTransaction.test.ts:

  • for a navigation transaction, locate the ui.load.initial_display and ui.load.full_display spans;
  • assert span.trace_id === transaction.contexts.trace.trace_id;
  • assert span.parent_span_id === transaction.contexts.trace.span_id.

Follow-up (out of scope here)

Expo Router e2e coverage does not exist (the sample uses React Navigation bottom tabs, while the reported cluster came from Expo Router). Worth a separate issue only if the pattern recurs — it requires new sample wiring rather than an assertion.

Metadata

Metadata

Assignees

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions