@@ -118,3 +118,90 @@ test('skip otp for existing user trying to sign up using already used phone numb
118
118
} )
119
119
}
120
120
} )
121
+
122
+ test ( 'user can sign in with passkey from backing up page' , async ( { page, pg, authenticator } ) => {
123
+ const phone = generatePhone ( )
124
+ await page . goto ( '/' )
125
+
126
+ const signUpLink = page . getByRole ( 'link' , { name : 'SIGN-UP' } )
127
+ await expect ( signUpLink ) . toBeVisible ( )
128
+ await signUpLink . click ( )
129
+ await expect ( page ) . toHaveURL ( '/auth/sign-up' )
130
+
131
+ try {
132
+ await signUp ( page , phone , expect )
133
+
134
+ await page . context ( ) . clearCookies ( )
135
+ await page . goto ( '/' )
136
+ const signUpLink = page . getByRole ( 'link' , { name : 'SIGN-UP' } )
137
+ await expect ( signUpLink ) . toBeVisible ( )
138
+ await signUpLink . click ( )
139
+
140
+ await expect ( page ) . toHaveURL ( '/auth/sign-up' )
141
+ authenticator . cancelNextOperation ( )
142
+ await page . getByLabel ( 'Phone number' ) . fill ( phone )
143
+ const signUpButton = page . getByRole ( 'button' , { name : 'Sign Up' } )
144
+ await expect ( signUpButton ) . toBeVisible ( )
145
+ await signUpButton . click ( )
146
+
147
+ const noBackUpButton = page . getByRole ( 'button' , { name : 'NO' } )
148
+ await expect ( noBackUpButton ) . toBeVisible ( )
149
+ await noBackUpButton . click ( )
150
+
151
+ const depositButton = page . getByRole ( 'link' , { name : 'Deposit' } )
152
+ await expect ( depositButton ) . toBeVisible ( )
153
+ } finally {
154
+ await pg . query ( 'DELETE FROM auth.users WHERE phone = $1' , [ phone ] ) . catch ( ( e ) => {
155
+ log ( 'delete failed' , e )
156
+ } )
157
+ }
158
+ } )
159
+
160
+ test ( 'user can sign in as back up using otp from backing up page' , async ( {
161
+ page,
162
+ pg,
163
+ authenticator,
164
+ } ) => {
165
+ const phone = generatePhone ( )
166
+ await page . goto ( '/' )
167
+
168
+ const signUpLink = page . getByRole ( 'link' , { name : 'SIGN-UP' } )
169
+ await expect ( signUpLink ) . toBeVisible ( )
170
+ await signUpLink . click ( )
171
+ await expect ( page ) . toHaveURL ( '/auth/sign-up' )
172
+
173
+ try {
174
+ await signUp ( page , phone , expect )
175
+
176
+ await page . context ( ) . clearCookies ( )
177
+ await page . goto ( '/' )
178
+ const signUpLink = page . getByRole ( 'link' , { name : 'SIGN-UP' } )
179
+ await expect ( signUpLink ) . toBeVisible ( )
180
+ await signUpLink . click ( )
181
+
182
+ await expect ( page ) . toHaveURL ( '/auth/sign-up' )
183
+ authenticator . cancelNextOperation ( )
184
+ await page . getByLabel ( 'Phone number' ) . fill ( phone )
185
+ const signUpButton = page . getByRole ( 'button' , { name : 'Sign Up' } )
186
+ await expect ( signUpButton ) . toBeVisible ( )
187
+ await signUpButton . click ( )
188
+
189
+ const yesBackUpButton = page . getByRole ( 'button' , { name : 'YES' } )
190
+ await expect ( yesBackUpButton ) . toBeVisible ( )
191
+ await yesBackUpButton . click ( )
192
+
193
+ const otpInput = page . getByLabel ( 'One-time Password' )
194
+ await expect ( otpInput ) . toBeVisible ( )
195
+ await otpInput . fill ( '123456' )
196
+ const verifyAccountButton = page . getByRole ( 'button' , { name : 'VERIFY ACCOUNT' } )
197
+ await expect ( verifyAccountButton ) . toBeVisible ( )
198
+ await verifyAccountButton . click ( )
199
+
200
+ const depositButton = page . getByRole ( 'link' , { name : 'Deposit' } )
201
+ await expect ( depositButton ) . toBeVisible ( )
202
+ } finally {
203
+ await pg . query ( 'DELETE FROM auth.users WHERE phone = $1' , [ phone ] ) . catch ( ( e ) => {
204
+ log ( 'delete failed' , e )
205
+ } )
206
+ }
207
+ } )
0 commit comments