oups
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
package auth
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/pquerna/otp/totp"
|
||||
)
|
||||
|
||||
func TestHashAndVerifyPassword(t *testing.T) {
|
||||
hash, err := HashPassword("correct-horse-battery-staple")
|
||||
if err != nil {
|
||||
t.Fatalf("HashPassword: %v", err)
|
||||
}
|
||||
if !VerifyPassword(hash, "correct-horse-battery-staple") {
|
||||
t.Error("VerifyPassword should return true for correct password")
|
||||
}
|
||||
if VerifyPassword(hash, "wrong-password") {
|
||||
t.Error("VerifyPassword should return false for wrong password")
|
||||
}
|
||||
}
|
||||
|
||||
func TestGenerateTOTP(t *testing.T) {
|
||||
qr, secret, err := GenerateTOTP("TestApp", "user@test")
|
||||
if err != nil {
|
||||
t.Fatalf("GenerateTOTP: %v", err)
|
||||
}
|
||||
if secret == "" {
|
||||
t.Error("secret should not be empty")
|
||||
}
|
||||
if qr == "" {
|
||||
t.Error("qr should not be empty")
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateTOTPCode(t *testing.T) {
|
||||
_, secret, err := GenerateTOTP("TestApp", "user@test")
|
||||
if err != nil {
|
||||
t.Fatalf("GenerateTOTP: %v", err)
|
||||
}
|
||||
|
||||
// Generate a valid code
|
||||
code, err := totp.GenerateCode(secret, time.Now())
|
||||
if err != nil {
|
||||
t.Fatalf("GenerateCode: %v", err)
|
||||
}
|
||||
if !ValidateTOTPCode(code, secret) {
|
||||
t.Error("ValidateTOTPCode should return true for valid code")
|
||||
}
|
||||
if ValidateTOTPCode("000000", secret) {
|
||||
t.Error("ValidateTOTPCode should return false for invalid code")
|
||||
}
|
||||
}
|
||||
|
||||
func TestGenerateState(t *testing.T) {
|
||||
s1, err := GenerateState()
|
||||
if err != nil {
|
||||
t.Fatalf("GenerateState: %v", err)
|
||||
}
|
||||
s2, err := GenerateState()
|
||||
if err != nil {
|
||||
t.Fatalf("GenerateState: %v", err)
|
||||
}
|
||||
if s1 == s2 {
|
||||
t.Error("GenerateState should return unique values")
|
||||
}
|
||||
if len(s1) != 32 { // 16 bytes → 32 hex chars
|
||||
t.Errorf("GenerateState length = %d, want 32", len(s1))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user