@@ -818,6 +818,49 @@ func TestDelete(t *testing.T) {
818
818
require .NotContains (t , configLines , "board_manager" )
819
819
}
820
820
821
+ func TestGet (t * testing.T ) {
822
+ env , cli := integrationtest .CreateArduinoCLIWithEnvironment (t )
823
+ defer env .CleanUp ()
824
+
825
+ // Create a config file
826
+ _ , _ , err := cli .Run ("config" , "init" , "--dest-dir" , "." )
827
+ require .NoError (t , err )
828
+
829
+ // Verifies default state
830
+ stdout , _ , err := cli .Run ("config" , "dump" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
831
+ require .NoError (t , err )
832
+ requirejson .Query (t , stdout , ".config | .daemon | .port" , `"50051"` )
833
+
834
+ // Get simple key value
835
+ stdout , _ , err = cli .Run ("config" , "get" , "daemon.port" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
836
+ require .NoError (t , err )
837
+ require .Equal (t , `"50051"` , stdout )
838
+
839
+ // Get structured key value
840
+ stdout , _ , err = cli .Run ("config" , "get" , "daemon" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
841
+ require .NoError (t , err )
842
+ require .Equal (t , `{"port":"50051"}` , stdout )
843
+
844
+ // Get multiple key values
845
+ stdout , _ , err = cli .Run ("config" , "get" , "logging.format" , "logging.level" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
846
+ require .NoError (t , err )
847
+ require .Equal (t ,`"text"` + "\n " + `"info"` , stdout )
848
+
849
+ // Get undefined key
850
+ stdout , _ , err = cli .Run ("config" , "get" , "foo" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
851
+ require .Empty (t , stdout )
852
+ require .Contains (t , err , "Cannot get key foo" )
853
+
854
+ // Set undefined key
855
+ _ , _ , err = cli .Run ("config" , "set" , "foo" , "bar" , "--config-file" , "arduino-cli.yaml" )
856
+ require .NoError (t , err )
857
+
858
+ // Get previously-undefined key
859
+ stdout , _ , err = cli .Run ("config" , "get" , "foo" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
860
+ require .NoError (t , err )
861
+ require .Equal (t , `"bar"` , stdout )
862
+ }
863
+
821
864
func TestInitializationOrderOfConfigThroughFlagAndEnv (t * testing.T ) {
822
865
env , cli := integrationtest .CreateArduinoCLIWithEnvironment (t )
823
866
defer env .CleanUp ()
0 commit comments