39 lines
1.2 KiB
Go
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)
|
|
}
|
|
}
|