@@ -516,30 +516,25 @@ func TestClient_SynAdd(t *testing.T) {
516516
517517func 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