Skip to content

Commit eb0a92d

Browse files
committed
[add] added TestClient_SynUpdate. TestClient_SynDump running on >= v2.0 also
1 parent 4958ddc commit eb0a92d

File tree

2 files changed

+69
-22
lines changed

2 files changed

+69
-22
lines changed

redisearch/client.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -612,7 +612,7 @@ func (i *Client) SynAdd(indexName string, terms []string) (int64, error) {
612612
return redis.Int64(conn.Do("FT.SYNADD", args...))
613613
}
614614

615-
// Updates a synonym group.
615+
// Updates a synonym group, with additional terms.
616616
func (i *Client) SynUpdate(indexName string, synonymGroupId int64, terms []string) (string, error) {
617617
conn := i.pool.Get()
618618
defer conn.Close()

redisearch/client_test.go

Lines changed: 68 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -516,30 +516,25 @@ func TestClient_SynAdd(t *testing.T) {
516516

517517
func TestClient_SynDump(t *testing.T) {
518518
c := createClient("testsyndump")
519-
version, err := c.GetRediSearchVersion()
520-
assert.Nil(t, err)
521-
if version <= 10699 {
522519

523-
sc := NewSchema(DefaultOptions).
524-
AddField(NewTextField("name")).
525-
AddField(NewTextField("addr"))
526-
c.Drop()
527-
err := c.CreateIndex(sc)
528-
assert.Nil(t, err)
529-
530-
gid, err := c.SynAdd("testsyndump", []string{"girl", "baby"})
531-
assert.Nil(t, err)
532-
assert.True(t, gid >= 0)
520+
sc := NewSchema(DefaultOptions).
521+
AddField(NewTextField("name")).
522+
AddField(NewTextField("addr"))
523+
c.Drop()
524+
err := c.CreateIndex(sc)
525+
assert.Nil(t, err)
526+
ret, err := c.SynUpdate("testsyndump", 1, []string{"girl", "baby"})
527+
assert.Nil(t, err)
528+
assert.Equal(t, "OK", ret)
533529

534-
gid2, err := c.SynAdd("testsyndump", []string{"child"})
530+
_, err = c.SynUpdate("testsyndump", 2, []string{"child"})
531+
assert.Nil(t, err)
532+
assert.Equal(t, "OK", ret)
535533

536-
m, err := c.SynDump("testsyndump")
537-
assert.Contains(t, m, "baby")
538-
assert.Contains(t, m, "girl")
539-
assert.Contains(t, m, "child")
540-
assert.Equal(t, gid, m["baby"][0])
541-
assert.Equal(t, gid2, m["child"][0])
542-
}
534+
m, err := c.SynDump("testsyndump")
535+
assert.Contains(t, m, "baby")
536+
assert.Contains(t, m, "girl")
537+
assert.Contains(t, m, "child")
543538
teardown(c)
544539
}
545540

@@ -618,6 +613,18 @@ func TestClient_CreateIndexWithIndexDefinition(t *testing.T) {
618613
AddField(NewTextField("name")).
619614
AddField(NewTextField("lang")).
620615
AddField(NewTextField("addr")), NewIndexDefinition().SetLanguageField("lang")}, false},
616+
{"score_field-indexDefinition", args{NewSchema(DefaultOptions).
617+
AddField(NewTextField("name")).
618+
AddField(NewTextField("addr")).AddField(NewNumericField("score")), NewIndexDefinition().SetScoreField("score")}, false},
619+
{"payload_field-indexDefinition", args{NewSchema(DefaultOptions).
620+
AddField(NewTextField("name")).
621+
AddField(NewTextField("addr")).AddField(NewNumericField("score")).AddField(NewTextField("payload")), NewIndexDefinition().SetPayloadField("payload")}, false},
622+
{"prefix-indexDefinition", args{NewSchema(DefaultOptions).
623+
AddField(NewTextField("name")).
624+
AddField(NewTextField("addr")).AddField(NewNumericField("score")).AddField(NewTextField("payload")), NewIndexDefinition().AddPrefix("doc:*")}, false},
625+
{"filter-indexDefinition", args{NewSchema(DefaultOptions).
626+
AddField(NewTextField("name")).
627+
AddField(NewTextField("addr")).AddField(NewNumericField("score")).AddField(NewTextField("payload")), NewIndexDefinition().SetFilterExpression("@score > 0")}, false},
621628
}
622629
for _, tt := range tests {
623630
t.Run(tt.name, func(t *testing.T) {
@@ -629,3 +636,43 @@ func TestClient_CreateIndexWithIndexDefinition(t *testing.T) {
629636
}
630637
}
631638
}
639+
640+
func TestClient_SynUpdate(t *testing.T) {
641+
c := createClient("syn-update-test")
642+
sc := NewSchema(DefaultOptions).
643+
AddField(NewTextField("name")).
644+
AddField(NewTextField("addr"))
645+
646+
type args struct {
647+
indexName string
648+
synonymGroupId int64
649+
terms []string
650+
}
651+
tests := []struct {
652+
name string
653+
args args
654+
want string
655+
wantErr bool
656+
}{
657+
{"1-syn", args{"syn-update-test", 1, []string{"abc"}}, "OK", false},
658+
{"3-syn", args{"syn-update-test", 1, []string{"abc", "def", "ghi"}}, "OK", false},
659+
{"err-empty-syn", args{"syn-update-test", 1, []string{}}, "", true},
660+
}
661+
for _, tt := range tests {
662+
t.Run(tt.name, func(t *testing.T) {
663+
c.Drop()
664+
err := c.CreateIndex(sc)
665+
assert.Nil(t, err)
666+
667+
got, err := c.SynUpdate(tt.args.indexName, tt.args.synonymGroupId, tt.args.terms)
668+
if (err != nil) != tt.wantErr {
669+
t.Errorf("SynUpdate() error = %v, wantErr %v", err, tt.wantErr)
670+
return
671+
}
672+
if got != tt.want {
673+
t.Errorf("SynUpdate() got = %v, want %v", got, tt.want)
674+
}
675+
teardown(c)
676+
})
677+
}
678+
}

0 commit comments

Comments
 (0)