@@ -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 ) {
@@ -290,21 +254,37 @@ func TestAddRemoveSetDeleteOnUnexistingKey(t *testing.T) {
290
254
_ , _ , err := cli .Run ("config" , "init" , "--dest-dir" , "." )
291
255
require .NoError (t , err )
292
256
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":[]} } }` )
296
260
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":[]} } }` )
300
267
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"]} } }` )
304
274
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"]} } }` )
308
288
}
309
289
310
290
func TestAddSingleArgument (t * testing.T ) {
@@ -435,6 +415,8 @@ func TestAddOnUnsupportedKey(t *testing.T) {
435
415
// Create a config file
436
416
_ , _ , err := cli .Run ("config" , "init" , "--dest-dir" , "." )
437
417
require .NoError (t , err )
418
+ _ , _ , err = cli .Run ("config" , "set" , "daemon.port" , "50051" , "--config-file" , "arduino-cli.yaml" )
419
+ require .NoError (t , err )
438
420
439
421
// Verifies default value
440
422
stdout , _ , err := cli .Run ("config" , "dump" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
@@ -543,6 +525,8 @@ func TestRemoveOnUnsupportedKey(t *testing.T) {
543
525
// Create a config file
544
526
_ , _ , err := cli .Run ("config" , "init" , "--dest-dir" , "." )
545
527
require .NoError (t , err )
528
+ _ , _ , err = cli .Run ("config" , "set" , "daemon.port" , "50051" , "--config-file" , "arduino-cli.yaml" )
529
+ require .NoError (t , err )
546
530
547
531
// Verifies default value
548
532
stdout , _ , err := cli .Run ("config" , "dump" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
@@ -701,7 +685,7 @@ func TestSetStringWithSingleArgument(t *testing.T) {
701
685
// Verifies default state
702
686
stdout , _ , err := cli .Run ("config" , "dump" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
703
687
require .NoError (t , err )
704
- requirejson .Query (t , stdout , ". config | .logging | .level" , " \" info \" " )
688
+ requirejson .NotContains (t , stdout , `{" config":{"logging":{"level"}}}` )
705
689
706
690
// Changes value
707
691
_ , _ , err = cli .Run ("config" , "set" , "logging.level" , "trace" , "--config-file" , "arduino-cli.yaml" )
@@ -724,12 +708,12 @@ func TestSetStringWithMultipleArguments(t *testing.T) {
724
708
// Verifies default state
725
709
stdout , _ , err := cli .Run ("config" , "dump" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
726
710
require .NoError (t , err )
727
- requirejson .Query (t , stdout , ". config | .logging | .level" , " \" info \" " )
711
+ requirejson .NotContains (t , stdout , `{" config":{"logging":{"level"}}}` )
728
712
729
713
// Tries to change value
730
714
_ , stderr , err := cli .Run ("config" , "set" , "logging.level" , "trace" , "debug" )
731
715
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 " )
733
717
}
734
718
735
719
func TestSetBoolWithSingleArgument (t * testing.T ) {
@@ -743,7 +727,7 @@ func TestSetBoolWithSingleArgument(t *testing.T) {
743
727
// Verifies default state
744
728
stdout , _ , err := cli .Run ("config" , "dump" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
745
729
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"}}}` )
747
731
748
732
// Changes value
749
733
_ , _ , err = cli .Run ("config" , "set" , "library.enable_unsafe_install" , "true" , "--config-file" , "arduino-cli.yaml" )
@@ -762,6 +746,8 @@ func TestSetBoolWithMultipleArguments(t *testing.T) {
762
746
// Create a config file
763
747
_ , _ , err := cli .Run ("config" , "init" , "--dest-dir" , "." )
764
748
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 )
765
751
766
752
// Verifies default state
767
753
stdout , _ , err := cli .Run ("config" , "dump" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
@@ -771,7 +757,7 @@ func TestSetBoolWithMultipleArguments(t *testing.T) {
771
757
// Changes value
772
758
_ , stderr , err := cli .Run ("config" , "set" , "library.enable_unsafe_install" , "true" , "foo" , "--config-file" , "arduino-cli.yaml" )
773
759
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 " )
775
761
}
776
762
777
763
func TestDelete (t * testing.T ) {
@@ -781,6 +767,8 @@ func TestDelete(t *testing.T) {
781
767
// Create a config file
782
768
_ , _ , err := cli .Run ("config" , "init" , "--dest-dir" , "." )
783
769
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 )
784
772
785
773
// Verifies default state
786
774
stdout , _ , err := cli .Run ("config" , "dump" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
@@ -825,6 +813,8 @@ func TestGet(t *testing.T) {
825
813
// Create a config file
826
814
_ , _ , err := cli .Run ("config" , "init" , "--dest-dir" , "." )
827
815
require .NoError (t , err )
816
+ _ , _ , err = cli .Run ("config" , "set" , "daemon.port" , "50051" , "--config-file" , "arduino-cli.yaml" )
817
+ require .NoError (t , err )
828
818
829
819
// Verifies default state
830
820
stdout , _ , err := cli .Run ("config" , "dump" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
@@ -844,17 +834,18 @@ func TestGet(t *testing.T) {
844
834
// Get undefined key
845
835
_ , stderr , err := cli .Run ("config" , "get" , "foo" , "--format" , "json" , "--config-file" , "arduino-cli.yaml" )
846
836
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"}` )
848
838
}
849
839
850
840
func TestInitializationOrderOfConfigThroughFlagAndEnv (t * testing.T ) {
851
841
env , cli := integrationtest .CreateArduinoCLIWithEnvironment (t )
852
842
defer env .CleanUp ()
853
843
854
844
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"` ))
858
849
859
850
// No flag nor env specified.
860
851
stdout , _ , err := cli .Run ("config" , "dump" , "--format" , "json" )
@@ -864,16 +855,16 @@ func TestInitializationOrderOfConfigThroughFlagAndEnv(t *testing.T) {
864
855
// Flag specified
865
856
stdout , _ , err = cli .Run ("config" , "dump" , "--config-file" , cliConfig .String (), "--format" , "json" )
866
857
require .NoError (t , err )
867
- requirejson .Contains (t , stdout , `{"config":{ "cli-test ": "test" }}` )
858
+ requirejson .Contains (t , stdout , `{"config":{ "locale ": "test" }}` )
868
859
869
860
// Env specified
870
861
customEnv := map [string ]string {"ARDUINO_CONFIG_FILE" : envConfig .String ()}
871
862
stdout , _ , err = cli .RunWithCustomEnv (customEnv , "config" , "dump" , "--format" , "json" )
872
863
require .NoError (t , err )
873
- requirejson .Contains (t , stdout , `{"config":{ "env-test ": "test " }}` )
864
+ requirejson .Contains (t , stdout , `{"config":{ "locale ": "test2 " }}` )
874
865
875
866
// Flag and env specified, flag takes precedence
876
867
stdout , _ , err = cli .RunWithCustomEnv (customEnv , "config" , "dump" , "--config-file" , cliConfig .String (), "--format" , "json" )
877
868
require .NoError (t , err )
878
- requirejson .Contains (t , stdout , `{"config":{ "cli-test ": "test" }}` )
869
+ requirejson .Contains (t , stdout , `{"config":{ "locale ": "test" }}` )
879
870
}
0 commit comments