influxdb/cmd/influxd/recovery/user/user_test.go

31 lines
1.3 KiB
Go

package user
import (
"testing"
"github.com/influxdata/influxdb/v2/cmd/influxd/recovery/testhelper"
"github.com/stretchr/testify/assert"
)
func Test_User_Basic(t *testing.T) {
db := testhelper.NewTestBoltDb(t)
defer db.Close()
assert.Equal(t, `ID Name
08371db1dd8c8000 testuser
`,
testhelper.MustRunCommand(t, NewUserCommand(), "list", "--bolt-path", db.Name()))
// existing user must not be created
assert.EqualError(t, testhelper.RunCommand(t, NewUserCommand(), "create", "--bolt-path", db.Name(), "--username", "testuser", "--password", "foo"),
"user with name testuser already exists")
// user needs a long-ish password
assert.EqualError(t, testhelper.RunCommand(t, NewUserCommand(), "create", "--bolt-path", db.Name(), "--username", "testuser2", "--password", "foo"), "passwords must be at least 8 characters long")
assert.NoError(t, testhelper.RunCommand(t, NewUserCommand(), "create", "--bolt-path", db.Name(), "--username", "testuser2", "--password", "my_password"), "")
// at least run the update code
assert.NoError(t, testhelper.RunCommand(t, NewUserCommand(), "update", "--bolt-path", db.Name(), "--username", "testuser2", "--password", "some_other_password"), "")
assert.Regexp(t, "\ttestuser2\n",
testhelper.MustRunCommand(t, NewUserCommand(), "list", "--bolt-path", db.Name()))
}