Files

39 lines
1.2 KiB
Go

// Copyright (c) 2026 Storm Dragon
// SPDX-License-Identifier: GPL-3.0-or-later
package tabbed
import "testing"
func TestSessionCatalogIsolationAndLiteralGridSearch(t *testing.T) {
form := Form{Type: TabForm, Title: "Picker", Tabs: []Tab{{ID: "items", Label: "Items", Controls: []Control{{ID: "grid", Label: "Grid", Kind: Grid, Columns: 2, Choices: []Choice{{ID: "a", Label: "Alpha"}, {ID: "b", Label: "Beta", Literal: true}}}}}}}
translated, err := NewSession(form, Messages{Translate: func(text string) string {
if text == "Alpha" {
return "Translated"
}
if text == "Beta" {
return "Wrong"
}
return text
}})
if err != nil {
t.Fatal(err)
}
english, err := New_session(form)
if err != nil {
t.Fatal(err)
}
translated.Handle(Key{Name: "tab"})
english.Handle(Key{Name: "tab"})
if got := translated.Handle(Key{Text: "Trans"}).Speech; got != "Search Trans. Translated. row 1, column 1. 1 of 1" {
t.Fatal(got)
}
if got := english.Handle(Key{Text: "Al"}).Speech; got != "Search Al. Alpha. row 1, column 1. 1 of 1" {
t.Fatal(got)
}
translated.Handle(Key{Name: "backspace", Ctrl: true})
if got := translated.Handle(Key{Text: "Beta"}).Speech; got != "Search Beta. Beta. row 1, column 1. 1 of 1" {
t.Fatal(got)
}
}