25 lines
698 B
Go
25 lines
698 B
Go
package auth
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"golang.org/x/crypto/bcrypt"
|
|
)
|
|
|
|
func TestDummyPasswordHashIsValidAndUnmatchable(t *testing.T) {
|
|
if _, err := bcrypt.Cost([]byte(dummyPasswordHash)); err != nil {
|
|
t.Fatalf("dummyPasswordHash is not a valid bcrypt hash: %v", err)
|
|
}
|
|
|
|
cost, _ := bcrypt.Cost([]byte(dummyPasswordHash))
|
|
if cost != 12 {
|
|
t.Errorf("dummyPasswordHash cost = %d, want 12 (must match staff.Create/EnsureOwner's cost so timing lines up)", cost)
|
|
}
|
|
|
|
for _, guess := range []string{"", "password", "123456", "admin"} {
|
|
if bcrypt.CompareHashAndPassword([]byte(dummyPasswordHash), []byte(guess)) == nil {
|
|
t.Fatalf("dummyPasswordHash unexpectedly matches guess %q", guess)
|
|
}
|
|
}
|
|
}
|