@@ -3,11 +3,16 @@ import { render } from '@testing-library/react-native';
33import * as React from 'react' ;
44import { Text } from 'react-native' ;
55
6- import { wrapExpoRouterErrorBoundary } from '../../src/js/tracing/expoRouterErrorBoundary' ;
6+ import {
7+ EXPO_ROUTER_ERROR_BOUNDARY_INTEGRATION_NAME ,
8+ wrapExpoRouterErrorBoundary ,
9+ } from '../../src/js/tracing/expoRouterErrorBoundary' ;
710
811const mockCaptureException = jest . fn ( ) ;
912const mockAddBreadcrumb = jest . fn ( ) ;
1013const mockAddExceptionMechanism = jest . fn ( ) ;
14+ const mockAddIntegration = jest . fn ( ) ;
15+ const mockGetIntegrationByName = jest . fn ( ) . mockReturnValue ( undefined ) ;
1116let mockSendDefaultPii = false ;
1217let mockActiveSpan : { setStatus : jest . Mock ; __origin ?: string } | undefined ;
1318
@@ -18,7 +23,11 @@ jest.mock('@sentry/core', () => {
1823 captureException : ( ...args : unknown [ ] ) => mockCaptureException ( ...args ) ,
1924 addBreadcrumb : ( ...args : unknown [ ] ) => mockAddBreadcrumb ( ...args ) ,
2025 addExceptionMechanism : ( ...args : unknown [ ] ) => mockAddExceptionMechanism ( ...args ) ,
21- getClient : ( ) => ( { getOptions : ( ) => ( { sendDefaultPii : mockSendDefaultPii } ) } ) ,
26+ getClient : ( ) => ( {
27+ getOptions : ( ) => ( { sendDefaultPii : mockSendDefaultPii } ) ,
28+ getIntegrationByName : mockGetIntegrationByName ,
29+ addIntegration : mockAddIntegration ,
30+ } ) ,
2231 getActiveSpan : ( ) => mockActiveSpan ,
2332 getRootSpan : ( span : unknown ) => span ,
2433 spanToJSON : ( span : { __origin ?: string } | undefined ) => ( { origin : span ?. __origin } ) ,
@@ -80,6 +89,12 @@ describe('wrapExpoRouterErrorBoundary', () => {
8089 expect ( getByTestId ( 'fallback' ) . props . children ) . toBe ( 'boom' ) ;
8190 } ) ;
8291
92+ it ( 'registers the ExpoRouterErrorBoundary marker on mount' , ( ) => {
93+ const Wrapped = wrapExpoRouterErrorBoundary ( OriginalErrorBoundary ) ;
94+ render ( < Wrapped error = { new Error ( 'boom' ) } retry = { jest . fn ( ) } /> ) ;
95+ expect ( mockAddIntegration ) . toHaveBeenCalledWith ( { name : EXPO_ROUTER_ERROR_BOUNDARY_INTEGRATION_NAME } ) ;
96+ } ) ;
97+
8398 it ( 'captures the error to Sentry once per error instance' , ( ) => {
8499 const Wrapped = wrapExpoRouterErrorBoundary ( OriginalErrorBoundary ) ;
85100 const err = new Error ( 'boom' ) ;
0 commit comments