1package fetcher
2
3import (
4 "testing"
5 "time"
6
7 "github.com/floatpane/matcha/backend"
8)
9
10func TestBuildSearchCriteria(t *testing.T) {
11 since := time.Date(2026, 1, 1, 0, 0, 0, 0, time.UTC)
12 before := time.Date(2026, 2, 1, 0, 0, 0, 0, time.UTC)
13 c := buildSearchCriteria(backend.SearchQuery{
14 From: "alice@example.com", To: "bob@example.com", Subject: "invoice",
15 Body: "paid", Since: since, Before: before, LargerThan: 4096,
16 })
17
18 if len(c.Header) != 3 || c.Header[0].Key != "From" || c.Header[1].Key != "To" || c.Header[2].Key != "Subject" {
19 t.Fatalf("headers = %+v", c.Header)
20 }
21 if len(c.Body) != 1 || c.Body[0] != "paid" || !c.Since.Equal(since) || !c.Before.Equal(before) || c.Larger != 4096 {
22 t.Fatalf("criteria = %+v", c)
23 }
24 if searchLimit(backend.SearchQuery{}) != 100 || searchLimit(backend.SearchQuery{Limit: 25}) != 25 {
25 t.Fatal("unexpected search limit")
26 }
27}