search_test.go

 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}