Repository navigation
Expand file tree
/
Copy pathsession_test.go
More file actions
74 lines (68 loc) · 2.04 KB
/
Copy pathsession_test.go
File metadata and controls
74 lines (68 loc) · 2.04 KB
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package main
import (
"bytes"
"strings"
"testing"
)
func TestRunSessionHelp(t *testing.T) {
var output bytes.Buffer
if err := runSession([]string{"-h"}, &output); err != nil {
t.Fatal(err)
}
got := output.String()
if !strings.Contains(got, "wcctl sessions [-limit N] [-user USER] [-json] [-keys PATH]") {
t.Fatalf("unexpected session usage:\n%s", got)
}
}
func TestStoredSessionDatabase(t *testing.T) {
user := storedUser{Databases: map[string]storedDatabase{
"/db/session/session.db": {AESKey: "key"},
"/db/message/session.db": {},
}}
path, database, err := storedSessionDatabase(user)
if err != nil {
t.Fatal(err)
}
if path != "/db/session/session.db" || database.AESKey != "key" {
t.Fatalf("unexpected session database: %q %#v", path, database)
}
}
func TestSessionQueryIncludesUnreadAndNoContactMetadata(t *testing.T) {
for _, fragment := range []string{
"FROM SessionTable AS session",
"SessionUnreadStatTable_1",
"SessionUnreadListTable_1",
"SessionNoContactInfoTable",
"ORDER BY session.last_timestamp DESC",
} {
if !strings.Contains(sessionSelect, fragment) {
t.Fatalf("session query is missing %q", fragment)
}
}
}
func TestPrintSessionTable(t *testing.T) {
var output bytes.Buffer
err := printSessionTable(&output, []sessionRecord{{
Username: "wxid_test",
DisplayName: "Test\nUser",
UnreadCount: 3,
LastTimestamp: 1786764461,
LastSenderDisplayName: "Alice",
Summary: "hello\nworld",
}})
if err != nil {
t.Fatal(err)
}
got := output.String()
if !strings.Contains(got, "Test User") || !strings.Contains(got, "Alice") || !strings.Contains(got, "hello world") {
t.Fatalf("unexpected session table:\n%s", got)
}
}
func TestSessionFallbackName(t *testing.T) {
if got := sessionFallbackName(sessionRecord{Username: "wxid_test", NoContactTitle: "Room"}); got != "Room" {
t.Fatalf("fallback name = %q", got)
}
if got := sessionFallbackName(sessionRecord{Username: "wxid_test"}); got != "wxid_test" {
t.Fatalf("fallback username = %q", got)
}
}