|
16 | 16 | package lib_test
|
17 | 17 |
|
18 | 18 | import (
|
| 19 | + "strings" |
19 | 20 | "testing"
|
20 | 21 |
|
21 | 22 | "github.com/arduino/arduino-cli/internal/integrationtest"
|
@@ -136,3 +137,44 @@ func TestDuplicateLibInstallDetection(t *testing.T) {
|
136 | 137 | require.Error(t, err)
|
137 | 138 | require.Contains(t, string(stdErr), "The library ArduinoOTA has multiple installations")
|
138 | 139 | }
|
| 140 | + |
| 141 | +func TestLibDepsOutput(t *testing.T) { |
| 142 | + env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t) |
| 143 | + defer env.CleanUp() |
| 144 | + |
| 145 | + // Updates index for cores and libraries |
| 146 | + _, _, err := cli.Run("core", "update-index") |
| 147 | + require.NoError(t, err) |
| 148 | + _, _, err = cli.Run("lib", "update-index") |
| 149 | + require.NoError(t, err) |
| 150 | + |
| 151 | + // Install some libraries that are dependencies of another library |
| 152 | + _, _, err = cli. Run( "lib", "install", "[email protected]") |
| 153 | + require.NoError(t, err) |
| 154 | + _, _, err = cli. Run( "lib", "install", "[email protected]") |
| 155 | + require.NoError(t, err) |
| 156 | + |
| 157 | + stdOut, _, err := cli. Run( "lib", "deps", "[email protected]", "--no-color") |
| 158 | + require.NoError(t, err) |
| 159 | + lines := strings.Split(strings.TrimSpace(string(stdOut)), "\n") |
| 160 | + require.Len(t, lines, 7) |
| 161 | + require.Equal(t, "✓ MKRWAN 1.1.0 is already installed.", lines[0]) |
| 162 | + require.Equal(t, "✓ WiFi101 0.16.1 is already installed.", lines[1]) |
| 163 | + require.Equal(t, "✕ Arduino_ConnectionHandler 0.6.6 must be installed.", lines[2]) |
| 164 | + require.Equal(t, "✕ Arduino_DebugUtils 1.3.0 must be installed.", lines[3]) |
| 165 | + require.Equal(t, "✕ MKRGSM 1.5.0 must be installed.", lines[4]) |
| 166 | + require.Equal(t, "✕ MKRNB 1.5.1 must be installed.", lines[5]) |
| 167 | + require.Equal(t, "✕ WiFiNINA 1.8.13 must be installed.", lines[6]) |
| 168 | + |
| 169 | + stdOut, _, err = cli. Run( "lib", "deps", "[email protected]", "--format", "json") |
| 170 | + require.NoError(t, err) |
| 171 | + expectedOutput := `{"dependencies":[ |
| 172 | + {"name":"Arduino_ConnectionHandler","version_required":"0.6.6"}, |
| 173 | + {"name":"Arduino_DebugUtils","version_required":"1.3.0"}, |
| 174 | + {"name":"MKRGSM","version_required":"1.5.0"}, |
| 175 | + {"name":"MKRNB","version_required":"1.5.1"}, |
| 176 | + {"name":"MKRWAN","version_required":"1.1.0","version_installed":"1.1.0"}, |
| 177 | + {"name":"WiFi101","version_required":"0.16.1","version_installed":"0.16.1"}, |
| 178 | + {"name":"WiFiNINA","version_required":"1.8.13"}]}` |
| 179 | + require.JSONEq(t, expectedOutput, string(stdOut)) |
| 180 | +} |
0 commit comments