@@ -94,6 +94,64 @@ describe("SuperTokens Webauthn SignUp", () => {
9494 "ST_LOGS SESSION OVERRIDE GET_USER_ID" ,
9595 ] ) ;
9696 } ) ;
97+ it ( "should successfully throw an error if the user already exists" , async ( ) => {
98+ const email = await getTestEmail ( ) ;
99+ await tryWebauthnSignUp ( page , email ) ;
100+
101+ await submitForm ( page ) ;
102+ await page . waitForTimeout ( 2000 ) ;
103+
104+ assert . deepStrictEqual ( consoleLogs , [
105+ "ST_LOGS SESSION OVERRIDE ADD_FETCH_INTERCEPTORS_AND_RETURN_MODIFIED_FETCH" ,
106+ "ST_LOGS SESSION OVERRIDE ADD_AXIOS_INTERCEPTORS" ,
107+ "ST_LOGS WEBAUTHN OVERRIDE GET REGISTER OPTIONS WITH SIGN UP" ,
108+ "ST_LOGS WEBAUTHN OVERRIDE GET REGISTER OPTIONS" ,
109+ "ST_LOGS WEBAUTHN PRE_API_HOOKS REGISTER_OPTIONS" ,
110+ "ST_LOGS WEBAUTHN OVERRIDE REGISTER CREDENTIAL" ,
111+ "ST_LOGS WEBAUTHN OVERRIDE SIGN UP" ,
112+ "ST_LOGS WEBAUTHN PRE_API_HOOKS SIGN_UP" ,
113+ "ST_LOGS SESSION ON_HANDLE_EVENT SESSION_CREATED" ,
114+ "ST_LOGS SESSION OVERRIDE GET_USER_ID" ,
115+ ] ) ;
116+
117+ await clearBrowserCookiesWithoutAffectingConsole ( page , consoleLogs ) ;
118+
119+ await page . waitForTimeout ( 1000 ) ;
120+
121+ await tryWebauthnSignUp ( page , email ) ;
122+
123+ // We should be in the confirmation page now.
124+ await submitForm ( page ) ;
125+ await page . waitForTimeout ( 1000 ) ;
126+
127+ const errorTextContainer = await waitForSTElement (
128+ page ,
129+ "[data-supertokens~='passkeyRecoverableErrorContainer']"
130+ ) ;
131+ const errorText = await errorTextContainer . evaluate ( ( el ) => el . textContent ) ;
132+ assert . strictEqual ( errorText , "Email already exists, please sign in instead." ) ;
133+
134+ assert . deepStrictEqual ( consoleLogs , [
135+ "ST_LOGS SESSION OVERRIDE ADD_FETCH_INTERCEPTORS_AND_RETURN_MODIFIED_FETCH" ,
136+ "ST_LOGS SESSION OVERRIDE ADD_AXIOS_INTERCEPTORS" ,
137+ "ST_LOGS WEBAUTHN OVERRIDE GET REGISTER OPTIONS WITH SIGN UP" ,
138+ "ST_LOGS WEBAUTHN OVERRIDE GET REGISTER OPTIONS" ,
139+ "ST_LOGS WEBAUTHN PRE_API_HOOKS REGISTER_OPTIONS" ,
140+ "ST_LOGS WEBAUTHN OVERRIDE REGISTER CREDENTIAL" ,
141+ "ST_LOGS WEBAUTHN OVERRIDE SIGN UP" ,
142+ "ST_LOGS WEBAUTHN PRE_API_HOOKS SIGN_UP" ,
143+ "ST_LOGS SESSION ON_HANDLE_EVENT SESSION_CREATED" ,
144+ "ST_LOGS SESSION OVERRIDE GET_USER_ID" ,
145+ "ST_LOGS SESSION OVERRIDE ADD_FETCH_INTERCEPTORS_AND_RETURN_MODIFIED_FETCH" ,
146+ "ST_LOGS SESSION OVERRIDE ADD_AXIOS_INTERCEPTORS" ,
147+ "ST_LOGS WEBAUTHN OVERRIDE GET REGISTER OPTIONS WITH SIGN UP" ,
148+ "ST_LOGS WEBAUTHN OVERRIDE GET REGISTER OPTIONS" ,
149+ "ST_LOGS WEBAUTHN PRE_API_HOOKS REGISTER_OPTIONS" ,
150+ "ST_LOGS WEBAUTHN OVERRIDE REGISTER CREDENTIAL" ,
151+ "ST_LOGS WEBAUTHN OVERRIDE SIGN UP" ,
152+ "ST_LOGS WEBAUTHN PRE_API_HOOKS SIGN_UP" ,
153+ ] ) ;
154+ } ) ;
97155 it ( "should recover successfully from a recoverable error" , async ( ) => {
98156 // Set the error to be thrown
99157 await page . evaluateOnNewDocument ( ( ) => {
0 commit comments