Type searching added to applications menu.
This commit is contained in:
1 parent
d3bcbbeacf
commit
f88e5b81a2
12 files changed
+162
-15
No files matched your search
@@ -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.
|
||||
|
||||
Reference in new issue
Block a user