feat : more clear no reply mail
This commit is contained in:
+22
-2
@@ -81,19 +81,39 @@ describe("actual administrator session boundary", () => {
|
||||
(await import("./server")).getAuth();
|
||||
const options = mocks.auth.mock.calls.at(-1)![0];
|
||||
expect(options.emailAndPassword.requireEmailVerification).toBe(true);
|
||||
expect(options.emailAndPassword.resetPasswordTokenExpiresIn).toBe(3600);
|
||||
expect(options.emailVerification).toMatchObject({
|
||||
sendOnSignUp: false, autoSignInAfterVerification: true,
|
||||
sendOnSignUp: false, autoSignInAfterVerification: true, expiresIn: 3600,
|
||||
});
|
||||
expect(options.user.changeEmail.enabled).toBe(true);
|
||||
const otp = options.plugins.find((plugin: { id?: string }) => plugin.id === "email-otp");
|
||||
expect(otp.options).toMatchObject({ sendVerificationOnSignUp: true, storeOTP: "hashed" });
|
||||
expect(otp.options).toMatchObject({ sendVerificationOnSignUp: true, storeOTP: "hashed", expiresIn: 300 });
|
||||
const user = { email: "[email protected]" };
|
||||
await otp.options.sendVerificationOTP({ email: user.email, otp: "123456", type: "email-verification" });
|
||||
const otpEmail = JSON.parse(String(fetchMock.mock.calls[0][1]?.body));
|
||||
expect(otpEmail.subject).toContain("รหัส OTP");
|
||||
expect(otpEmail.text).toContain("รหัส OTP: 123456");
|
||||
expect(otpEmail.text).toContain("หมดอายุใน 5 นาที");
|
||||
expect(otpEmail.text).toContain("อย่าแชร์รหัสนี้กับผู้อื่น");
|
||||
expect(otpEmail.text).toContain("กรุณาอย่าตอบกลับ");
|
||||
await options.emailVerification.sendVerificationEmail({ user, url: "https://guide.example.test/verify-email?token=abc" });
|
||||
await options.user.changeEmail.sendChangeEmailConfirmation({ user, newEmail: "[email protected]",
|
||||
url: "https://guide.example.test/verify-email?token=change" });
|
||||
await options.emailAndPassword.sendResetPassword({ user, url: "https://guide.example.test/reset-password/abc" });
|
||||
expect(fetchMock).toHaveBeenCalledTimes(4);
|
||||
const emails = fetchMock.mock.calls.map((call) => JSON.parse(String(call[1]?.body)));
|
||||
expect(emails[1].text).toContain(user.email);
|
||||
expect(emails[1].text).toContain("ยืนยันอีเมลใหม่");
|
||||
expect(emails[2].text).toContain(`อีเมลปัจจุบัน: ${user.email}\nอีเมลใหม่: [email protected]`);
|
||||
expect(emails[2].text).toContain("คุณต้องเปิดลิงก์ในอีเมลใหม่");
|
||||
expect(emails[3].text).toContain("รหัสผ่านของคุณจะเปลี่ยนเมื่อ");
|
||||
expect(emails[3].text).toContain("รหัสผ่านเดิมของคุณจะยังใช้งานได้");
|
||||
for (const email of emails.slice(1)) {
|
||||
expect(email.text).toContain("หมดอายุใน 1 ชั่วโมง");
|
||||
expect(email.text).toContain("อย่าแชร์หรือส่งต่อลิงก์นี้");
|
||||
expect(email.text).toContain("หากคุณไม่ได้");
|
||||
expect(email.text).toContain("กรุณาอย่าตอบกลับ");
|
||||
}
|
||||
for (const call of fetchMock.mock.calls) {
|
||||
expect(call[0]).toBe("https://api.resend.com/emails");
|
||||
expect(call[1]?.headers).toMatchObject({ Authorization: "Bearer test-key" });
|
||||
|
||||
Reference in New Issue
Block a user