ScuttleBot

scuttlebot / internal / bots / bridge / bridge_test.go
Blame History Raw 56 lines
1
package bridge
2
3
import (
4
"testing"
5
"time"
6
)
7
8
func TestUsersFiltersAndPrunesExpiredWebUsers(t *testing.T) {
9
b := &Bot{
10
nick: "bridge",
11
webUserTTL: 5 * time.Minute,
12
webUsers: map[string]map[string]time.Time{
13
"#general": {
14
"recent-user": time.Now().Add(-2 * time.Minute),
15
"stale-user": time.Now().Add(-10 * time.Minute),
16
},
17
},
18
}
19
20
got := b.Users("#general")
21
if len(got) != 1 || got[0] != "recent-user" {
22
t.Fatalf("Users() = %v, want [recent-user]", got)
23
}
24
25
if _, ok := b.webUsers["#general"]["stale-user"]; ok {
26
t.Fatalf("stale-user was not pruned from webUsers")
27
}
28
}
29
30
func TestSetWebUserTTLDefaultsNonPositiveValues(t *testing.T) {
31
b := &Bot{}
32
33
b.SetWebUserTTL(0)
34
if b.webUserTTL != defaultWebUserTTL {
35
t.Fatalf("SetWebUserTTL(0) = %v, want %v", b.webUserTTL, defaultWebUserTTL)
36
}
37
38
b.SetWebUserTTL(-1 * time.Minute)
39
if b.webUserTTL != defaultWebUserTTL {
40
t.Fatalf("SetWebUserTTL(-1m) = %v, want %v", b.webUserTTL, defaultWebUserTTL)
41
}
42
}
43
44
func TestTouchUserMarksNickActive(t *testing.T) {
45
b := &Bot{webUsers: make(map[string]map[string]time.Time)}
46
47
b.TouchUser("#general", "codex-test")
48
49
if b.webUsers["#general"] == nil {
50
t.Fatal("TouchUser did not initialize channel map")
51
}
52
if _, ok := b.webUsers["#general"]["codex-test"]; !ok {
53
t.Fatal("TouchUser did not record nick")
54
}
55
}
56

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button