Type searching added to applications menu.

This commit is contained in:
Storm Dragon committed 2026-10-28 04:04:55 -04:00
1 parent d3bcbbeacf
commit f88e5b81a2
12 files changed
+162 -15

No files matched your search

+30 -2
View File
@@ -118,8 +118,17 @@ func TestApplicationsMenuActivatesOnlyOnEnterAndReleasesCapture(t *testing.T) {
if !a.ui.active || !strings.Contains(voice.messages[len(voice.messages)-1], "Default") {
t.Fatal(voice.messages)
}
a.ui.handle(interaction.Key{Name: "down"})
a.ui.handle(interaction.Key{Name: "down"})
for _, step := range []struct{ key, want string }{
{"down", "NetworkManager"},
{"down", "Ninjam"},
{"down", "Default"},
{"up", "Ninjam"},
} {
a.ui.handle(interaction.Key{Name: step.key})
if got := voice.messages[len(voice.messages)-1]; got != step.want {
t.Fatalf("%s announcement = %q, want %q", step.key, got, step.want)
}
}
if len(a.overrides) != 0 {
t.Fatal("navigation activated override")
}
@@ -155,6 +164,25 @@ func TestApplicationsMenuActivatesOnlyOnEnterAndReleasesCapture(t *testing.T) {
}
}
func TestApplicationsMenuPrefixSearch(t *testing.T) {
a, voice := persistence_application(t, true)
override_read(t, a, override_screen(1, "ninjam"))
a.open_applications()
for _, step := range []struct{ text, want string }{{"n", "NetworkManager"}, {"i", "Ninjam"}} {
a.ui.handle(interaction.Key{Text: step.text})
if got := voice.messages[len(voice.messages)-1]; got != step.want {
t.Fatalf("typed %q: got %q, want %q", step.text, got, step.want)
}
if len(a.overrides) != 0 || !a.ui.active {
t.Fatal("search activated an override or closed the menu")
}
}
a.ui.handle(interaction.Key{Name: "enter"})
if a.ui.active || a.overrides[1] == nil || a.overrides[1].id != "ninjam" {
t.Fatal("Enter did not activate the search result")
}
}
func TestOverrideCannotSaveOrContaminateDraftAndRestoresSession(t *testing.T) {
a, voice := persistence_application(t, true)
a.handle_command(command.NextQuickValue) // Preserve a pre-existing unsaved adjustment.