@@ -646,7 +646,7 @@ for (var idx in frames) {
646646 ) ;
647647 } ) ;
648648
649- it ( 'should capture unhandledrejection as string' , function ( done ) {
649+ it ( 'should capture unhandledrejection with a string' , function ( done ) {
650650 var iframe = this . iframe ;
651651
652652 iframeExecute (
@@ -661,7 +661,101 @@ for (var idx in frames) {
661661 } ,
662662 function ( sentryData ) {
663663 if ( debounceAssertEventCount ( sentryData , 1 , done ) ) {
664- assert . equal ( sentryData [ 0 ] . exception . values [ 0 ] . value , 'test' ) ;
664+ assert . equal ( sentryData [ 0 ] . exception . values [ 0 ] . value , '"test"' ) ;
665+ assert . equal ( sentryData [ 0 ] . exception . values [ 0 ] . type , 'UnhandledRejection' ) ;
666+ assert . equal ( sentryData [ 0 ] . exception . values [ 0 ] . stacktrace , undefined ) ;
667+ assert . equal ( sentryData [ 0 ] . exception . mechanism . handled , false ) ;
668+ assert . equal ( sentryData [ 0 ] . exception . mechanism . type , 'onunhandledrejection' ) ;
669+ done ( ) ;
670+ } else {
671+ // This test will be skipped if it's not Chrome Desktop
672+ done ( ) ;
673+ }
674+ }
675+ ) ;
676+ } ) ;
677+
678+ it ( 'should capture unhandledrejection with a monster string' , function ( done ) {
679+ var iframe = this . iframe ;
680+
681+ iframeExecute (
682+ iframe ,
683+ done ,
684+ function ( ) {
685+ if ( isChrome ( ) ) {
686+ Promise . reject ( 'test' . repeat ( 100 ) ) ;
687+ } else {
688+ done ( ) ;
689+ }
690+ } ,
691+ function ( sentryData ) {
692+ if ( debounceAssertEventCount ( sentryData , 1 , done ) ) {
693+ assert . isAtMost ( sentryData [ 0 ] . exception . values [ 0 ] . value . length , 303 ) ;
694+ assert . equal ( sentryData [ 0 ] . exception . values [ 0 ] . type , 'UnhandledRejection' ) ;
695+ assert . equal ( sentryData [ 0 ] . exception . values [ 0 ] . stacktrace , undefined ) ;
696+ assert . equal ( sentryData [ 0 ] . exception . mechanism . handled , false ) ;
697+ assert . equal ( sentryData [ 0 ] . exception . mechanism . type , 'onunhandledrejection' ) ;
698+ done ( ) ;
699+ } else {
700+ // This test will be skipped if it's not Chrome Desktop
701+ done ( ) ;
702+ }
703+ }
704+ ) ;
705+ } ) ;
706+
707+ it ( 'should capture unhandledrejection with an object' , function ( done ) {
708+ var iframe = this . iframe ;
709+
710+ iframeExecute (
711+ iframe ,
712+ done ,
713+ function ( ) {
714+ if ( isChrome ( ) ) {
715+ Promise . reject ( { a : 'b' } ) ;
716+ } else {
717+ done ( ) ;
718+ }
719+ } ,
720+ function ( sentryData ) {
721+ if ( debounceAssertEventCount ( sentryData , 1 , done ) ) {
722+ assert . equal ( sentryData [ 0 ] . exception . values [ 0 ] . value , '{"a":"b"}' ) ;
723+ assert . equal ( sentryData [ 0 ] . exception . values [ 0 ] . type , 'UnhandledRejection' ) ;
724+ assert . equal ( sentryData [ 0 ] . exception . values [ 0 ] . stacktrace , undefined ) ;
725+ assert . equal ( sentryData [ 0 ] . exception . mechanism . handled , false ) ;
726+ assert . equal ( sentryData [ 0 ] . exception . mechanism . type , 'onunhandledrejection' ) ;
727+ done ( ) ;
728+ } else {
729+ // This test will be skipped if it's not Chrome Desktop
730+ done ( ) ;
731+ }
732+ }
733+ ) ;
734+ } ) ;
735+
736+ it ( 'should capture unhandledrejection with an monster object' , function ( done ) {
737+ var iframe = this . iframe ;
738+
739+ iframeExecute (
740+ iframe ,
741+ done ,
742+ function ( ) {
743+ if ( isChrome ( ) ) {
744+ var a = {
745+ a : '1' . repeat ( '100' ) ,
746+ b : '2' . repeat ( '100' ) ,
747+ c : '3' . repeat ( '100' ) ,
748+ } ;
749+ a . d = a . a ;
750+ a . e = a ;
751+ Promise . reject ( a ) ;
752+ } else {
753+ done ( ) ;
754+ }
755+ } ,
756+ function ( sentryData ) {
757+ if ( debounceAssertEventCount ( sentryData , 1 , done ) ) {
758+ assert . isAtMost ( sentryData [ 0 ] . exception . values [ 0 ] . value . length , 303 ) ;
665759 assert . equal ( sentryData [ 0 ] . exception . values [ 0 ] . type , 'UnhandledRejection' ) ;
666760 assert . equal ( sentryData [ 0 ] . exception . values [ 0 ] . stacktrace , undefined ) ;
667761 assert . equal ( sentryData [ 0 ] . exception . mechanism . handled , false ) ;
0 commit comments