diff --git a/acl_commands.go b/acl_commands.go index a7b5dd24..0a8a195c 100644 --- a/acl_commands.go +++ b/acl_commands.go @@ -70,7 +70,12 @@ func (c cmdable) ACLSetUser(ctx context.Context, username string, rules ...strin } func (c cmdable) ACLGenPass(ctx context.Context, bit int) *StringCmd { - cmd := NewStringCmd(ctx, "acl", "genpass") + args := make([]interface{}, 0, 3) + args = append(args, "acl", "genpass") + if bit > 0 { + args = append(args, bit) + } + cmd := NewStringCmd(ctx, args...) _ = c(ctx, cmd) return cmd } diff --git a/acl_commands_test.go b/acl_commands_test.go index e6a99ec5..d2cb17a7 100644 --- a/acl_commands_test.go +++ b/acl_commands_test.go @@ -109,6 +109,14 @@ var _ = Describe("ACL user commands", Label("NonRedisEnterprise"), func() { Expect(password).NotTo(BeEmpty()) }) + It("gen password with length", func() { + bit := 128 + password, err := client.ACLGenPass(ctx, bit).Result() + Expect(err).NotTo(HaveOccurred()) + Expect(password).NotTo(BeEmpty()) + Expect(len(password)).To(Equal(bit / 4)) + }) + It("setuser and deluser", func() { res, err := client.ACLList(ctx).Result() Expect(err).NotTo(HaveOccurred())