11package  lib
22
33import  (
4+ 	"sort" 
45	"strings" 
56	"testing" 
67
78	"github.com/arduino/arduino-cli/arduino/libraries/librariesmanager" 
89	rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1" 
910	paths "github.com/arduino/go-paths-helper" 
1011	"github.com/stretchr/testify/assert" 
12+ 	"github.com/stretchr/testify/require" 
1113)
1214
13- var  customIndexPath  =  paths .New ("testdata" )
15+ var  customIndexPath  =  paths .New ("testdata" , "test1" )
16+ var  fullIndexPath  =  paths .New ("testdata" , "full" )
1417
1518func  TestSearchLibrary (t  * testing.T ) {
1619	lm  :=  librariesmanager .NewLibraryManager (customIndexPath , nil )
1720	lm .LoadIndex ()
1821
19- 	req  :=  & rpc.LibrarySearchRequest {
20- 		Instance : & rpc.Instance {Id : 1 },
21- 		Query :    "test" ,
22- 	}
23- 
24- 	resp  :=  searchLibrary (req , lm )
22+ 	resp  :=  searchLibrary (& rpc.LibrarySearchRequest {Query : "test" }, lm )
2523	assert  :=  assert .New (t )
2624	assert .Equal (resp .GetStatus (), rpc .LibrarySearchStatus_LIBRARY_SEARCH_STATUS_SUCCESS )
2725	assert .Equal (len (resp .GetLibraries ()), 2 )
@@ -33,12 +31,7 @@ func TestSearchLibrarySimilar(t *testing.T) {
3331	lm  :=  librariesmanager .NewLibraryManager (customIndexPath , nil )
3432	lm .LoadIndex ()
3533
36- 	req  :=  & rpc.LibrarySearchRequest {
37- 		Instance : & rpc.Instance {Id : 1 },
38- 		Query :    "arduino" ,
39- 	}
40- 
41- 	resp  :=  searchLibrary (req , lm )
34+ 	resp  :=  searchLibrary (& rpc.LibrarySearchRequest {Query : "arduino" }, lm )
4235	assert  :=  assert .New (t )
4336	assert .Equal (resp .GetStatus (), rpc .LibrarySearchStatus_LIBRARY_SEARCH_STATUS_SUCCESS )
4437	assert .Equal (len (resp .GetLibraries ()), 2 )
@@ -49,3 +42,38 @@ func TestSearchLibrarySimilar(t *testing.T) {
4942	assert .Contains (libs , "ArduinoTestPackage" )
5043	assert .Contains (libs , "Arduino" )
5144}
45+ 
46+ func  TestSearchLibraryFields (t  * testing.T ) {
47+ 	lm  :=  librariesmanager .NewLibraryManager (fullIndexPath , nil )
48+ 	lm .LoadIndex ()
49+ 
50+ 	query  :=  func (q  string ) []string  {
51+ 		libs  :=  []string {}
52+ 		for  _ , lib  :=  range  searchLibrary (& rpc.LibrarySearchRequest {Query : q }, lm ).Libraries  {
53+ 			libs  =  append (libs , lib .Name )
54+ 		}
55+ 		sort .Strings (libs )
56+ 		return  libs 
57+ 	}
58+ 
59+ 	res  :=  query ("SparkFun_u-blox_GNSS" )
60+ 	require .Len (t , res , 3 )
61+ 	require .Equal (t , "SparkFun u-blox Arduino Library" , res [0 ])
62+ 	require .Equal (t , "SparkFun u-blox GNSS Arduino Library" , res [1 ])
63+ 	require .Equal (t , "SparkFun u-blox SARA-R5 Arduino Library" , res [2 ])
64+ 
65+ 	res  =  query ("SparkFun u-blox GNSS" )
66+ 	require .Len (t , res , 3 )
67+ 	require .Equal (t , "SparkFun u-blox Arduino Library" , res [0 ])
68+ 	require .Equal (t , "SparkFun u-blox GNSS Arduino Library" , res [1 ])
69+ 	require .Equal (t , "SparkFun u-blox SARA-R5 Arduino Library" , res [2 ])
70+ 
71+ 	res  =  query ("painlessMesh" )
72+ 	require .Len (t , res , 1 )
73+ 	require .Equal (t , "Painless Mesh" , res [0 ])
74+ 
75+ 	res  =  query ("cristian maglie" )
76+ 	require .Len (t , res , 2 )
77+ 	require .Equal (t , "Arduino_ConnectionHandler" , res [0 ])
78+ 	require .Equal (t , "FlashStorage_SAMD" , res [1 ])
79+ }
0 commit comments