Set user level config values automatically when setting host level config values
This commit is contained in:
parent
38b73e3f85
commit
4f33d88c5f
2 changed files with 46 additions and 0 deletions
|
|
@ -107,7 +107,12 @@ func (c *cfg) Set(hostname, key, value string) {
|
|||
c.cfg.Set([]string{key}, value)
|
||||
return
|
||||
}
|
||||
|
||||
c.cfg.Set([]string{hostsKey, hostname, key}, value)
|
||||
|
||||
if user, _ := c.cfg.Get([]string{hostsKey, hostname, userKey}); user != "" {
|
||||
c.cfg.Set([]string{hostsKey, hostname, usersKey, user, key}, value)
|
||||
}
|
||||
}
|
||||
|
||||
func (c *cfg) Write() error {
|
||||
|
|
|
|||
|
|
@ -163,3 +163,44 @@ func TestFallbackConfig(t *testing.T) {
|
|||
requireKeyWithValue(t, cfg, []string{browserKey}, "")
|
||||
requireNoKey(t, cfg, []string{"unknown"})
|
||||
}
|
||||
|
||||
func TestSetTopLevelKey(t *testing.T) {
|
||||
c := newTestConfig()
|
||||
host := ""
|
||||
key := "top-level-key"
|
||||
val := "top-level-value"
|
||||
c.Set(host, key, val)
|
||||
requireKeyWithValue(t, c.cfg, []string{key}, val)
|
||||
}
|
||||
|
||||
func TestSetHostSpecificKey(t *testing.T) {
|
||||
c := newTestConfig()
|
||||
host := "github.com"
|
||||
key := "host-level-key"
|
||||
val := "host-level-value"
|
||||
c.Set(host, key, val)
|
||||
requireKeyWithValue(t, c.cfg, []string{hostsKey, host, key}, val)
|
||||
}
|
||||
|
||||
func TestSetUserSpecificKey(t *testing.T) {
|
||||
c := newTestConfig()
|
||||
host := "github.com"
|
||||
user := "test-user"
|
||||
c.cfg.Set([]string{hostsKey, host, userKey}, user)
|
||||
|
||||
key := "host-level-key"
|
||||
val := "host-level-value"
|
||||
c.Set(host, key, val)
|
||||
requireKeyWithValue(t, c.cfg, []string{hostsKey, host, key}, val)
|
||||
requireKeyWithValue(t, c.cfg, []string{hostsKey, host, usersKey, user, key}, val)
|
||||
}
|
||||
|
||||
func TestSetUserSpecificKeyNoUserPresent(t *testing.T) {
|
||||
c := newTestConfig()
|
||||
host := "github.com"
|
||||
key := "host-level-key"
|
||||
val := "host-level-value"
|
||||
c.Set(host, key, val)
|
||||
requireKeyWithValue(t, c.cfg, []string{hostsKey, host, key}, val)
|
||||
requireNoKey(t, c.cfg, []string{hostsKey, host, usersKey})
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue