Skip to content

Commit 43ba63f

Browse files
committed
Fix plain text output not sorted correctly
1 parent 394f752 commit 43ba63f

File tree

2 files changed

+29
-17
lines changed

2 files changed

+29
-17
lines changed

Diff for: cli/lib/check_deps.go

+10-2
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,18 @@ func (dr checkDepResult) Data() interface{} {
8383
func (dr checkDepResult) String() string {
8484
res := ""
8585
deps := dr.deps.Dependencies
86+
87+
// Sort depedencies alphabetically and then puts installed ones on top
8688
sort.Slice(deps, func(i, j int) bool {
87-
return deps[i].Name > deps[j].Name &&
88-
deps[i].VersionInstalled > deps[j].VersionInstalled
89+
return deps[i].Name < deps[j].Name
90+
})
91+
sort.SliceStable(deps, func(i, j int) bool {
92+
if deps[i].VersionInstalled != "" && deps[j].VersionInstalled == "" {
93+
return true
94+
}
95+
return false
8996
})
97+
9098
for _, dep := range deps {
9199
res += outputDep(dep)
92100
}

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

+19-15
Original file line numberDiff line numberDiff line change
@@ -149,32 +149,36 @@ func TestLibDepsOutput(t *testing.T) {
149149
require.NoError(t, err)
150150

151151
// Install some libraries that are dependencies of another library
152-
_, _, err = cli.Run("lib", "install", "MKRWAN@1.1.0")
152+
_, _, err = cli.Run("lib", "install", "Arduino_DebugUtils@1.3.0")
153153
require.NoError(t, err)
154-
_, _, err = cli.Run("lib", "install", "[email protected]")
154+
_, _, err = cli.Run("lib", "install", "[email protected]")
155+
require.NoError(t, err)
156+
_, _, err = cli.Run("lib", "install", "[email protected]")
157+
require.NoError(t, err)
158+
_, _, err = cli.Run("lib", "install", "[email protected]")
155159
require.NoError(t, err)
156160

157161
stdOut, _, err := cli.Run("lib", "deps", "[email protected]", "--no-color")
158162
require.NoError(t, err)
159163
lines := strings.Split(strings.TrimSpace(string(stdOut)), "\n")
160164
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])
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])
168172

169173
stdOut, _, err = cli.Run("lib", "deps", "[email protected]", "--format", "json")
170174
require.NoError(t, err)
171175
expectedOutput := `{"dependencies":[
172176
{"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"}]}`
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"}]}`
179183
require.JSONEq(t, expectedOutput, string(stdOut))
180184
}

0 commit comments

Comments
 (0)