~emersion/soju

ref: ce19f76673b5bfd369766f6696e042b0a8df7691 soju/irc_test.go -rw-r--r-- 962 bytes
ce19f766Simon Ser database/postgres: fix inverted networkID check in ListWebPushSubscriptions 4 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package soju

import (
	"testing"
)

func TestIsHighlight(t *testing.T) {
	nick := "SojuUser"
	testCases := []struct {
		name string
		text string
		hl   bool
	}{
		{"noContains", "hi there Soju User!", false},
		{"middle", "hi there SojuUser!", true},
		{"start", "SojuUser: how are you doing?", true},
		{"end", "maybe ask SojuUser", true},
		{"inWord", "but OtherSojuUserSan is a different nick", false},
		{"startWord", "and OtherSojuUser is another different nick", false},
		{"endWord", "and SojuUserSan is yet a different nick", false},
		{"underscore", "and SojuUser_san has nothing to do with me", false},
		{"zeroWidthSpace", "writing S\u200BojuUser shouldn't trigger a highlight", false},
	}

	for _, tc := range testCases {
		tc := tc // capture range variable
		t.Run(tc.name, func(t *testing.T) {
			hl := isHighlight(tc.text, nick)
			if hl != tc.hl {
				t.Errorf("isHighlight(%q, %q) = %v, but want %v", tc.text, nick, hl, tc.hl)
			}
		})
	}
}