@@ -18,6 +18,8 @@ import type { ReactNativeOptions } from '../src/js/options';
1818import { base64StringFromByteArray , utf8ToBytes } from '../src/js/vendor' ;
1919import { NATIVE } from '../src/js/wrapper' ;
2020
21+ const VALID_DSN = 'https://key@sentry.io/123' ;
22+
2123jest . mock ( 'react-native' , ( ) => {
2224 let initPayload : ReactNativeOptions | null = null ;
2325
@@ -109,7 +111,7 @@ describe('Tests Native Wrapper', () => {
109111 describe ( 'startWithOptions' , ( ) => {
110112 test ( 'calls native module' , async ( ) => {
111113 await NATIVE . initNativeSdk ( {
112- dsn : 'test' ,
114+ dsn : VALID_DSN ,
113115 enableNative : true ,
114116 devServerUrl : undefined ,
115117 defaultSidecarUrl : undefined ,
@@ -135,11 +137,30 @@ describe('Tests Native Wrapper', () => {
135137 ) ;
136138 } ) ;
137139
140+ test ( 'trims whitespace from dsn and warns' , async ( ) => {
141+ debug . warn = jest . fn ( ) ;
142+
143+ await NATIVE . initNativeSdk ( {
144+ dsn : ` ${ VALID_DSN } ` ,
145+ enableNative : true ,
146+ devServerUrl : undefined ,
147+ defaultSidecarUrl : undefined ,
148+ mobileReplayOptions : undefined ,
149+ } ) ;
150+
151+ expect ( debug . warn ) . toHaveBeenCalledWith (
152+ 'The DSN contains whitespace which can cause native crashes. Whitespace has been trimmed.' ,
153+ ) ;
154+ expect ( RNSentry . initNativeSdk ) . toHaveBeenCalled ( ) ;
155+ const initParameter = ( RNSentry . initNativeSdk as jest . MockedFunction < any > ) . mock . calls [ 0 ] [ 0 ] ;
156+ expect ( initParameter . dsn ) . toBe ( VALID_DSN ) ;
157+ } ) ;
158+
138159 test ( 'does not call native module with enableNative: false' , async ( ) => {
139160 debug . warn = jest . fn ( ) ;
140161
141162 await NATIVE . initNativeSdk ( {
142- dsn : 'test' ,
163+ dsn : VALID_DSN ,
143164 enableNative : false ,
144165 enableNativeNagger : true ,
145166 devServerUrl : undefined ,
@@ -154,7 +175,7 @@ describe('Tests Native Wrapper', () => {
154175
155176 test ( 'filter beforeSend when initializing Native SDK' , async ( ) => {
156177 await NATIVE . initNativeSdk ( {
157- dsn : 'test' ,
178+ dsn : VALID_DSN ,
158179 enableNative : true ,
159180 autoInitializeNativeSdk : true ,
160181 beforeSend : jest . fn ( ) ,
@@ -172,7 +193,7 @@ describe('Tests Native Wrapper', () => {
172193
173194 test ( 'filter beforeBreadcrumb when initializing Native SDK' , async ( ) => {
174195 await NATIVE . initNativeSdk ( {
175- dsn : 'test' ,
196+ dsn : VALID_DSN ,
176197 enableNative : true ,
177198 autoInitializeNativeSdk : true ,
178199 beforeBreadcrumb : jest . fn ( ) ,
@@ -190,7 +211,7 @@ describe('Tests Native Wrapper', () => {
190211
191212 test ( 'filter beforeSendTransaction when initializing Native SDK' , async ( ) => {
192213 await NATIVE . initNativeSdk ( {
193- dsn : 'test' ,
214+ dsn : VALID_DSN ,
194215 enableNative : true ,
195216 autoInitializeNativeSdk : true ,
196217 beforeSendTransaction : jest . fn ( ) ,
@@ -208,7 +229,7 @@ describe('Tests Native Wrapper', () => {
208229
209230 test ( 'filter beforeSendMetric when initializing Native SDK' , async ( ) => {
210231 await NATIVE . initNativeSdk ( {
211- dsn : 'test' ,
232+ dsn : VALID_DSN ,
212233 enableNative : true ,
213234 autoInitializeNativeSdk : true ,
214235 beforeSendMetric : jest . fn ( ) ,
@@ -226,7 +247,7 @@ describe('Tests Native Wrapper', () => {
226247
227248 test ( 'passes attachAllThreads to native SDK' , async ( ) => {
228249 await NATIVE . initNativeSdk ( {
229- dsn : 'test' ,
250+ dsn : VALID_DSN ,
230251 enableNative : true ,
231252 autoInitializeNativeSdk : true ,
232253 attachAllThreads : true ,
@@ -243,7 +264,7 @@ describe('Tests Native Wrapper', () => {
243264
244265 test ( 'filter integrations when initializing Native SDK' , async ( ) => {
245266 await NATIVE . initNativeSdk ( {
246- dsn : 'test' ,
267+ dsn : VALID_DSN ,
247268 enableNative : true ,
248269 autoInitializeNativeSdk : true ,
249270 integrations : [ ] ,
@@ -264,7 +285,7 @@ describe('Tests Native Wrapper', () => {
264285 debug . warn = jest . fn ( ) ;
265286
266287 await NATIVE . initNativeSdk ( {
267- dsn : 'test' ,
288+ dsn : VALID_DSN ,
268289 enableNative : true ,
269290 autoInitializeNativeSdk : false ,
270291 devServerUrl : undefined ,
@@ -311,7 +332,7 @@ describe('Tests Native Wrapper', () => {
311332 devServerUrl : undefined ,
312333 defaultSidecarUrl : undefined ,
313334 mobileReplayOptions : undefined ,
314- dsn : 'test' ,
335+ dsn : VALID_DSN ,
315336 enableNative : false ,
316337 autoInitializeNativeSdk : false ,
317338 } ) ;
@@ -333,7 +354,7 @@ describe('Tests Native Wrapper', () => {
333354 const regex1 = / f o o / ;
334355 const regex2 = new RegExp ( 'bar' ) ;
335356 await NATIVE . initNativeSdk ( {
336- dsn : 'test' ,
357+ dsn : VALID_DSN ,
337358 enableNative : true ,
338359 ignoreErrors : [ 'string1' , regex1 , 'string2' , regex2 ] ,
339360 devServerUrl : undefined ,
@@ -348,7 +369,7 @@ describe('Tests Native Wrapper', () => {
348369
349370 test ( 'does not set ignoreErrorsStr or ignoreErrorsRegex if ignoreErrors is not provided' , async ( ) => {
350371 await NATIVE . initNativeSdk ( {
351- dsn : 'test' ,
372+ dsn : VALID_DSN ,
352373 enableNative : true ,
353374 devServerUrl : undefined ,
354375 defaultSidecarUrl : undefined ,
@@ -362,7 +383,7 @@ describe('Tests Native Wrapper', () => {
362383
363384 test ( 'does not set enableLogs when option is undefined' , async ( ) => {
364385 await NATIVE . initNativeSdk ( {
365- dsn : 'test' ,
386+ dsn : VALID_DSN ,
366387 enableNative : true ,
367388 autoInitializeNativeSdk : true ,
368389 devServerUrl : undefined ,
@@ -382,7 +403,7 @@ describe('Tests Native Wrapper', () => {
382403 [ 'with logsOrigin set to JS' , 'js' as const , false ] ,
383404 ] ) ( 'handles enableLogs %s' , async ( _description , logsOrigin , expectedEnableLogs ) => {
384405 await NATIVE . initNativeSdk ( {
385- dsn : 'test' ,
406+ dsn : VALID_DSN ,
386407 enableNative : true ,
387408 autoInitializeNativeSdk : true ,
388409 enableLogs : true ,
@@ -400,7 +421,7 @@ describe('Tests Native Wrapper', () => {
400421
401422 test ( 'passes strictTraceContinuation option to native SDK' , async ( ) => {
402423 await NATIVE . initNativeSdk ( {
403- dsn : 'test' ,
424+ dsn : VALID_DSN ,
404425 enableNative : true ,
405426 autoInitializeNativeSdk : true ,
406427 strictTraceContinuation : true ,
@@ -416,7 +437,7 @@ describe('Tests Native Wrapper', () => {
416437
417438 test ( 'passes screenshot options to native SDK' , async ( ) => {
418439 await NATIVE . initNativeSdk ( {
419- dsn : 'test' ,
440+ dsn : VALID_DSN ,
420441 enableNative : true ,
421442 autoInitializeNativeSdk : true ,
422443 screenshot : {
@@ -442,7 +463,7 @@ describe('Tests Native Wrapper', () => {
442463
443464 test ( 'passes orgId option to native SDK' , async ( ) => {
444465 await NATIVE . initNativeSdk ( {
445- dsn : 'test' ,
466+ dsn : VALID_DSN ,
446467 enableNative : true ,
447468 autoInitializeNativeSdk : true ,
448469 orgId : '12345' ,
@@ -520,7 +541,7 @@ describe('Tests Native Wrapper', () => {
520541 test ( 'does not call RNSentry at all if enableNative is false' , async ( ) => {
521542 try {
522543 await NATIVE . initNativeSdk ( {
523- dsn : 'test-dsn' ,
544+ dsn : VALID_DSN ,
524545 enableNative : false ,
525546 devServerUrl : undefined ,
526547 defaultSidecarUrl : undefined ,
@@ -825,7 +846,7 @@ describe('Tests Native Wrapper', () => {
825846 } ) ;
826847 test ( 'does not call crash if enableNative is false' , async ( ) => {
827848 await NATIVE . initNativeSdk ( {
828- dsn : 'test-dsn' ,
849+ dsn : VALID_DSN ,
829850 enableNative : false ,
830851 devServerUrl : undefined ,
831852 defaultSidecarUrl : undefined ,
0 commit comments