github.com/wtfutil/wtf@v0.43.0/modules/feedreader/widget_test.go (about) 1 package feedreader 2 3 import ( 4 "testing" 5 6 "github.com/mmcdole/gofeed" 7 "gotest.tools/assert" 8 ) 9 10 func Test_getShowText(t *testing.T) { 11 tests := []struct { 12 name string 13 feedItem *FeedItem 14 showType ShowType 15 expected string 16 }{ 17 { 18 name: "with nil FeedItem", 19 feedItem: nil, 20 showType: SHOW_TITLE, 21 expected: "", 22 }, 23 { 24 name: "with plain title", 25 feedItem: &FeedItem{ 26 item: &gofeed.Item{Title: "Cats and Dogs"}, 27 }, 28 showType: SHOW_TITLE, 29 expected: "[white]Cats and Dogs", 30 }, 31 { 32 name: "with escaped title", 33 feedItem: &FeedItem{ 34 item: &gofeed.Item{Title: "<Cats and Dogs>"}, 35 }, 36 showType: SHOW_TITLE, 37 expected: "[white]<Cats and Dogs>", 38 }, 39 { 40 name: "with unescaped title", 41 feedItem: &FeedItem{ 42 item: &gofeed.Item{Title: "<Cats and Dogs>"}, 43 }, 44 showType: SHOW_TITLE, 45 expected: "[white]<Cats and Dogs>", 46 }, 47 { 48 name: "with source-title", 49 feedItem: &FeedItem{ 50 sourceTitle: "WTF", 51 item: &gofeed.Item{Title: "<Cats and Dogs>"}, 52 }, 53 showType: SHOW_TITLE, 54 expected: "[green]WTF [white]<Cats and Dogs>", 55 }, 56 { 57 name: "with link", 58 feedItem: &FeedItem{ 59 item: &gofeed.Item{Title: "Cats and Dogs", Link: "https://cats.com/dog.xml"}, 60 }, 61 showType: SHOW_LINK, 62 expected: "https://cats.com/dog.xml", 63 }, 64 } 65 66 for _, tt := range tests { 67 t.Run(tt.name, func(t *testing.T) { 68 widget := &Widget{ 69 settings: &Settings{ 70 colors: colors{ 71 source: "green", 72 publishDate: "orange", 73 }, 74 showSource: true, 75 }, 76 showType: tt.showType, 77 } 78 79 actual := widget.getShowText(tt.feedItem, "white") 80 81 assert.Equal(t, tt.expected, actual) 82 }) 83 } 84 }