lockbox

password manager
Log | Files | Refs | README | LICENSE

commit 2611dc9d0680e65c8f434440f052c56cd3c5c006
parent 1c36decc72a49eab7de29f9787d0b043110bded9
Author: Sean Enck <sean@ttypty.com>
Date:   Sun,  8 Dec 2024 19:08:46 -0500

more tests for vars/env settings

Diffstat:
Minternal/config/vars_test.go | 92++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------
1 file changed, 61 insertions(+), 31 deletions(-)

diff --git a/internal/config/vars_test.go b/internal/config/vars_test.go @@ -140,46 +140,76 @@ func checkInt(e config.EnvironmentInt, key, text string, def int64, allowZero bo } } -func TestStringsGetDefault(t *testing.T) { - store.Clear() - val := config.EnvPlatform.Get() - if val != "" { - t.Errorf("invalid read: %v", val) - } - val = config.EnvJSONMode.Get() - if val != "hash" { - t.Errorf("invalid read: %v", val) - } - store.SetString("LOCKBOX_PLATFORM", "1") - store.SetString("LOCKBOX_JSON_MODE", "a") - val = config.EnvPlatform.Get() - if val != "1" { - t.Errorf("invalid read: %v", val) - } - val = config.EnvJSONMode.Get() - if val != "a" { - t.Errorf("invalid read: %v", val) - } -} - -func TestStringsArray(t *testing.T) { +func TestTOTPWindows(t *testing.T) { store.Clear() val := config.EnvTOTPColorBetween.AsArray() if slices.Compare(val, config.TOTPDefaultBetween) != 0 { t.Errorf("invalid read: %v", val) } - val = config.EnvClipCopy.AsArray() - if len(val) != 0 { - t.Errorf("invalid read: %v", val) - } - store.SetArray("LOCKBOX_CLIP_COPY_COMMAND", []string{"1"}) store.SetArray("LOCKBOX_TOTP_COLOR_WINDOWS", []string{"1", "2", "3"}) val = config.EnvTOTPColorBetween.AsArray() if len(val) != 3 { t.Errorf("invalid read: %v", val) } - val = config.EnvClipCopy.AsArray() - if len(val) != 1 { - t.Errorf("invalid read: %v", val) +} + +func TestUnsetArrays(t *testing.T) { + store.Clear() + for _, i := range []config.EnvironmentStrings{ + config.EnvClipCopy, + config.EnvClipPaste, + config.EnvPasswordGenWordList, + } { + val := i.AsArray() + if len(val) != 0 { + t.Errorf("invalid array: %v (%s)", val, i.Key()) + } + store.SetArray(i.Key(), []string{"a"}) + val = i.AsArray() + if len(val) != 1 { + t.Errorf("invalid array: %v (%s)", val, i.Key()) + } + } +} + +func TestDefaultStrings(t *testing.T) { + store.Clear() + for k, v := range map[string]config.EnvironmentStrings{ + "totp": config.EnvTOTPEntry, + "hash": config.EnvJSONMode, + "en-US": config.EnvLanguage, + "command": config.EnvPasswordMode, + "{{range $i, $val := .}}{{if $i}}-{{end}}{{$val.Text}}{{end}}": config.EnvPasswordGenTemplate, + } { + val := v.Get() + if val != k { + t.Errorf("invalid string: %s (%s)", val, v.Key()) + } + store.SetString(v.Key(), "TEST") + val = v.Get() + if val != "TEST" { + t.Errorf("invalid string: %s (%s)", val, v.Key()) + } + } +} + +func TestEmptyStrings(t *testing.T) { + store.Clear() + for _, v := range []config.EnvironmentStrings{ + config.EnvPlatform, + config.EnvStore, + config.EnvKeyFile, + config.EnvDefaultModTime, + config.EnvPasswordGenChars, + } { + val := v.Get() + if val != "" { + t.Errorf("invalid string: %s (%s)", val, v.Key()) + } + store.SetString(v.Key(), "TEST") + val = v.Get() + if val != "TEST" { + t.Errorf("invalid string: %s (%s)", val, v.Key()) + } } }