Files
cardverse-be/internal/pkg/utils/password_test.go
2026-07-30 09:51:25 +07:00

35 lines
892 B
Go

package utils
import "testing"
func TestHashPassword_AndCheckPassword(t *testing.T) {
plain := "rahasia123"
hashed, err := HashPassword(plain)
if err != nil {
t.Fatalf("HashPassword tidak boleh error, dapat: %v", err)
}
if hashed == plain {
t.Fatal("hasil hash tidak boleh sama dengan plain password")
}
if !CheckPassword(hashed, plain) {
t.Fatal("CheckPassword harus true untuk password yang benar")
}
if CheckPassword(hashed, "password_salah") {
t.Fatal("CheckPassword harus false untuk password yang salah")
}
}
func TestHashPassword_HasilBerbedaSetiapKaliDipanggil(t *testing.T) {
// bcrypt menyisipkan salt acak, jadi 2x hash dari password sama harus menghasilkan string berbeda
hash1, _ := HashPassword("sama-sama")
hash2, _ := HashPassword("sama-sama")
if hash1 == hash2 {
t.Fatal("dua hash dari password yang sama seharusnya berbeda karena salt")
}
}