package hotkey import "testing" func TestParseAndFormat(t *testing.T) { cases := []struct { in string want string }{ {"Ctrl+Alt+G", "Ctrl+Alt+G"}, {" alt + shift + f5", "Alt+Shift+F5"}, {"ctrl+1", "Ctrl+1"}, {"win+space", "Win+Space"}, } for _, c := range cases { got, err := Parse(c.in) if err != nil { t.Fatalf("Parse(%q): %v", c.in, err) } if Format(got) != c.want { t.Errorf("Parse+Format(%q) = %q, want %q", c.in, Format(got), c.want) } } } func TestParseRejectsMissingModifier(t *testing.T) { if _, err := Parse("G"); err == nil { t.Error("expected error for missing modifier") } } func TestParseRejectsUnknownKey(t *testing.T) { if _, err := Parse("Ctrl+banana"); err == nil { t.Error("expected error for unknown base key") } } func TestParseEmpty(t *testing.T) { if _, err := Parse(" "); err != ErrEmpty { t.Errorf("expected ErrEmpty, got %v", err) } }