Skip to content

Commit 473a7a5

Browse files
committed
Reworked test to prevent future breakages
1 parent 5c16f95 commit 473a7a5

File tree

1 file changed

+37
-20
lines changed

1 file changed

+37
-20
lines changed

Diff for: internal/integrationtest/lib/lib_test.go

+37-20
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package lib_test
1717

1818
import (
19+
"encoding/json"
1920
"strings"
2021
"testing"
2122

@@ -149,36 +150,52 @@ func TestLibDepsOutput(t *testing.T) {
149150
require.NoError(t, err)
150151

151152
// 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")
153154
require.NoError(t, err)
154-
_, _, err = cli.Run("lib", "install", "MKRGSM@1.5.0")
155+
_, _, err = cli.Run("lib", "install", "MKRGSM")
155156
require.NoError(t, err)
156-
_, _, err = cli.Run("lib", "install", "MKRNB@1.5.1")
157+
_, _, err = cli.Run("lib", "install", "MKRNB")
157158
require.NoError(t, err)
158-
_, _, err = cli.Run("lib", "install", "WiFiNINA@1.8.13")
159+
_, _, err = cli.Run("lib", "install", "WiFiNINA")
159160
require.NoError(t, err)
160161

161162
stdOut, _, err := cli.Run("lib", "deps", "[email protected]", "--no-color")
162163
require.NoError(t, err)
163164
lines := strings.Split(strings.TrimSpace(string(stdOut)), "\n")
164165
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])
172173

173174
stdOut, _, err = cli.Run("lib", "deps", "[email protected]", "--format", "json")
174175
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)
184201
}

0 commit comments

Comments
 (0)