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

Sign up
Appearance settings

Commit 74a99aa

Browse files
Allow empty configuration merging (#2432)
* Enable empty configuration merging * Test that a default configuration is correctly deleted * Reset config after every merge test
1 parent bd02844 commit 74a99aa

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

‎commands/daemon/settings.go‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,13 @@ func (s *ArduinoCoreServerImpl) SettingsMerge(ctx context.Context, req *rpc.Sett
7979
// Set each value individually.
8080
// This is done because Viper ignores empty strings or maps when
8181
// using the MergeConfigMap function.
82+
updatedSettings := configuration.Init("")
8283
for k, v := range mapped {
83-
configuration.Settings.Set(k, v)
84+
updatedSettings.Set(k, v)
8485
}
86+
configPath := configuration.Settings.ConfigFileUsed()
87+
updatedSettings.SetConfigFile(configPath)
88+
configuration.Settings = updatedSettings
8589

8690
return &rpc.SettingsMergeResponse{}, nil
8791
}

‎commands/daemon/settings_test.go‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,13 @@ func TestMerge(t *testing.T) {
8181
require.Equal(t, "", configuration.Settings.GetString("foo"))
8282
require.Equal(t, false, configuration.Settings.GetBool("sketch.always_export_binaries"))
8383

84+
bulkSettings = `{"network": {}}`
85+
res, err = svc.SettingsMerge(context.Background(), &rpc.SettingsMergeRequest{JsonData: bulkSettings})
86+
require.NotNil(t, res)
87+
require.NoError(t, err)
88+
89+
require.Equal(t, "", configuration.Settings.GetString("proxy"))
90+
8491
reset()
8592
}
8693

@@ -113,6 +120,8 @@ func TestGetMergedValue(t *testing.T) {
113120
res, err = svc.SettingsGetValue(context.Background(), key)
114121
require.NoError(t, err)
115122
require.Equal(t, `"bar"`, res.GetJsonData())
123+
124+
reset()
116125
}
117126

118127
func TestGetValueNotFound(t *testing.T) {

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /