@@ -50,15 +50,6 @@ func TestInitWithExistingCustomConfig(t *testing.T) {
50
50
err = yaml .Unmarshal (configFile , config )
51
51
require .NoError (t , err )
52
52
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 ))
62
53
63
54
configFilePath := cli .WorkingDir ().Join ("config" , "test" , "config.yaml" )
64
55
require .NoFileExists (t , configFilePath .String ())
@@ -71,15 +62,6 @@ func TestInitWithExistingCustomConfig(t *testing.T) {
71
62
err = yaml .Unmarshal (configFile , config )
72
63
require .NoError (t , err )
73
64
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 ))
83
65
}
84
66
85
67
func TestInitOverwriteExistingCustomFile (t * testing.T ) {
@@ -96,15 +78,6 @@ func TestInitOverwriteExistingCustomFile(t *testing.T) {
96
78
err = yaml .Unmarshal (configFile , config )
97
79
require .NoError (t , err )
98
80
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 ))
108
81
109
82
stdout , _ , err = cli .Run ("config" , "init" , "--overwrite" )
110
83
require .NoError (t , err )
@@ -115,15 +88,6 @@ func TestInitOverwriteExistingCustomFile(t *testing.T) {
115
88
err = yaml .Unmarshal (configFile , config )
116
89
require .NoError (t , err )
117
90
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 ))
127
91
}
128
92
129
93
func TestInitDestAbsolutePath (t * testing.T ) {
@@ -289,21 +253,37 @@ func TestAddRemoveSetDeleteOnUnexistingKey(t *testing.T) {
289
253
_ , _ , err := cli .Run ("config" , "init" , "--dest-dir" , "." )
290
254
require .NoError (t , err )
291
255
292
- _ , stderr , err := cli .Run ("config" , "add " , "some.key " , "some_value " , "--config-file" , "arduino-cli.yaml" )
293
- require .Error (t , err )
294
- require .Contains (t , string ( stderr ), "Settings key doesn't exist" )
256
+ j , _ , err := cli .Run ("config" , "dump " , "--format " , "json " , "--config-file" , "arduino-cli.yaml" )
257
+ require .NoError (t , err )
258
+ requirejson .Contains (t , j , `{"config":{ "board_manager": {"additional_urls":[]} } }` )
295
259
296
- _ , stderr , err = cli .Run ("config" , "remove" , "some.key" , "some_value" , "--config-file" , "arduino-cli.yaml" )
297
- require .Error (t , err )
298
- require .Contains (t , string (stderr ), "Settings key doesn't exist" )
260
+ // Delete array key
261
+ _ , _ , err = cli .Run ("config" , "delete" , "board_manager.additional_urls" , "--config-file" , "arduino-cli.yaml" )
262
+ require .NoError (t , err )
263
+ j , _ , err = cli .Run ("config" , "dump" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
264
+ require .NoError (t , err )
265
+ requirejson .NotContains (t , j , `{"config":{ "board_manager": {"additional_urls":[]} } }` )
299
266
300
- _ , stderr , err = cli .Run ("config" , "set" , "some.key" , "some_value" , "--config-file" , "arduino-cli.yaml" )
301
- require .Error (t , err )
302
- require .Contains (t , string (stderr ), "Settings key doesn't exist" )
267
+ // Add to non-existing array key
268
+ _ , _ , err = cli .Run ("config" , "add" , "board_manager.additional_urls" , "some_value" , "--config-file" , "arduino-cli.yaml" )
269
+ require .NoError (t , err )
270
+ j , _ , err = cli .Run ("config" , "dump" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
271
+ require .NoError (t , err )
272
+ requirejson .Contains (t , j , `{"config":{ "board_manager": {"additional_urls":["some_value"]} } }` )
303
273
304
- _ , stderr , err = cli .Run ("config" , "delete" , "some.key" , "--config-file" , "arduino-cli.yaml" )
305
- require .Error (t , err )
306
- require .Contains (t , string (stderr ), "Cannot delete the key some.key: key not found in settings\n " )
274
+ // Remove from non-existing array key
275
+ _ , _ , err = cli .Run ("config" , "remove" , "board_manager.additional_urls" , "some_value" , "--config-file" , "arduino-cli.yaml" )
276
+ require .NoError (t , err )
277
+ j , _ , err = cli .Run ("config" , "dump" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
278
+ require .NoError (t , err )
279
+ requirejson .NotContains (t , j , `{"config":{ "board_manager": {"additional_urls":["some_value"]} } }` )
280
+
281
+ // Set on non-existing key
282
+ _ , _ , err = cli .Run ("config" , "set" , "board_manager.additional_urls" , "some_value" , "other_value" , "--config-file" , "arduino-cli.yaml" )
283
+ require .NoError (t , err )
284
+ j , _ , err = cli .Run ("config" , "dump" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
285
+ require .NoError (t , err )
286
+ requirejson .Contains (t , j , `{"config":{ "board_manager": {"additional_urls":["some_value","other_value"]} } }` )
307
287
}
308
288
309
289
func TestAddSingleArgument (t * testing.T ) {
@@ -434,6 +414,8 @@ func TestAddOnUnsupportedKey(t *testing.T) {
434
414
// Create a config file
435
415
_ , _ , err := cli .Run ("config" , "init" , "--dest-dir" , "." )
436
416
require .NoError (t , err )
417
+ _ , _ , err = cli .Run ("config" , "set" , "daemon.port" , "50051" , "--config-file" , "arduino-cli.yaml" )
418
+ require .NoError (t , err )
437
419
438
420
// Verifies default value
439
421
stdout , _ , err := cli .Run ("config" , "dump" , "--json" , "--config-file" , "arduino-cli.yaml" )
@@ -542,6 +524,8 @@ func TestRemoveOnUnsupportedKey(t *testing.T) {
542
524
// Create a config file
543
525
_ , _ , err := cli .Run ("config" , "init" , "--dest-dir" , "." )
544
526
require .NoError (t , err )
527
+ _ , _ , err = cli .Run ("config" , "set" , "daemon.port" , "50051" , "--config-file" , "arduino-cli.yaml" )
528
+ require .NoError (t , err )
545
529
546
530
// Verifies default value
547
531
stdout , _ , err := cli .Run ("config" , "dump" , "--json" , "--config-file" , "arduino-cli.yaml" )
@@ -700,7 +684,7 @@ func TestSetStringWithSingleArgument(t *testing.T) {
700
684
// Verifies default state
701
685
stdout , _ , err := cli .Run ("config" , "dump" , "--json" , "--config-file" , "arduino-cli.yaml" )
702
686
require .NoError (t , err )
703
- requirejson .Query (t , stdout , ". config | .logging | .level" , " \" info \" " )
687
+ requirejson .NotContains (t , stdout , `{" config":{"logging":{"level"}}}` )
704
688
705
689
// Changes value
706
690
_ , _ , err = cli .Run ("config" , "set" , "logging.level" , "trace" , "--config-file" , "arduino-cli.yaml" )
@@ -723,12 +707,12 @@ func TestSetStringWithMultipleArguments(t *testing.T) {
723
707
// Verifies default state
724
708
stdout , _ , err := cli .Run ("config" , "dump" , "--json" , "--config-file" , "arduino-cli.yaml" )
725
709
require .NoError (t , err )
726
- requirejson .Query (t , stdout , ". config | .logging | .level" , " \" info \" " )
710
+ requirejson .NotContains (t , stdout , `{" config":{"logging":{"level"}}}` )
727
711
728
712
// Tries to change value
729
713
_ , stderr , err := cli .Run ("config" , "set" , "logging.level" , "trace" , "debug" )
730
714
require .Error (t , err )
731
- require .Contains (t , string (stderr ), "Can't set multiple values in key logging.level" )
715
+ require .Contains (t , string (stderr ), "Error setting value: invalid type for key ' logging.level': invalid conversion, got array but want string " )
732
716
}
733
717
734
718
func TestSetBoolWithSingleArgument (t * testing.T ) {
@@ -742,7 +726,7 @@ func TestSetBoolWithSingleArgument(t *testing.T) {
742
726
// Verifies default state
743
727
stdout , _ , err := cli .Run ("config" , "dump" , "--json" , "--config-file" , "arduino-cli.yaml" )
744
728
require .NoError (t , err )
745
- requirejson .Query (t , stdout , ". config | . library | .enable_unsafe_install" , "false" )
729
+ requirejson .NotContains (t , stdout , `{" config": {" library": {"enable_unsafe_install"}}}` )
746
730
747
731
// Changes value
748
732
_ , _ , err = cli .Run ("config" , "set" , "library.enable_unsafe_install" , "true" , "--config-file" , "arduino-cli.yaml" )
@@ -761,6 +745,8 @@ func TestSetBoolWithMultipleArguments(t *testing.T) {
761
745
// Create a config file
762
746
_ , _ , err := cli .Run ("config" , "init" , "--dest-dir" , "." )
763
747
require .NoError (t , err )
748
+ _ , _ , err = cli .Run ("config" , "set" , "library.enable_unsafe_install" , "false" , "--config-file" , "arduino-cli.yaml" )
749
+ require .NoError (t , err )
764
750
765
751
// Verifies default state
766
752
stdout , _ , err := cli .Run ("config" , "dump" , "--json" , "--config-file" , "arduino-cli.yaml" )
@@ -770,7 +756,7 @@ func TestSetBoolWithMultipleArguments(t *testing.T) {
770
756
// Changes value
771
757
_ , stderr , err := cli .Run ("config" , "set" , "library.enable_unsafe_install" , "true" , "foo" , "--config-file" , "arduino-cli.yaml" )
772
758
require .Error (t , err )
773
- require .Contains (t , string (stderr ), "Can't set multiple values in key library.enable_unsafe_install" )
759
+ require .Contains (t , string (stderr ), "Error setting value: invalid type for key ' library.enable_unsafe_install': invalid conversion, got array but want bool " )
774
760
}
775
761
776
762
func TestDelete (t * testing.T ) {
@@ -780,6 +766,8 @@ func TestDelete(t *testing.T) {
780
766
// Create a config file
781
767
_ , _ , err := cli .Run ("config" , "init" , "--dest-dir" , "." )
782
768
require .NoError (t , err )
769
+ _ , _ , err = cli .Run ("config" , "set" , "library.enable_unsafe_install" , "false" , "--config-file" , "arduino-cli.yaml" )
770
+ require .NoError (t , err )
783
771
784
772
// Verifies default state
785
773
stdout , _ , err := cli .Run ("config" , "dump" , "--json" , "--config-file" , "arduino-cli.yaml" )
@@ -824,6 +812,8 @@ func TestGet(t *testing.T) {
824
812
// Create a config file
825
813
_ , _ , err := cli .Run ("config" , "init" , "--dest-dir" , "." )
826
814
require .NoError (t , err )
815
+ _ , _ , err = cli .Run ("config" , "set" , "daemon.port" , "50051" , "--config-file" , "arduino-cli.yaml" )
816
+ require .NoError (t , err )
827
817
828
818
// Verifies default state
829
819
stdout , _ , err := cli .Run ("config" , "dump" , "--json" , "--config-file" , "arduino-cli.yaml" )
@@ -843,17 +833,18 @@ func TestGet(t *testing.T) {
843
833
// Get undefined key
844
834
_ , stderr , err := cli .Run ("config" , "get" , "foo" , "--json" , "--config-file" , "arduino-cli.yaml" )
845
835
require .Error (t , err )
846
- requirejson .Contains (t , stderr , `{"error":"Cannot get the configuration key foo: key not found in settings "}` )
836
+ requirejson .Contains (t , stderr , `{"error":"Cannot get the configuration key foo: key foo not found"}` )
847
837
}
848
838
849
839
func TestInitializationOrderOfConfigThroughFlagAndEnv (t * testing.T ) {
850
840
env , cli := integrationtest .CreateArduinoCLIWithEnvironment (t )
851
841
defer env .CleanUp ()
852
842
853
843
tmp := t .TempDir ()
854
- cliConfig , envConfig := paths .New (filepath .Join (tmp , "cli.yaml" )), paths .New (filepath .Join (tmp , "env.yaml" ))
855
- cliConfig .WriteFile ([]byte (`cli-test: "test"` ))
856
- envConfig .WriteFile ([]byte (`env-test: "test"` ))
844
+ cliConfig := paths .New (filepath .Join (tmp , "cli.yaml" ))
845
+ cliConfig .WriteFile ([]byte (`locale: "test"` ))
846
+ envConfig := paths .New (filepath .Join (tmp , "env.yaml" ))
847
+ envConfig .WriteFile ([]byte (`locale: "test2"` ))
857
848
858
849
// No flag nor env specified.
859
850
stdout , _ , err := cli .Run ("config" , "dump" , "--json" )
@@ -863,16 +854,16 @@ func TestInitializationOrderOfConfigThroughFlagAndEnv(t *testing.T) {
863
854
// Flag specified
864
855
stdout , _ , err = cli .Run ("config" , "dump" , "--config-file" , cliConfig .String (), "--json" )
865
856
require .NoError (t , err )
866
- requirejson .Contains (t , stdout , `{"config":{ "cli-test ": "test" }}` )
857
+ requirejson .Contains (t , stdout , `{"config":{ "locale ": "test" }}` )
867
858
868
859
// Env specified
869
860
customEnv := map [string ]string {"ARDUINO_CONFIG_FILE" : envConfig .String ()}
870
861
stdout , _ , err = cli .RunWithCustomEnv (customEnv , "config" , "dump" , "--json" )
871
862
require .NoError (t , err )
872
- requirejson .Contains (t , stdout , `{"config":{ "env-test ": "test " }}` )
863
+ requirejson .Contains (t , stdout , `{"config":{ "locale ": "test2 " }}` )
873
864
874
865
// Flag and env specified, flag takes precedence
875
866
stdout , _ , err = cli .RunWithCustomEnv (customEnv , "config" , "dump" , "--config-file" , cliConfig .String (), "--json" )
876
867
require .NoError (t , err )
877
- requirejson .Contains (t , stdout , `{"config":{ "cli-test ": "test" }}` )
868
+ requirejson .Contains (t , stdout , `{"config":{ "locale ": "test" }}` )
878
869
}
0 commit comments