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