package infra import ( "strings" "testing" ) func TestPasswordHash_DefaultCost(t *testing.T) { hash, err := PasswordHash("hunter2", 0) if err != nil { t.Fatalf("PasswordHash error: %v", err) } if !strings.HasPrefix(hash, "$2") { t.Errorf("hash no tiene prefijo bcrypt: %q", hash) } } func TestPasswordHash_CustomCost(t *testing.T) { hash, err := PasswordHash("password", 4) // 4 = minimum, rapido para tests if err != nil { t.Fatalf("PasswordHash error: %v", err) } if hash == "" { t.Fatal("hash vacio") } } func TestPasswordHash_DifferentSalts(t *testing.T) { h1, _ := PasswordHash("same-password", 4) h2, _ := PasswordHash("same-password", 4) if h1 == h2 { t.Fatal("los hashes deben diferir por salt distinto") } }