fix: unambiguous repo key names, clearer config and key names, and a newer lazysecrets's files no longer stop an older one (#66)
Changes that would break configs or links once people use lazysecrets, made while nobody does yet. - **Repo key names**: a dot or bracket inside a key is escaped (`app\.name`), so links to it resolve to that key and not to `app` → `name`. Dotenv files are flat, so their names stay as they are. - **Config**: `updates.updateSources` is now `updates.sources`. A negative provider timeout, or `--timeout` of 0 or less, is an error instead of making every request fail. - **Keybindings**: `lists.share` is now `lists.copyLink`, `lists.search` is `lists.goTo` and `lists.enter` is `lists.open`, matching what they do. - **Version skew**, e.g. a lazysecrets.nvim theme file made for a newer lazysecrets: - an unknown theme role is skipped with a warning instead of stopping startup; - a state file from a newer version is read but not saved to, with a warning; - a link with an unknown provider suggests `lazysecrets update`. Reviewed-on: #66 Co-authored-by: Karl-Einar Bergstrøm <karl-einarb@outlook.com>
This commit was merged in pull request #66.
This commit is contained in:
1 parent
e28328ef82
commit
a81fcaa5a6
16 files changed
+189
-58
No files matched your search
@@ -44,19 +44,29 @@ func TestFromTheme(t *testing.T) {
|
||||
|
||||
func TestFromThemeRejectsMistakes(t *testing.T) {
|
||||
for name, theme := range map[string]map[string][]string{
|
||||
"role": {"activeBorder": {"red"}},
|
||||
"colour": {"errorColor": {"redish"}},
|
||||
"hex": {"errorColor": {"#fff"}},
|
||||
"palette": {"errorColor": {"300"}},
|
||||
} {
|
||||
if _, _, err := FromTheme(theme); err == nil {
|
||||
t.Errorf("%s: no error", name)
|
||||
} else if name == "role" && !strings.Contains(err.Error(), "activeBorderColor") {
|
||||
t.Errorf("unknown role error should list the known ones: %v", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestUnknownRolesSkipped(t *testing.T) {
|
||||
theme := map[string][]string{"activeBorder": {"red"}, "errorColor": {"red"}}
|
||||
if _, _, err := FromTheme(theme); err != nil {
|
||||
t.Errorf("unknown role failed the theme: %v", err)
|
||||
}
|
||||
if w := Unknown(theme); !strings.Contains(w, "unknown activeBorder ") || strings.Contains(w, "errorColor") {
|
||||
t.Errorf("warning = %q", w)
|
||||
}
|
||||
if w := Unknown(map[string][]string{"errorColor": {"red"}}); w != "" {
|
||||
t.Errorf("warning for known roles: %q", w)
|
||||
}
|
||||
}
|
||||
|
||||
func TestEmptyThemeIsDefault(t *testing.T) {
|
||||
st, fg, err := FromTheme(nil)
|
||||
if err != nil || fg != nil || st.Selected.GetReverse() || st.Selected.GetBackground() != lipgloss.BrightBlack {
|
||||
|
||||
Reference in new issue
Block a user