src.elv.sh@v0.21.0-dev.0.20240515223629-06979efb9a2a/pkg/edit/filter/highlight_test.go (about) 1 package filter_test 2 3 import ( 4 "reflect" 5 "testing" 6 7 "src.elv.sh/pkg/edit/filter" 8 "src.elv.sh/pkg/ui" 9 ) 10 11 var highlightTests = []struct { 12 name string 13 q string 14 want ui.Text 15 }{ 16 { 17 name: "quoted string", 18 q: `'a'`, 19 want: ui.T(`'a'`, ui.FgYellow), 20 }, 21 { 22 name: "unsupported primary", 23 q: `$a`, 24 want: ui.T(`$a`, ui.FgRed), 25 }, 26 { 27 name: "supported list form", 28 q: `[re a]`, 29 want: ui.Concat( 30 ui.T("[", ui.Bold), ui.T("re", ui.FgGreen), 31 ui.T(" a"), ui.T("]", ui.Bold)), 32 }, 33 { 34 name: "empty list form", 35 q: `[]`, 36 want: ui.T("[]", ui.FgRed), 37 }, 38 { 39 name: "unsupported list form", 40 q: `[bad]`, 41 want: ui.Concat( 42 ui.T("[", ui.Bold), ui.T("bad", ui.FgRed), ui.T("]", ui.Bold)), 43 }, 44 { 45 name: "unsupported primary as head of list form", 46 q: `[$a]`, 47 want: ui.Concat( 48 ui.T("[", ui.Bold), ui.T("$a", ui.FgRed), ui.T("]", ui.Bold)), 49 }, 50 } 51 52 func TestHighlight(t *testing.T) { 53 for _, test := range highlightTests { 54 t.Run(test.name, func(t *testing.T) { 55 got, _ := filter.Highlight(test.q) 56 if !reflect.DeepEqual(got, test.want) { 57 t.Errorf("got %s, want %s", got, test.want) 58 } 59 }) 60 } 61 }