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}