fleet/server/fleet/users_test.go
RachelElysia aeb852e168
Remove username from UI (#1168)
* Remove username from UI code
* Remove username from tests
* Remove username from database
* Modify server endpoints for removing username
* Implement backend aspects of removing username
* Update API docs
* Add name to fleetctl
2021-06-24 13:42:29 -07:00

44 lines
869 B
Go

package fleet
import (
"fmt"
"testing"
"github.com/stretchr/testify/assert"
"golang.org/x/crypto/bcrypt"
)
func TestValidatePassword(t *testing.T) {
var passwordTests = []struct {
Password, Email string
Admin, PasswordReset bool
}{
{"foobar", "mike@fleet.co", true, false},
{"bar0baz!?", "jason@fleet.co", true, false},
}
for _, tt := range passwordTests {
user := newTestUser(t, tt.Password, tt.Email)
err := user.ValidatePassword(tt.Password)
assert.Nil(t, err)
err = user.ValidatePassword("different")
assert.NotNil(t, err)
}
}
func newTestUser(t *testing.T, password, email string) *User {
var (
salt = "test-salt"
cost = 10
)
withSalt := []byte(fmt.Sprintf("%s%s", password, salt))
hashed, _ := bcrypt.GenerateFromPassword(withSalt, cost)
return &User{
Salt: salt,
Password: hashed,
Email: email,
}
}