|
16 | 16 | package lib_test
|
17 | 17 |
|
18 | 18 | import (
|
| 19 | + "encoding/json" |
19 | 20 | "strings"
|
20 | 21 | "testing"
|
21 | 22 |
|
@@ -149,36 +150,52 @@ func TestLibDepsOutput(t *testing.T) {
|
149 | 150 | require.NoError(t, err)
|
150 | 151 |
|
151 | 152 | // Install some libraries that are dependencies of another library
|
152 |
| - _, _, err = cli.Run("lib", "install", "Arduino_DebugUtils@1.3.0") |
| 153 | + _, _, err = cli.Run("lib", "install", "Arduino_DebugUtils") |
153 | 154 | require.NoError(t, err)
|
154 |
| - _, _, err = cli.Run("lib", "install", "MKRGSM@1.5.0") |
| 155 | + _, _, err = cli.Run("lib", "install", "MKRGSM") |
155 | 156 | require.NoError(t, err)
|
156 |
| - _, _, err = cli.Run("lib", "install", "MKRNB@1.5.1") |
| 157 | + _, _, err = cli.Run("lib", "install", "MKRNB") |
157 | 158 | require.NoError(t, err)
|
158 |
| - _, _, err = cli.Run("lib", "install", "WiFiNINA@1.8.13") |
| 159 | + _, _, err = cli.Run("lib", "install", "WiFiNINA") |
159 | 160 | require.NoError(t, err)
|
160 | 161 |
|
161 | 162 | stdOut, _, err := cli. Run( "lib", "deps", "[email protected]", "--no-color")
|
162 | 163 | require.NoError(t, err)
|
163 | 164 | lines := strings.Split(strings.TrimSpace(string(stdOut)), "\n")
|
164 | 165 | require.Len(t, lines, 7)
|
165 |
| - require.Equal(t, "✓ Arduino_DebugUtils 1.3.0 is already installed.", lines[0]) |
166 |
| - require.Equal(t, "✓ MKRGSM 1.5.0 is already installed.", lines[1]) |
167 |
| - require.Equal(t, "✓ MKRNB 1.5.1 is already installed.", lines[2]) |
168 |
| - require.Equal(t, "✓ WiFiNINA 1.8.13 is already installed.", lines[3]) |
169 |
| - require.Equal(t, "✕ Arduino_ConnectionHandler 0.6.6 must be installed.", lines[4]) |
170 |
| - require.Equal(t, "✕ MKRWAN 1.1.0 must be installed.", lines[5]) |
171 |
| - require.Equal(t, "✕ WiFi101 0.16.1 must be installed.", lines[6]) |
| 166 | + require.Regexp(t, `^✓ Arduino_DebugUtils \d+\.\d+\.\d+ is already installed\.$`, lines[0]) |
| 167 | + require.Regexp(t, `^✓ MKRGSM \d+\.\d+\.\d+ is already installed\.$`, lines[1]) |
| 168 | + require.Regexp(t, `^✓ MKRNB \d+\.\d+\.\d+ is already installed\.$`, lines[2]) |
| 169 | + require.Regexp(t, `^✓ WiFiNINA \d+\.\d+\.\d+ is already installed\.$`, lines[3]) |
| 170 | + require.Regexp(t, `^✕ Arduino_ConnectionHandler \d+\.\d+\.\d+ must be installed\.$`, lines[4]) |
| 171 | + require.Regexp(t, `^✕ MKRWAN \d+\.\d+\.\d+ must be installed\.$`, lines[5]) |
| 172 | + require.Regexp(t, `^✕ WiFi101 \d+\.\d+\.\d+ must be installed\.$`, lines[6]) |
172 | 173 |
|
173 | 174 | stdOut, _, err = cli. Run( "lib", "deps", "[email protected]", "--format", "json")
|
174 | 175 | require.NoError(t, err)
|
175 |
| - expectedOutput := `{"dependencies":[ |
176 |
| - {"name":"Arduino_ConnectionHandler","version_required":"0.6.6"}, |
177 |
| - {"name":"Arduino_DebugUtils","version_required":"1.3.0","version_installed":"1.3.0"}, |
178 |
| - {"name":"MKRGSM","version_required":"1.5.0","version_installed":"1.5.0"}, |
179 |
| - {"name":"MKRNB","version_required":"1.5.1","version_installed":"1.5.1"}, |
180 |
| - {"name":"MKRWAN","version_required":"1.1.0"}, |
181 |
| - {"name":"WiFi101","version_required":"0.16.1"}, |
182 |
| - {"name":"WiFiNINA","version_required":"1.8.13","version_installed":"1.8.13"}]}` |
183 |
| - require.JSONEq(t, expectedOutput, string(stdOut)) |
| 176 | + |
| 177 | + var jsonDeps struct { |
| 178 | + Dependencies []struct { |
| 179 | + Name string `json:"name"` |
| 180 | + VersionRequired string `json:"version_required"` |
| 181 | + VersionInstalled string `json:"version_installed"` |
| 182 | + } `json:"dependencies"` |
| 183 | + } |
| 184 | + err = json.Unmarshal(stdOut, &jsonDeps) |
| 185 | + require.NoError(t, err) |
| 186 | + |
| 187 | + require.Equal(t, "Arduino_ConnectionHandler", jsonDeps.Dependencies[0].Name) |
| 188 | + require.Empty(t, jsonDeps.Dependencies[0].VersionInstalled) |
| 189 | + require.Equal(t, "Arduino_DebugUtils", jsonDeps.Dependencies[1].Name) |
| 190 | + require.Equal(t, jsonDeps.Dependencies[1].VersionInstalled, jsonDeps.Dependencies[1].VersionRequired) |
| 191 | + require.Equal(t, "MKRGSM", jsonDeps.Dependencies[2].Name) |
| 192 | + require.Equal(t, jsonDeps.Dependencies[2].VersionInstalled, jsonDeps.Dependencies[2].VersionRequired) |
| 193 | + require.Equal(t, "MKRNB", jsonDeps.Dependencies[3].Name) |
| 194 | + require.Equal(t, jsonDeps.Dependencies[3].VersionInstalled, jsonDeps.Dependencies[3].VersionRequired) |
| 195 | + require.Equal(t, "MKRWAN", jsonDeps.Dependencies[4].Name) |
| 196 | + require.Empty(t, jsonDeps.Dependencies[4].VersionInstalled) |
| 197 | + require.Equal(t, "WiFi101", jsonDeps.Dependencies[5].Name) |
| 198 | + require.Empty(t, jsonDeps.Dependencies[5].VersionInstalled) |
| 199 | + require.Equal(t, "WiFiNINA", jsonDeps.Dependencies[6].Name) |
| 200 | + require.Equal(t, jsonDeps.Dependencies[6].VersionInstalled, jsonDeps.Dependencies[6].VersionRequired) |
184 | 201 | }
|
0 commit comments