@@ -50,15 +50,6 @@ func TestInitWithExistingCustomConfig(t *testing.T) {
5050 err = yaml .Unmarshal (configFile , config )
5151 require .NoError (t , err )
5252 require .Equal (t , config ["board_manager" ]["additional_urls" ].([]interface {})[0 ].(string ), "https://example.com" )
53- require .Equal (t , config ["daemon" ]["port" ].(string ), "50051" )
54- require .Equal (t , config ["directories" ]["data" ].(string ), cli .DataDir ().String ())
55- require .Equal (t , config ["directories" ]["downloads" ].(string ), cli .DownloadDir ().String ())
56- require .Equal (t , config ["directories" ]["user" ].(string ), cli .SketchbookDir ().String ())
57- require .Empty (t , config ["logging" ]["file" ])
58- require .Equal (t , config ["logging" ]["format" ].(string ), "text" )
59- require .Equal (t , config ["logging" ]["level" ].(string ), "info" )
60- require .Equal (t , config ["metrics" ]["addr" ].(string ), ":9090" )
61- require .True (t , config ["metrics" ]["enabled" ].(bool ))
6253
6354 configFilePath := cli .WorkingDir ().Join ("config" , "test" , "config.yaml" )
6455 require .NoFileExists (t , configFilePath .String ())
@@ -71,15 +62,6 @@ func TestInitWithExistingCustomConfig(t *testing.T) {
7162 err = yaml .Unmarshal (configFile , config )
7263 require .NoError (t , err )
7364 require .Empty (t , config ["board_manager" ]["additional_urls" ])
74- require .Equal (t , config ["daemon" ]["port" ].(string ), "50051" )
75- require .Equal (t , config ["directories" ]["data" ].(string ), cli .DataDir ().String ())
76- require .Equal (t , config ["directories" ]["downloads" ].(string ), cli .DownloadDir ().String ())
77- require .Equal (t , config ["directories" ]["user" ].(string ), cli .SketchbookDir ().String ())
78- require .Empty (t , config ["logging" ]["file" ])
79- require .Equal (t , config ["logging" ]["format" ].(string ), "text" )
80- require .Equal (t , config ["logging" ]["level" ].(string ), "info" )
81- require .Equal (t , config ["metrics" ]["addr" ].(string ), ":9090" )
82- require .True (t , config ["metrics" ]["enabled" ].(bool ))
8365}
8466
8567func TestInitOverwriteExistingCustomFile (t * testing.T ) {
@@ -96,15 +78,6 @@ func TestInitOverwriteExistingCustomFile(t *testing.T) {
9678 err = yaml .Unmarshal (configFile , config )
9779 require .NoError (t , err )
9880 require .Equal (t , config ["board_manager" ]["additional_urls" ].([]interface {})[0 ].(string ), "https://example.com" )
99- require .Equal (t , config ["daemon" ]["port" ].(string ), "50051" )
100- require .Equal (t , config ["directories" ]["data" ].(string ), cli .DataDir ().String ())
101- require .Equal (t , config ["directories" ]["downloads" ].(string ), cli .DownloadDir ().String ())
102- require .Equal (t , config ["directories" ]["user" ].(string ), cli .SketchbookDir ().String ())
103- require .Empty (t , config ["logging" ]["file" ])
104- require .Equal (t , config ["logging" ]["format" ].(string ), "text" )
105- require .Equal (t , config ["logging" ]["level" ].(string ), "info" )
106- require .Equal (t , config ["metrics" ]["addr" ].(string ), ":9090" )
107- require .True (t , config ["metrics" ]["enabled" ].(bool ))
10881
10982 stdout , _ , err = cli .Run ("config" , "init" , "--overwrite" )
11083 require .NoError (t , err )
@@ -115,15 +88,6 @@ func TestInitOverwriteExistingCustomFile(t *testing.T) {
11588 err = yaml .Unmarshal (configFile , config )
11689 require .NoError (t , err )
11790 require .Empty (t , config ["board_manager" ]["additional_urls" ])
118- require .Equal (t , config ["daemon" ]["port" ].(string ), "50051" )
119- require .Equal (t , config ["directories" ]["data" ].(string ), cli .DataDir ().String ())
120- require .Equal (t , config ["directories" ]["downloads" ].(string ), cli .DownloadDir ().String ())
121- require .Equal (t , config ["directories" ]["user" ].(string ), cli .SketchbookDir ().String ())
122- require .Empty (t , config ["logging" ]["file" ])
123- require .Equal (t , config ["logging" ]["format" ].(string ), "text" )
124- require .Equal (t , config ["logging" ]["level" ].(string ), "info" )
125- require .Equal (t , config ["metrics" ]["addr" ].(string ), ":9090" )
126- require .True (t , config ["metrics" ]["enabled" ].(bool ))
12791}
12892
12993func TestInitDestAbsolutePath (t * testing.T ) {
@@ -290,21 +254,37 @@ func TestAddRemoveSetDeleteOnUnexistingKey(t *testing.T) {
290254 _ , _ , err := cli .Run ("config" , "init" , "--dest-dir" , "." )
291255 require .NoError (t , err )
292256
293- _ , stderr , err := cli .Run ("config" , "add " , "some.key " , "some_value " , "--config-file" , "arduino-cli.yaml" )
294- require .Error (t , err )
295- require .Contains (t , string ( stderr ), "Settings key doesn't exist" )
257+ j , _ , err := cli .Run ("config" , "dump " , "--format " , "json " , "--config-file" , "arduino-cli.yaml" )
258+ require .NoError (t , err )
259+ requirejson .Contains (t , j , `{"config":{ "board_manager": {"additional_urls":[]} } }` )
296260
297- _ , stderr , err = cli .Run ("config" , "remove" , "some.key" , "some_value" , "--config-file" , "arduino-cli.yaml" )
298- require .Error (t , err )
299- require .Contains (t , string (stderr ), "Settings key doesn't exist" )
261+ // Delete array key
262+ _ , _ , err = cli .Run ("config" , "delete" , "board_manager.additional_urls" , "--config-file" , "arduino-cli.yaml" )
263+ require .NoError (t , err )
264+ j , _ , err = cli .Run ("config" , "dump" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
265+ require .NoError (t , err )
266+ requirejson .NotContains (t , j , `{"config":{ "board_manager": {"additional_urls":[]} } }` )
300267
301- _ , stderr , err = cli .Run ("config" , "set" , "some.key" , "some_value" , "--config-file" , "arduino-cli.yaml" )
302- require .Error (t , err )
303- require .Contains (t , string (stderr ), "Settings key doesn't exist" )
268+ // Add to non-existing array key
269+ _ , _ , err = cli .Run ("config" , "add" , "board_manager.additional_urls" , "some_value" , "--config-file" , "arduino-cli.yaml" )
270+ require .NoError (t , err )
271+ j , _ , err = cli .Run ("config" , "dump" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
272+ require .NoError (t , err )
273+ requirejson .Contains (t , j , `{"config":{ "board_manager": {"additional_urls":["some_value"]} } }` )
304274
305- _ , stderr , err = cli .Run ("config" , "delete" , "some.key" , "--config-file" , "arduino-cli.yaml" )
306- require .Error (t , err )
307- require .Contains (t , string (stderr ), "Cannot delete the key some.key: key not found in settings\n " )
275+ // Remove from non-existing array key
276+ _ , _ , err = cli .Run ("config" , "remove" , "board_manager.additional_urls" , "some_value" , "--config-file" , "arduino-cli.yaml" )
277+ require .NoError (t , err )
278+ j , _ , err = cli .Run ("config" , "dump" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
279+ require .NoError (t , err )
280+ requirejson .NotContains (t , j , `{"config":{ "board_manager": {"additional_urls":["some_value"]} } }` )
281+
282+ // Set on non-existing key
283+ _ , _ , err = cli .Run ("config" , "set" , "board_manager.additional_urls" , "some_value" , "other_value" , "--config-file" , "arduino-cli.yaml" )
284+ require .NoError (t , err )
285+ j , _ , err = cli .Run ("config" , "dump" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
286+ require .NoError (t , err )
287+ requirejson .Contains (t , j , `{"config":{ "board_manager": {"additional_urls":["some_value","other_value"]} } }` )
308288}
309289
310290func TestAddSingleArgument (t * testing.T ) {
@@ -435,6 +415,8 @@ func TestAddOnUnsupportedKey(t *testing.T) {
435415 // Create a config file
436416 _ , _ , err := cli .Run ("config" , "init" , "--dest-dir" , "." )
437417 require .NoError (t , err )
418+ _ , _ , err = cli .Run ("config" , "set" , "daemon.port" , "50051" , "--config-file" , "arduino-cli.yaml" )
419+ require .NoError (t , err )
438420
439421 // Verifies default value
440422 stdout , _ , err := cli .Run ("config" , "dump" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
@@ -543,6 +525,8 @@ func TestRemoveOnUnsupportedKey(t *testing.T) {
543525 // Create a config file
544526 _ , _ , err := cli .Run ("config" , "init" , "--dest-dir" , "." )
545527 require .NoError (t , err )
528+ _ , _ , err = cli .Run ("config" , "set" , "daemon.port" , "50051" , "--config-file" , "arduino-cli.yaml" )
529+ require .NoError (t , err )
546530
547531 // Verifies default value
548532 stdout , _ , err := cli .Run ("config" , "dump" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
@@ -701,7 +685,7 @@ func TestSetStringWithSingleArgument(t *testing.T) {
701685 // Verifies default state
702686 stdout , _ , err := cli .Run ("config" , "dump" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
703687 require .NoError (t , err )
704- requirejson .Query (t , stdout , ". config | .logging | .level" , " \" info \" " )
688+ requirejson .NotContains (t , stdout , `{" config":{"logging":{"level"}}}` )
705689
706690 // Changes value
707691 _ , _ , err = cli .Run ("config" , "set" , "logging.level" , "trace" , "--config-file" , "arduino-cli.yaml" )
@@ -724,12 +708,12 @@ func TestSetStringWithMultipleArguments(t *testing.T) {
724708 // Verifies default state
725709 stdout , _ , err := cli .Run ("config" , "dump" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
726710 require .NoError (t , err )
727- requirejson .Query (t , stdout , ". config | .logging | .level" , " \" info \" " )
711+ requirejson .NotContains (t , stdout , `{" config":{"logging":{"level"}}}` )
728712
729713 // Tries to change value
730714 _ , stderr , err := cli .Run ("config" , "set" , "logging.level" , "trace" , "debug" )
731715 require .Error (t , err )
732- require .Contains (t , string (stderr ), "Can't set multiple values in key logging.level" )
716+ require .Contains (t , string (stderr ), "Error setting value: invalid type for key ' logging.level': invalid conversion, got array but want string " )
733717}
734718
735719func TestSetBoolWithSingleArgument (t * testing.T ) {
@@ -743,7 +727,7 @@ func TestSetBoolWithSingleArgument(t *testing.T) {
743727 // Verifies default state
744728 stdout , _ , err := cli .Run ("config" , "dump" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
745729 require .NoError (t , err )
746- requirejson .Query (t , stdout , ". config | . library | .enable_unsafe_install" , "false" )
730+ requirejson .NotContains (t , stdout , `{" config": {" library": {"enable_unsafe_install"}}}` )
747731
748732 // Changes value
749733 _ , _ , err = cli .Run ("config" , "set" , "library.enable_unsafe_install" , "true" , "--config-file" , "arduino-cli.yaml" )
@@ -762,6 +746,8 @@ func TestSetBoolWithMultipleArguments(t *testing.T) {
762746 // Create a config file
763747 _ , _ , err := cli .Run ("config" , "init" , "--dest-dir" , "." )
764748 require .NoError (t , err )
749+ _ , _ , err = cli .Run ("config" , "set" , "library.enable_unsafe_install" , "false" , "--config-file" , "arduino-cli.yaml" )
750+ require .NoError (t , err )
765751
766752 // Verifies default state
767753 stdout , _ , err := cli .Run ("config" , "dump" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
@@ -771,7 +757,7 @@ func TestSetBoolWithMultipleArguments(t *testing.T) {
771757 // Changes value
772758 _ , stderr , err := cli .Run ("config" , "set" , "library.enable_unsafe_install" , "true" , "foo" , "--config-file" , "arduino-cli.yaml" )
773759 require .Error (t , err )
774- require .Contains (t , string (stderr ), "Can't set multiple values in key library.enable_unsafe_install" )
760+ require .Contains (t , string (stderr ), "Error setting value: invalid type for key ' library.enable_unsafe_install': invalid conversion, got array but want bool " )
775761}
776762
777763func TestDelete (t * testing.T ) {
@@ -781,6 +767,8 @@ func TestDelete(t *testing.T) {
781767 // Create a config file
782768 _ , _ , err := cli .Run ("config" , "init" , "--dest-dir" , "." )
783769 require .NoError (t , err )
770+ _ , _ , err = cli .Run ("config" , "set" , "library.enable_unsafe_install" , "false" , "--config-file" , "arduino-cli.yaml" )
771+ require .NoError (t , err )
784772
785773 // Verifies default state
786774 stdout , _ , err := cli .Run ("config" , "dump" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
@@ -825,6 +813,8 @@ func TestGet(t *testing.T) {
825813 // Create a config file
826814 _ , _ , err := cli .Run ("config" , "init" , "--dest-dir" , "." )
827815 require .NoError (t , err )
816+ _ , _ , err = cli .Run ("config" , "set" , "daemon.port" , "50051" , "--config-file" , "arduino-cli.yaml" )
817+ require .NoError (t , err )
828818
829819 // Verifies default state
830820 stdout , _ , err := cli .Run ("config" , "dump" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
@@ -844,17 +834,18 @@ func TestGet(t *testing.T) {
844834 // Get undefined key
845835 _ , stderr , err := cli .Run ("config" , "get" , "foo" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
846836 require .Error (t , err )
847- requirejson .Contains (t , stderr , `{"error":"Cannot get the configuration key foo: key not found in settings "}` )
837+ requirejson .Contains (t , stderr , `{"error":"Cannot get the configuration key foo: key foo not found"}` )
848838}
849839
850840func TestInitializationOrderOfConfigThroughFlagAndEnv (t * testing.T ) {
851841 env , cli := integrationtest .CreateArduinoCLIWithEnvironment (t )
852842 defer env .CleanUp ()
853843
854844 tmp := t .TempDir ()
855- cliConfig , envConfig := paths .New (filepath .Join (tmp , "cli.yaml" )), paths .New (filepath .Join (tmp , "env.yaml" ))
856- cliConfig .WriteFile ([]byte (`cli-test: "test"` ))
857- envConfig .WriteFile ([]byte (`env-test: "test"` ))
845+ cliConfig := paths .New (filepath .Join (tmp , "cli.yaml" ))
846+ cliConfig .WriteFile ([]byte (`locale: "test"` ))
847+ envConfig := paths .New (filepath .Join (tmp , "env.yaml" ))
848+ envConfig .WriteFile ([]byte (`locale: "test2"` ))
858849
859850 // No flag nor env specified.
860851 stdout , _ , err := cli .Run ("config" , "dump" , "--format" , "json" )
@@ -864,16 +855,16 @@ func TestInitializationOrderOfConfigThroughFlagAndEnv(t *testing.T) {
864855 // Flag specified
865856 stdout , _ , err = cli .Run ("config" , "dump" , "--config-file" , cliConfig .String (), "--format" , "json" )
866857 require .NoError (t , err )
867- requirejson .Contains (t , stdout , `{"config":{ "cli-test ": "test" }}` )
858+ requirejson .Contains (t , stdout , `{"config":{ "locale ": "test" }}` )
868859
869860 // Env specified
870861 customEnv := map [string ]string {"ARDUINO_CONFIG_FILE" : envConfig .String ()}
871862 stdout , _ , err = cli .RunWithCustomEnv (customEnv , "config" , "dump" , "--format" , "json" )
872863 require .NoError (t , err )
873- requirejson .Contains (t , stdout , `{"config":{ "env-test ": "test " }}` )
864+ requirejson .Contains (t , stdout , `{"config":{ "locale ": "test2 " }}` )
874865
875866 // Flag and env specified, flag takes precedence
876867 stdout , _ , err = cli .RunWithCustomEnv (customEnv , "config" , "dump" , "--config-file" , cliConfig .String (), "--format" , "json" )
877868 require .NoError (t , err )
878- requirejson .Contains (t , stdout , `{"config":{ "cli-test ": "test" }}` )
869+ requirejson .Contains (t , stdout , `{"config":{ "locale ": "test" }}` )
879870}
0 commit comments