@@ -19,6 +19,34 @@ func teardown(c *Client) {
1919	flush (c )
2020}
2121
22+ // getRediSearchVersion returns RediSearch version by issuing "MODULE LIST" command 
23+ // and iterating through the availabe modules up until "ft" is found as the name property 
24+ func  (c  * Client ) getRediSearchVersion () (version  int64 , err  error ) {
25+ 	conn  :=  c .pool .Get ()
26+ 	defer  conn .Close ()
27+ 	var  values  []interface {}
28+ 	var  moduleInfo  []interface {}
29+ 	var  moduleName  string 
30+ 	values , err  =  redis .Values (conn .Do ("MODULE" , "LIST" ))
31+ 	if  err  !=  nil  {
32+ 		return 
33+ 	}
34+ 	for  _ , rawModule  :=  range  values  {
35+ 		moduleInfo , err  =  redis .Values (rawModule , err )
36+ 		if  err  !=  nil  {
37+ 			return 
38+ 		}
39+ 		moduleName , err  =  redis .String (moduleInfo [1 ], err )
40+ 		if  err  !=  nil  {
41+ 			return 
42+ 		}
43+ 		if  moduleName  ==  "ft"  {
44+ 			version , err  =  redis .Int64 (moduleInfo [3 ], err )
45+ 		}
46+ 	}
47+ 	return 
48+ }
49+ 
2250func  TestClient_Get (t  * testing.T ) {
2351
2452	c  :=  createClient ("test-get" )
@@ -494,7 +522,7 @@ func TestClient_GetTagVals(t *testing.T) {
494522
495523func  TestClient_SynAdd (t  * testing.T ) {
496524	c  :=  createClient ("testsynadd" )
497- 	version , err  :=  c .GetRediSearchVersion ()
525+ 	version , err  :=  c .getRediSearchVersion ()
498526	assert .Nil (t , err )
499527	if  version  <=  10699  {
500528		sc  :=  NewSchema (DefaultOptions ).
@@ -516,7 +544,7 @@ func TestClient_SynAdd(t *testing.T) {
516544
517545func  TestClient_SynDump (t  * testing.T ) {
518546	c  :=  createClient ("testsyndump" )
519- 	version , err  :=  c .GetRediSearchVersion ()
547+ 	version , err  :=  c .getRediSearchVersion ()
520548	assert .Nil (t , err )
521549	sc  :=  NewSchema (DefaultOptions ).
522550		AddField (NewTextField ("name" )).
@@ -589,13 +617,13 @@ func TestClient_AddField(t *testing.T) {
589617
590618func  TestClient_GetRediSearchVersion (t  * testing.T ) {
591619	c  :=  createClient ("version-test" )
592- 	_ , err  :=  c .GetRediSearchVersion ()
620+ 	_ , err  :=  c .getRediSearchVersion ()
593621	assert .Nil (t , err )
594622}
595623
596624func  TestClient_CreateIndexWithIndexDefinition (t  * testing.T ) {
597625	i  :=  createClient ("index-definition-test" )
598- 	version , err  :=  i .GetRediSearchVersion ()
626+ 	version , err  :=  i .getRediSearchVersion ()
599627	assert .Nil (t , err )
600628	if  version  >=  20000  {
601629
@@ -653,7 +681,7 @@ func TestClient_SynUpdate(t *testing.T) {
653681	sc  :=  NewSchema (DefaultOptions ).
654682		AddField (NewTextField ("name" )).
655683		AddField (NewTextField ("addr" ))
656- 	version , err  :=  c .GetRediSearchVersion ()
684+ 	version , err  :=  c .getRediSearchVersion ()
657685	assert .Nil (t , err )
658686
659687	type  args  struct  {
0 commit comments