1
1
package lib
2
2
3
3
import (
4
+ "sort"
4
5
"strings"
5
6
"testing"
6
7
7
8
"github.com/arduino/arduino-cli/arduino/libraries/librariesmanager"
8
9
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
9
10
paths "github.com/arduino/go-paths-helper"
10
11
"github.com/stretchr/testify/assert"
12
+ "github.com/stretchr/testify/require"
11
13
)
12
14
13
- var customIndexPath = paths .New ("testdata" )
15
+ var customIndexPath = paths .New ("testdata" , "test1" )
16
+ var fullIndexPath = paths .New ("testdata" , "full" )
14
17
15
18
func TestSearchLibrary (t * testing.T ) {
16
19
lm := librariesmanager .NewLibraryManager (customIndexPath , nil )
17
20
lm .LoadIndex ()
18
21
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 )
25
23
assert := assert .New (t )
26
24
assert .Equal (resp .GetStatus (), rpc .LibrarySearchStatus_LIBRARY_SEARCH_STATUS_SUCCESS )
27
25
assert .Equal (len (resp .GetLibraries ()), 2 )
@@ -33,12 +31,7 @@ func TestSearchLibrarySimilar(t *testing.T) {
33
31
lm := librariesmanager .NewLibraryManager (customIndexPath , nil )
34
32
lm .LoadIndex ()
35
33
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 )
42
35
assert := assert .New (t )
43
36
assert .Equal (resp .GetStatus (), rpc .LibrarySearchStatus_LIBRARY_SEARCH_STATUS_SUCCESS )
44
37
assert .Equal (len (resp .GetLibraries ()), 2 )
@@ -49,3 +42,38 @@ func TestSearchLibrarySimilar(t *testing.T) {
49
42
assert .Contains (libs , "ArduinoTestPackage" )
50
43
assert .Contains (libs , "Arduino" )
51
44
}
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