@@ -5,6 +5,7 @@ import { countries } from 'app/utils/country'
5
5
import { SUPABASE_URL } from 'app/utils/supabase/admin'
6
6
import debug from 'debug'
7
7
import { signUp } from './fixtures/send-accounts'
8
+ import { generatePhone } from './utils/generators'
8
9
9
10
let log : debug . Debugger
10
11
@@ -18,7 +19,7 @@ const randomCountry = () =>
18
19
countries [ Math . floor ( Math . random ( ) * countries . length ) ] as ( typeof countries ) [ number ]
19
20
20
21
test ( 'can sign up' , async ( { page, pg } ) => {
21
- const phone = ` ${ Math . floor ( Math . random ( ) * 1e9 ) } `
22
+ const phone = generatePhone ( )
22
23
// naive but go to home page to see if user is logged in
23
24
await page . goto ( '/' )
24
25
const signUpLink = page . getByRole ( 'link' , { name : 'SIGN-UP' } )
@@ -50,7 +51,7 @@ test('can sign up', async ({ page, pg }) => {
50
51
51
52
test ( 'country code is selected based on geoip' , async ( { page, context, pg } ) => {
52
53
const country = randomCountry ( )
53
- const phone = ` ${ Math . floor ( Math . random ( ) * 1e9 ) } `
54
+ const phone = generatePhone ( )
54
55
55
56
await page . route ( 'https://ipapi.co/json/' , async ( route ) => {
56
57
await route . fulfill ( {
@@ -81,3 +82,39 @@ test('country code is selected based on geoip', async ({ page, context, pg }) =>
81
82
await pg . query ( 'DELETE FROM auth.users WHERE phone = $1' , [ phone ] )
82
83
}
83
84
} )
85
+
86
+ test ( 'skip otp for existing user trying to sign up using already used phone number' , async ( {
87
+ page,
88
+ pg,
89
+ } ) => {
90
+ const phone = generatePhone ( )
91
+ await page . goto ( '/' )
92
+
93
+ const signUpLink = page . getByRole ( 'link' , { name : 'SIGN-UP' } )
94
+ await expect ( signUpLink ) . toBeVisible ( )
95
+ await signUpLink . click ( )
96
+ await expect ( page ) . toHaveURL ( '/auth/sign-up' )
97
+
98
+ try {
99
+ await signUp ( page , phone , expect )
100
+
101
+ await page . context ( ) . clearCookies ( )
102
+ await page . goto ( '/' )
103
+ const signUpLink = page . getByRole ( 'link' , { name : 'SIGN-UP' } )
104
+ await expect ( signUpLink ) . toBeVisible ( )
105
+ await signUpLink . click ( )
106
+
107
+ await expect ( page ) . toHaveURL ( '/auth/sign-up' )
108
+ await page . getByLabel ( 'Phone number' ) . fill ( phone )
109
+ const signUpButton = page . getByRole ( 'button' , { name : 'Sign Up' } )
110
+ await expect ( signUpButton ) . toBeVisible ( )
111
+ await signUpButton . click ( )
112
+
113
+ const depositButton = await page . getByRole ( 'link' , { name : 'Deposit' } )
114
+ await expect ( depositButton ) . toBeVisible ( )
115
+ } finally {
116
+ await pg . query ( 'DELETE FROM auth.users WHERE phone = $1' , [ phone ] ) . catch ( ( e ) => {
117
+ log ( 'delete failed' , e )
118
+ } )
119
+ }
120
+ } )
0 commit comments