jmap_search_test.go

 1package jmap
 2
 3import (
 4	"testing"
 5	"time"
 6
 7	jmapclient "git.sr.ht/~rockorager/go-jmap"
 8	"github.com/floatpane/matcha/backend"
 9)
10
11func TestBuildSearchFilter(t *testing.T) {
12	since := time.Date(2026, 1, 1, 0, 0, 0, 0, time.UTC)
13	before := time.Date(2026, 2, 1, 0, 0, 0, 0, time.UTC)
14	f := buildSearchFilter(jmapclient.ID("mailbox-id"), backend.SearchQuery{
15		From: "alice@example.com", To: "bob@example.com", Subject: "invoice",
16		Body: "paid", Since: since, Before: before, LargerThan: 4096,
17	})
18
19	if f.InMailbox != "mailbox-id" || f.From != "alice@example.com" || f.To != "bob@example.com" ||
20		f.Subject != "invoice" || f.Body != "paid" || f.MinSize != 4096 {
21		t.Fatalf("filter = %+v", f)
22	}
23	if f.After == nil || !f.After.Equal(since) || f.Before == nil || !f.Before.Equal(before) {
24		t.Fatalf("date filters = after:%v before:%v", f.After, f.Before)
25	}
26}