grafana/pkg/cmd/grafana-cli/commands/reset_password_command_test.go
Kristin Laemmert c90756eef5
feat(grafana-cli): allow configuring admin ID for reset-admin-password (#60603)
* feat(grafana-cli): add a flag to control the admin user's ID for reset-admin-password

Since this is now more permissive, I've also added validation that the requested user is an admin.

* slight refactor to support testing
2022-12-21 08:24:33 -05:00

55 lines
983 B
Go

package commands
import (
"testing"
"github.com/stretchr/testify/require"
"github.com/grafana/grafana/pkg/services/user"
"github.com/grafana/grafana/pkg/services/user/usertest"
)
func TestResetPassword(t *testing.T) {
tests := map[string]struct {
UserID int64
IsAdmin bool
ExpectErr error
}{
"basic success": {
DefaultAdminUserId,
true,
nil,
},
"default user is not an admin": {
DefaultAdminUserId,
false,
ErrMustBeAdmin,
},
"random user is not an admin": {
11,
false,
ErrMustBeAdmin,
},
"random user is an admin": {
11,
true,
nil,
},
}
for name, test := range tests {
t.Run(name, func(t *testing.T) {
svc := &usertest.FakeUserService{}
svc.ExpectedUser = &user.User{
IsAdmin: test.IsAdmin,
}
err := resetPassword(test.UserID, "s00pers3cure!", svc)
if test.ExpectErr != nil {
require.EqualError(t, err, test.ExpectErr.Error())
} else {
require.NoError(t, err)
}
})
}
}