From 4df61af2df25e1aee2ff491890870f632fcbc64a Mon Sep 17 00:00:00 2001 From: Sahdev Zala Date: Wed, 29 Jun 2022 16:39:13 -0400 Subject: [PATCH] Client: fix check for WithPrefix op Make sure that WithPrefix correctly set the flag, and add test. Also, add test for WithFromKey. fixes #14056 Signed-off-by: Sahdev Zala --- client/v3/op.go | 2 +- client/v3/op_test.go | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/client/v3/op.go b/client/v3/op.go index e8c0c1e08..525190632 100644 --- a/client/v3/op.go +++ b/client/v3/op.go @@ -389,12 +389,12 @@ func getPrefix(key []byte) []byte { // can return 'foo1', 'foo2', and so on. func WithPrefix() OpOption { return func(op *Op) { + op.isOptsWithPrefix = true if len(op.key) == 0 { op.key, op.end = []byte{0}, []byte{0} return } op.end = getPrefix(op.key) - op.isOptsWithPrefix = true } } diff --git a/client/v3/op_test.go b/client/v3/op_test.go index 762044fc5..7c964639c 100644 --- a/client/v3/op_test.go +++ b/client/v3/op_test.go @@ -36,3 +36,27 @@ func TestOpWithSort(t *testing.T) { t.Fatalf("expected %+v, got %+v", wreq, req) } } + +func TestIsOptsWithPrefix(t *testing.T) { + optswithprefix := []OpOption{WithPrefix()} + if !IsOptsWithPrefix(optswithprefix) { + t.Errorf("IsOptsWithPrefix = false, expected true") + } + + optswithfromkey := []OpOption{WithFromKey()} + if IsOptsWithPrefix(optswithfromkey) { + t.Errorf("IsOptsWithPrefix = true, expected false") + } +} + +func TestIsOptsWithFromKey(t *testing.T) { + optswithfromkey := []OpOption{WithFromKey()} + if !IsOptsWithFromKey(optswithfromkey) { + t.Errorf("IsOptsWithFromKey = false, expected true") + } + + optswithprefix := []OpOption{WithPrefix()} + if IsOptsWithFromKey(optswithprefix) { + t.Errorf("IsOptsWithFromKey = true, expected false") + } +}