mirror of
https://github.com/taigrr/jety.git
synced 2026-04-02 03:19:03 -07:00
refactor(api)!: remove Delete method from public API
Environment variables are unaffected by Delete, making it misleading — callers would expect a key to be fully gone but env vars would still resolve. Sub is the better abstraction for scoped config.
This commit is contained in:
75
jety_test.go
75
jety_test.go
@@ -1555,81 +1555,6 @@ func TestPackageLevelGetInt64(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestDelete(t *testing.T) {
|
||||
cm := NewConfigManager()
|
||||
cm.SetDefault("keep", "yes")
|
||||
cm.SetDefault("remove", "default")
|
||||
cm.Set("remove", "override")
|
||||
|
||||
if !cm.IsSet("remove") {
|
||||
t.Fatal("remove should be set before delete")
|
||||
}
|
||||
|
||||
cm.Delete("remove")
|
||||
|
||||
if cm.IsSet("remove") {
|
||||
t.Error("remove should not be set after delete")
|
||||
}
|
||||
if cm.Get("remove") != nil {
|
||||
t.Error("Get(remove) should return nil after delete")
|
||||
}
|
||||
if cm.GetString("keep") != "yes" {
|
||||
t.Error("keep should be unaffected by deleting remove")
|
||||
}
|
||||
}
|
||||
|
||||
func TestDeleteFromAllLayers(t *testing.T) {
|
||||
dir := t.TempDir()
|
||||
configFile := filepath.Join(dir, "config.toml")
|
||||
if err := os.WriteFile(configFile, []byte(`filekey = "fromfile"`), 0o644); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
cm := NewConfigManager()
|
||||
cm.SetConfigFile(configFile)
|
||||
if err := cm.SetConfigType("toml"); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
cm.SetDefault("filekey", "default")
|
||||
if err := cm.ReadInConfig(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
cm.Set("filekey", "override")
|
||||
|
||||
if cm.GetString("filekey") != "override" {
|
||||
t.Fatal("expected override value before delete")
|
||||
}
|
||||
|
||||
cm.Delete("filekey")
|
||||
|
||||
if cm.IsSet("filekey") {
|
||||
t.Error("filekey should not be set after delete from all layers")
|
||||
}
|
||||
}
|
||||
|
||||
func TestDeleteCaseInsensitive(t *testing.T) {
|
||||
cm := NewConfigManager()
|
||||
cm.Set("MyKey", "value")
|
||||
|
||||
cm.Delete("MYKEY")
|
||||
|
||||
if cm.IsSet("mykey") {
|
||||
t.Error("delete should be case-insensitive")
|
||||
}
|
||||
}
|
||||
|
||||
func TestPackageLevelDelete(t *testing.T) {
|
||||
defaultConfigManager = NewConfigManager()
|
||||
Set("temp", "value")
|
||||
if !IsSet("temp") {
|
||||
t.Fatal("temp should be set")
|
||||
}
|
||||
Delete("temp")
|
||||
if IsSet("temp") {
|
||||
t.Error("temp should not be set after package-level Delete")
|
||||
}
|
||||
}
|
||||
|
||||
func TestSub(t *testing.T) {
|
||||
dir := t.TempDir()
|
||||
configFile := filepath.Join(dir, "config.toml")
|
||||
|
||||
Reference in New Issue
Block a user