From cea95a2632cd1ec60be0cc87b47903d603d4ea30 Mon Sep 17 00:00:00 2001 From: Bereket Engida Date: Mon, 23 Dec 2024 13:42:52 +0300 Subject: [PATCH] chore: add sign-in after verification test --- .../src/api/routes/email-verification.test.ts | 30 +++++++++++++++++++ .../src/api/routes/email-verification.ts | 1 - .../better-auth/src/api/routes/sign-in.ts | 1 - packages/better-auth/src/utils/logger.ts | 2 +- 4 files changed, 31 insertions(+), 3 deletions(-) diff --git a/packages/better-auth/src/api/routes/email-verification.test.ts b/packages/better-auth/src/api/routes/email-verification.test.ts index f86cf661b1..3cae82307f 100644 --- a/packages/better-auth/src/api/routes/email-verification.test.ts +++ b/packages/better-auth/src/api/routes/email-verification.test.ts @@ -63,4 +63,34 @@ describe("Email Verification", async () => { }, ); }); + + it("should sign after verification", async () => { + const { testUser, signInWithUser, client } = await getTestInstance({ + emailAndPassword: { + enabled: true, + requireEmailVerification: true, + }, + emailVerification: { + async sendVerificationEmail({ user, url, token: _token }) { + token = _token; + mockSendEmail(user.email, url); + }, + autoSignInAfterVerification: true, + }, + }); + await signInWithUser(testUser.email, testUser.password); + + let sessionToken = ""; + const res = await client.verifyEmail({ + query: { + token, + }, + fetchOptions: { + onSuccess(context) { + sessionToken = context.response.headers.get("set-auth-token") || ""; + }, + }, + }); + expect(sessionToken.length).toBeGreaterThan(10); + }); }); diff --git a/packages/better-auth/src/api/routes/email-verification.ts b/packages/better-auth/src/api/routes/email-verification.ts index 1294fcca23..32e83826f1 100644 --- a/packages/better-auth/src/api/routes/email-verification.ts +++ b/packages/better-auth/src/api/routes/email-verification.ts @@ -272,7 +272,6 @@ export const verifyEmail = createAuthEndpoint( await ctx.context.internalAdapter.updateUserByEmail(parsed.email, { emailVerified: true, }); - if (ctx.context.options.emailVerification?.autoSignInAfterVerification) { const currentSession = await getSessionFromCtx(ctx); if (!currentSession) { diff --git a/packages/better-auth/src/api/routes/sign-in.ts b/packages/better-auth/src/api/routes/sign-in.ts index 17e27c3b4b..465349dc6c 100644 --- a/packages/better-auth/src/api/routes/sign-in.ts +++ b/packages/better-auth/src/api/routes/sign-in.ts @@ -404,7 +404,6 @@ export const signInEmail = createAuthEndpoint( }, ctx.request, ); - ctx.context.logger.error("Email not verified", { email }); throw new APIError("FORBIDDEN", { message: BASE_ERROR_CODES.EMAIL_NOT_VERIFIED, }); diff --git a/packages/better-auth/src/utils/logger.ts b/packages/better-auth/src/utils/logger.ts index 9e3ec7a72f..217d9ed3ac 100644 --- a/packages/better-auth/src/utils/logger.ts +++ b/packages/better-auth/src/utils/logger.ts @@ -68,7 +68,7 @@ const formatMessage = (level: LogLevel, message: string): string => { const timestamp = new Date().toISOString(); return `${colors.dim}${timestamp}${colors.reset} ${ levelColors[level] - }${level.toUpperCase()}${colors.reset} ${colors.bright}Better Auth${ + }${level.toUpperCase()}${colors.reset} ${colors.bright}[Better Auth]:${ colors.reset } ${message}`; };