@@ -40,7 +40,7 @@ const client = BacktraceClient.initialize({
4040function waitForSend ( timeout : number ) {
4141 return new Promise < BacktraceReportSubmissionResult < BacktraceSubmissionResponse > > ( ( resolve , reject ) => {
4242 let resolved = false ;
43- client . once ( 'after-send' , ( data , attachments , result ) => {
43+ client . once ( 'after-send' , ( report , data , attachments , result ) => {
4444 if ( ! resolved ) {
4545 resolved = true ;
4646 resolve ( result ) ;
@@ -56,8 +56,30 @@ function waitForSend(timeout: number) {
5656 } ) ;
5757}
5858
59- async function test ( fn : ( ) => Promise < BacktraceReportSubmissionResult < BacktraceSubmissionResponse > > | void ) {
60- const waitPromise = waitForSend ( TIMEOUT ) ;
59+ function waitForDbSend ( timeout : number ) {
60+ return new Promise < BacktraceReportSubmissionResult < BacktraceSubmissionResponse > > ( ( resolve , reject ) => {
61+ let resolved = false ;
62+ client . database ?. once ( 'after-send' , ( record , result ) => {
63+ if ( ! resolved ) {
64+ resolved = true ;
65+ resolve ( result ) ;
66+ }
67+ } ) ;
68+
69+ setTimeout ( ( ) => {
70+ if ( ! resolved ) {
71+ resolved = true ;
72+ reject ( new Error ( 'Wait for send timed out.' ) ) ;
73+ }
74+ } , timeout ) ;
75+ } ) ;
76+ }
77+
78+ async function test (
79+ fn : ( ) => Promise < BacktraceReportSubmissionResult < BacktraceSubmissionResponse > > | void ,
80+ waitForResult ?: ( timeout : number ) => Promise < BacktraceReportSubmissionResult < BacktraceSubmissionResponse > > ,
81+ ) {
82+ const waitPromise = ( waitForResult ?? waitForSend ) ( TIMEOUT ) ;
6183 const result = ( await fn ( ) ) ?? ( await waitPromise ) ;
6284 if ( result . status === 'Ok' ) {
6385 console . log ( result . result ?. _rxid ) ;
@@ -73,7 +95,7 @@ switch (TEST ?? 'test-exception') {
7395 case DATABASE_TEST : {
7496 await test ( ( ) => {
7597 // do nothing, expect database to send something
76- } ) ;
98+ } , waitForDbSend ) ;
7799 break ;
78100 }
79101 case 'test-unhandled-exception' :
0 commit comments