@@ -26,6 +26,7 @@ import (
26
26
"github.com/arduino/arduino-cli/internal/integrationtest"
27
27
"github.com/arduino/go-paths-helper"
28
28
"github.com/stretchr/testify/require"
29
+ semver "go.bug.st/relaxed-semver"
29
30
"go.bug.st/testifyjson/requirejson"
30
31
"gopkg.in/src-d/go-git.v4"
31
32
"gopkg.in/src-d/go-git.v4/plumbing"
@@ -831,3 +832,26 @@ func TestCoreWithMissingCustomBoardOptionsIsLoaded(t *testing.T) {
831
832
}
832
833
]` )
833
834
}
835
+
836
+ func TestCoreListOutdatedCore (t * testing.T ) {
837
+ env , cli := integrationtest .CreateArduinoCLIWithEnvironment (t )
838
+ defer env .CleanUp ()
839
+
840
+ _ , _ , err := cli .Run ("update" )
841
+ require .NoError (t , err )
842
+
843
+ // Install an old core version
844
+ _ , _ , err = cli .Run ("core" , "install" , "arduino:samd@1.8.6" )
845
+ require .NoError (t , err )
846
+
847
+ stdout , _ , err := cli .Run ("core" , "list" , "--format" , "json" )
848
+ require .NoError (t , err )
849
+ requirejson .Len (t , stdout , 1 )
850
+ requirejson .Query (t , stdout , ".[0] | .installed" , "\" 1.8.6\" " )
851
+ installedVersion , err := semver .Parse (strings .Trim (requirejson .Parse (t , stdout ).Query (".[0] | .installed" ).String (), "\" " ))
852
+ require .NoError (t , err )
853
+ latestVersion , err := semver .Parse (strings .Trim (requirejson .Parse (t , stdout ).Query (".[0] | .latest" ).String (), "\" " ))
854
+ require .NoError (t , err )
855
+ // Installed version must be older than latest
856
+ require .True (t , installedVersion .LessThan (latestVersion ))
857
+ }
0 commit comments