Files
mailgoserver/internal/db/count_messages_by_folder_test.go
T

45 lines
1018 B
Go

package db
import (
"testing"
"time"
)
func TestCountMessagesByFolder(t *testing.T) {
d := openTestDB(t)
const mailboxID = int64(1)
insert := func(folder, flags string) {
t.Helper()
if _, err := d.InsertMessage(mailboxID, folder, "", flags, time.Now(), 10, "/dev/null", []byte("nonce"), "a@example.com", "b@example.com", "subj", ""); err != nil {
t.Fatal(err)
}
}
insert("INBOX", "")
insert("INBOX", "")
insert("INBOX", `\Seen`)
insert("Sent", `\Seen`)
totals, err := d.CountMessagesByFolder(mailboxID)
if err != nil {
t.Fatal(err)
}
if totals["INBOX"] != 3 {
t.Errorf("INBOX total = %d, want 3", totals["INBOX"])
}
if totals["Sent"] != 1 {
t.Errorf("Sent total = %d, want 1", totals["Sent"])
}
unread, err := d.CountUnreadByFolder(mailboxID)
if err != nil {
t.Fatal(err)
}
if unread["INBOX"] != 2 {
t.Errorf("INBOX unread = %d, want 2", unread["INBOX"])
}
if _, ok := unread["Sent"]; ok {
t.Errorf("expected Sent to have no unread entry, got %d", unread["Sent"])
}
}