package tui import ( "testing" tea "charm.land/bubbletea/v2" "github.com/stretchr/testify/require" ) func TestKeyCodeClassifiesBubbleTeaV2Events(t *testing.T) { tests := []struct { name string msg tea.KeyPressMsg want rune }{ {name: "enter", msg: tea.KeyPressMsg{Code: tea.KeyEnter}, want: tea.KeyEnter}, {name: "printable text", msg: tea.KeyPressMsg{Code: 'd', Text: "d"}, want: tea.KeyExtended}, {name: "control c", msg: tea.KeyPressMsg{Code: 'c', Mod: tea.ModCtrl}, want: keyCtrlC}, {name: "control up", msg: tea.KeyPressMsg{Code: tea.KeyUp, Mod: tea.ModCtrl}, want: keyCtrlUp}, } for _, test := range tests { t.Run(test.name, func(t *testing.T) { require.Equal(t, test.want, keyCode(test.msg)) }) } } func TestKeyTextRunesPreservesUnicode(t *testing.T) { msg := tea.KeyPressMsg{Code: tea.KeyExtended, Text: "日本語"} require.Equal(t, []rune("日本語"), keyTextRunes(msg)) }