Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit ad8dbd9

Browse filesBrowse files
committed
Fixed all config* integration test
1 parent 921fa61 commit ad8dbd9
Copy full SHA for ad8dbd9

File tree

Expand file treeCollapse file tree

2 files changed

+54
-60
lines changed
Filter options
Expand file treeCollapse file tree

2 files changed

+54
-60
lines changed

‎internal/cli/configuration/defaults.go

Copy file name to clipboardExpand all lines: internal/cli/configuration/defaults.go
+3Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,9 @@ func SetDefaults(settings *Settings) {
6868
// network settings
6969
setKeyTypeSchema("network.proxy", "")
7070
setKeyTypeSchema("network.user_agent_ext", "")
71+
72+
// locale
73+
setDefaultValueAndKeyTypeSchema("locale", "en")
7174
}
7275

7376
// InjectEnvVars change settings based on the environment variables values

‎internal/integrationtest/config/config_test.go

Copy file name to clipboardExpand all lines: internal/integrationtest/config/config_test.go
+51-60Lines changed: 51 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -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

8567
func 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

12993
func TestInitDestAbsolutePath(t *testing.T) {
@@ -289,21 +253,37 @@ func TestAddRemoveSetDeleteOnUnexistingKey(t *testing.T) {
289253
_, _, err := cli.Run("config", "init", "--dest-dir", ".")
290254
require.NoError(t, err)
291255

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":[]} } }`)
295259

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":[]} } }`)
299266

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"]} } }`)
303273

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"]} } }`)
307287
}
308288

309289
func TestAddSingleArgument(t *testing.T) {
@@ -434,6 +414,8 @@ func TestAddOnUnsupportedKey(t *testing.T) {
434414
// Create a config file
435415
_, _, err := cli.Run("config", "init", "--dest-dir", ".")
436416
require.NoError(t, err)
417+
_, _, err = cli.Run("config", "set", "daemon.port", "50051", "--config-file", "arduino-cli.yaml")
418+
require.NoError(t, err)
437419

438420
// Verifies default value
439421
stdout, _, err := cli.Run("config", "dump", "--json", "--config-file", "arduino-cli.yaml")
@@ -542,6 +524,8 @@ func TestRemoveOnUnsupportedKey(t *testing.T) {
542524
// Create a config file
543525
_, _, err := cli.Run("config", "init", "--dest-dir", ".")
544526
require.NoError(t, err)
527+
_, _, err = cli.Run("config", "set", "daemon.port", "50051", "--config-file", "arduino-cli.yaml")
528+
require.NoError(t, err)
545529

546530
// Verifies default value
547531
stdout, _, err := cli.Run("config", "dump", "--json", "--config-file", "arduino-cli.yaml")
@@ -700,7 +684,7 @@ func TestSetStringWithSingleArgument(t *testing.T) {
700684
// Verifies default state
701685
stdout, _, err := cli.Run("config", "dump", "--json", "--config-file", "arduino-cli.yaml")
702686
require.NoError(t, err)
703-
requirejson.Query(t, stdout, ".config | .logging | .level", "\"info\"")
687+
requirejson.NotContains(t, stdout, `{"config":{"logging":{"level"}}}`)
704688

705689
// Changes value
706690
_, _, err = cli.Run("config", "set", "logging.level", "trace", "--config-file", "arduino-cli.yaml")
@@ -723,12 +707,12 @@ func TestSetStringWithMultipleArguments(t *testing.T) {
723707
// Verifies default state
724708
stdout, _, err := cli.Run("config", "dump", "--json", "--config-file", "arduino-cli.yaml")
725709
require.NoError(t, err)
726-
requirejson.Query(t, stdout, ".config | .logging | .level", "\"info\"")
710+
requirejson.NotContains(t, stdout, `{"config":{"logging":{"level"}}}`)
727711

728712
// Tries to change value
729713
_, stderr, err := cli.Run("config", "set", "logging.level", "trace", "debug")
730714
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")
732716
}
733717

734718
func TestSetBoolWithSingleArgument(t *testing.T) {
@@ -742,7 +726,7 @@ func TestSetBoolWithSingleArgument(t *testing.T) {
742726
// Verifies default state
743727
stdout, _, err := cli.Run("config", "dump", "--json", "--config-file", "arduino-cli.yaml")
744728
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"}}}`)
746730

747731
// Changes value
748732
_, _, err = cli.Run("config", "set", "library.enable_unsafe_install", "true", "--config-file", "arduino-cli.yaml")
@@ -761,6 +745,8 @@ func TestSetBoolWithMultipleArguments(t *testing.T) {
761745
// Create a config file
762746
_, _, err := cli.Run("config", "init", "--dest-dir", ".")
763747
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)
764750

765751
// Verifies default state
766752
stdout, _, err := cli.Run("config", "dump", "--json", "--config-file", "arduino-cli.yaml")
@@ -770,7 +756,7 @@ func TestSetBoolWithMultipleArguments(t *testing.T) {
770756
// Changes value
771757
_, stderr, err := cli.Run("config", "set", "library.enable_unsafe_install", "true", "foo", "--config-file", "arduino-cli.yaml")
772758
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")
774760
}
775761

776762
func TestDelete(t *testing.T) {
@@ -780,6 +766,8 @@ func TestDelete(t *testing.T) {
780766
// Create a config file
781767
_, _, err := cli.Run("config", "init", "--dest-dir", ".")
782768
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)
783771

784772
// Verifies default state
785773
stdout, _, err := cli.Run("config", "dump", "--json", "--config-file", "arduino-cli.yaml")
@@ -824,6 +812,8 @@ func TestGet(t *testing.T) {
824812
// Create a config file
825813
_, _, err := cli.Run("config", "init", "--dest-dir", ".")
826814
require.NoError(t, err)
815+
_, _, err = cli.Run("config", "set", "daemon.port", "50051", "--config-file", "arduino-cli.yaml")
816+
require.NoError(t, err)
827817

828818
// Verifies default state
829819
stdout, _, err := cli.Run("config", "dump", "--json", "--config-file", "arduino-cli.yaml")
@@ -843,17 +833,18 @@ func TestGet(t *testing.T) {
843833
// Get undefined key
844834
_, stderr, err := cli.Run("config", "get", "foo", "--json", "--config-file", "arduino-cli.yaml")
845835
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"}`)
847837
}
848838

849839
func TestInitializationOrderOfConfigThroughFlagAndEnv(t *testing.T) {
850840
env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t)
851841
defer env.CleanUp()
852842

853843
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"`))
857848

858849
// No flag nor env specified.
859850
stdout, _, err := cli.Run("config", "dump", "--json")
@@ -863,16 +854,16 @@ func TestInitializationOrderOfConfigThroughFlagAndEnv(t *testing.T) {
863854
// Flag specified
864855
stdout, _, err = cli.Run("config", "dump", "--config-file", cliConfig.String(), "--json")
865856
require.NoError(t, err)
866-
requirejson.Contains(t, stdout, `{"config":{ "cli-test": "test" }}`)
857+
requirejson.Contains(t, stdout, `{"config":{ "locale": "test" }}`)
867858

868859
// Env specified
869860
customEnv := map[string]string{"ARDUINO_CONFIG_FILE": envConfig.String()}
870861
stdout, _, err = cli.RunWithCustomEnv(customEnv, "config", "dump", "--json")
871862
require.NoError(t, err)
872-
requirejson.Contains(t, stdout, `{"config":{ "env-test": "test" }}`)
863+
requirejson.Contains(t, stdout, `{"config":{ "locale": "test2" }}`)
873864

874865
// Flag and env specified, flag takes precedence
875866
stdout, _, err = cli.RunWithCustomEnv(customEnv, "config", "dump", "--config-file", cliConfig.String(), "--json")
876867
require.NoError(t, err)
877-
requirejson.Contains(t, stdout, `{"config":{ "cli-test": "test" }}`)
868+
requirejson.Contains(t, stdout, `{"config":{ "locale": "test" }}`)
878869
}

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.