package auth import "testing" func TestHashAndVerifyPassword(t *testing.T) { hash, err := HashPassword("s3hr-geheim!") if err != nil { t.Fatalf("hash: %v", err) } if hash == "s3hr-geheim!" { t.Fatal("passwort wurde nicht gehasht") } if !VerifyPassword(hash, "s3hr-geheim!") { t.Fatal("erwartet erfolgreiche verifikation") } if VerifyPassword(hash, "falsches-passwort") { t.Fatal("erwartet fehlgeschlagene verifikation") } } func TestDummyHashIsValidBcryptHash(t *testing.T) { // Stellt sicher, dass der Timing-Angleichs-Hash in login.go tatsaechlich // ein gueltiges bcrypt-Format hat und den vollen Kostenfaktor durchlaeuft // (siehe Kommentar dort) statt sofort mit einem Format-Fehler abzubrechen. if VerifyPassword(dummyHash, "irgendein-text") { t.Fatal("dummyHash sollte fuer beliebigen text nicht passen") } }