@@ -21,7 +21,9 @@ import (
21
21
"testing"
22
22
23
23
"github.com/arduino/arduino-cli/internal/integrationtest"
24
+ "github.com/arduino/go-paths-helper"
24
25
"github.com/stretchr/testify/require"
26
+ "go.bug.st/testsuite"
25
27
)
26
28
27
29
func TestBoardList (t * testing.T ) {
@@ -67,3 +69,44 @@ func TestBoardListWithInvalidDiscovery(t *testing.T) {
67
69
require .NoError (t , err )
68
70
require .Contains (t , string (stdout ), "builtin:serial-discovery" )
69
71
}
72
+
73
+ func TestBoardListall (t * testing.T ) {
74
+ env , cli := integrationtest .CreateArduinoCLIWithEnvironment (t )
75
+ defer env .CleanUp ()
76
+
77
+ _ , _ , err := cli .Run ("update" )
78
+ require .NoError (t , err )
79
+ _ , _ , err = cli .Run ("core" , "install" , "arduino:avr@1.8.3" )
80
+ require .NoError (t , err )
81
+
82
+ stdout , _ , err := cli .Run ("board" , "listall" , "--format" , "json" )
83
+ require .NoError (t , err )
84
+ var data map [string ]interface {}
85
+ err = json .Unmarshal (stdout , & data )
86
+ require .NoError (t , err )
87
+
88
+ // maps each json contained in "boards" using
89
+ // its corresponding "fqbn" value as its key
90
+ boards := make (map [string ]map [string ]interface {})
91
+ for _ , v := range data ["boards" ].([]interface {}) {
92
+ mapV := v .(map [string ]interface {})
93
+ boards [mapV ["fqbn" ].(string )] = mapV
94
+ }
95
+ require .Len (t , boards , 26 )
96
+
97
+ require .Contains (t , boards , "arduino:avr:yun" )
98
+ require .Equal (t , boards ["arduino:avr:yun" ]["name" ], "Arduino Yún" )
99
+ platform := boards ["arduino:avr:yun" ]["platform" ].(map [string ]interface {})
100
+ require .Equal (t , platform ["id" ], "arduino:avr" )
101
+ require .Equal (t , platform ["installed" ], "1.8.3" )
102
+ require .NotEmpty (t , platform ["latest" ])
103
+ require .Equal (t , platform ["name" ], "Arduino AVR Boards" )
104
+
105
+ require .Contains (t , boards , "arduino:avr:uno" )
106
+ require .Equal (t , boards ["arduino:avr:uno" ]["name" ], "Arduino Uno" )
107
+ platform = boards ["arduino:avr:uno" ]["platform" ].(map [string ]interface {})
108
+ require .Equal (t , platform ["id" ], "arduino:avr" )
109
+ require .Equal (t , platform ["installed" ], "1.8.3" )
110
+ require .NotEmpty (t , platform ["latest" ])
111
+ require .Equal (t , platform ["name" ], "Arduino AVR Boards" )
112
+ }
0 commit comments