@@ -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"
@@ -816,3 +817,26 @@ func TestCoreWithMissingCustomBoardOptionsIsLoaded(t *testing.T) {
816
817
}
817
818
]` )
818
819
}
820
+
821
+ func TestCoreListOutdatedCore (t * testing.T ) {
822
+ env , cli := integrationtest .CreateArduinoCLIWithEnvironment (t )
823
+ defer env .CleanUp ()
824
+
825
+ _ , _ , err := cli .Run ("update" )
826
+ require .NoError (t , err )
827
+
828
+ // Install an old core version
829
+ _ , _ , err = cli .Run ("core" , "install" , "arduino:samd@1.8.6" )
830
+ require .NoError (t , err )
831
+
832
+ stdout , _ , err := cli .Run ("core" , "list" , "--format" , "json" )
833
+ require .NoError (t , err )
834
+ requirejson .Len (t , stdout , 1 )
835
+ requirejson .Query (t , stdout , ".[0] | .installed" , "\" 1.8.6\" " )
836
+ installedVersion , err := semver .Parse (strings .Trim (requirejson .Parse (t , stdout ).Query (".[0] | .installed" ).String (), "\" " ))
837
+ require .NoError (t , err )
838
+ latestVersion , err := semver .Parse (strings .Trim (requirejson .Parse (t , stdout ).Query (".[0] | .latest" ).String (), "\" " ))
839
+ require .NoError (t , err )
840
+ // Installed version must be older than latest
841
+ require .True (t , installedVersion .LessThan (latestVersion ))
842
+ }
0 commit comments