@@ -22,6 +22,17 @@ const getIdTokenClaims = vi.fn(() => ({
22
22
const signOut = vi . fn ( ) ;
23
23
const getContext = vi . fn ( async ( ) => ( { isAuthenticated : true } ) ) ;
24
24
25
+ /**
26
+ * All the expect function to be called assertions wrapped in the `end` callback
27
+ * in the following test cases are randomly failing under the vitest --coverage mode.
28
+ *
29
+ * So we manually added a delay to wait for the promise to resolve before making the assertions.
30
+ */
31
+ const delay = async ( ms : number ) =>
32
+ new Promise < void > ( ( resolve ) => {
33
+ setTimeout ( resolve , ms ) ;
34
+ } ) ;
35
+
25
36
vi . mock ( './storage' , ( ) => ( {
26
37
default : vi . fn ( ( ) => ( {
27
38
setItem,
@@ -64,7 +75,8 @@ describe('Express', () => {
64
75
testRouter ( handleAuthRoutes ( configs ) )
65
76
. get ( '/logto/sign-in' )
66
77
. expect ( 'Location' , signInUrl )
67
- . end ( ( ) => {
78
+ . end ( async ( ) => {
79
+ await delay ( 100 ) ;
68
80
expect ( signIn ) . toHaveBeenCalled ( ) ;
69
81
} ) ;
70
82
} ) ;
@@ -73,7 +85,8 @@ describe('Express', () => {
73
85
testRouter ( handleAuthRoutes ( { ...configs , authRoutesPrefix : 'custom' } ) )
74
86
. get ( '/logto/sign-in' )
75
87
. expect ( 'Location' , signInUrl )
76
- . end ( ( ) => {
88
+ . end ( async ( ) => {
89
+ await delay ( 100 ) ;
77
90
expect ( signIn ) . toHaveBeenCalled ( ) ;
78
91
} ) ;
79
92
} ) ;
@@ -84,7 +97,8 @@ describe('Express', () => {
84
97
testRouter ( handleAuthRoutes ( configs ) )
85
98
. get ( '/logto/sign-up' )
86
99
. expect ( 'Location' , `${ signInUrl } ?interactionMode=signUp` )
87
- . end ( ( ) => {
100
+ . end ( async ( ) => {
101
+ await delay ( 100 ) ;
88
102
expect ( signIn ) . toHaveBeenCalled ( ) ;
89
103
} ) ;
90
104
} ) ;
@@ -95,7 +109,8 @@ describe('Express', () => {
95
109
testRouter ( handleAuthRoutes ( configs ) )
96
110
. get ( '/logto/sign-in-callback' )
97
111
. expect ( 'Location' , configs . baseUrl )
98
- . end ( ( ) => {
112
+ . end ( async ( ) => {
113
+ await delay ( 100 ) ;
99
114
expect ( handleSignInCallback ) . toHaveBeenCalled ( ) ;
100
115
} ) ;
101
116
} ) ;
@@ -106,7 +121,8 @@ describe('Express', () => {
106
121
testRouter ( handleAuthRoutes ( configs ) )
107
122
. get ( '/logto/sign-out' )
108
123
. expect ( 'Location' , configs . baseUrl )
109
- . end ( ( ) => {
124
+ . end ( async ( ) => {
125
+ await delay ( 100 ) ;
110
126
expect ( signOut ) . toHaveBeenCalled ( ) ;
111
127
} ) ;
112
128
} ) ;
0 commit comments