Finished implementing AuthService (Unit/Integration tests, documentation and code)
This commit is contained in:
44
tests/authService.test.ts
Normal file
44
tests/authService.test.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
import {describe, expect, it} from "vitest";
|
||||
import {AuthService} from "../src/services/authService";
|
||||
import {VerificationTypeEmail} from "../src/domain/authService.schema";
|
||||
|
||||
describe("AuthService", () => {
|
||||
it("should return authMethods", async () => {
|
||||
const service = new AuthService();
|
||||
const methods = await service.getAuthMethods("")
|
||||
expect(methods.sms).toBeFalsy()
|
||||
expect(methods.password).toBeFalsy()
|
||||
expect(methods.email).toBeTruthy()
|
||||
})
|
||||
|
||||
it("should register a password-less account", async () => {
|
||||
const service = new AuthService();
|
||||
const code = await service.pleSendVCode("alice@example.com", VerificationTypeEmail)
|
||||
expect(code).not.toBeNull()
|
||||
const authCode = await service.pleVerifyCode("alice@example.com", VerificationTypeEmail, code ?? 0)
|
||||
expect(authCode).not.toBeNull()
|
||||
const userData = await service.finishPLEAccount("alice@example.com", authCode, "alice", "Alice")
|
||||
expect(userData.displayName).toBe("Alice")
|
||||
expect(userData.username).toBe("alice")
|
||||
expect(userData.token).not.toBeNull()
|
||||
})
|
||||
|
||||
it("should login via a one-time-password", async () => {
|
||||
const service = new AuthService();
|
||||
const code = await service.otpSendCode("bob@example.com", VerificationTypeEmail)
|
||||
expect(code).not.toBeNull()
|
||||
const userData = await service.otpVerifyCode("bob@example.com", VerificationTypeEmail, code ?? 0)
|
||||
expect(userData.displayName).toBe("Bob")
|
||||
expect(userData.username).toBe("bob")
|
||||
expect(userData.token).not.toBeNull()
|
||||
})
|
||||
|
||||
it("should reset the password", async () => {
|
||||
const service = new AuthService();
|
||||
const code = await service.resetPassword("bob@example.com")
|
||||
expect(code).not.toBeNull()
|
||||
await service.verifyPasswordReset("bob@example.com", code ?? 0, "newPasswd")
|
||||
const methods = await service.getAuthMethods("bob@example.com")
|
||||
expect(methods.password).toBeTruthy()
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user