// 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) } }