File size: 1,212 Bytes
6bc074c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | package handler
import (
"testing"
"time"
)
func TestCacheTrackerFirstSeenIsCreation(t *testing.T) {
ct := &cacheTracker{seen: make(map[string]time.Time), ttl: 5 * time.Minute}
written, cached := ct.record("conv1", "system instructions", "user input")
if written == 0 {
t.Fatalf("expected cache_write_tokens > 0 on first sight, got %d", written)
}
if cached != 0 {
t.Fatalf("expected cached_tokens = 0 on first sight, got %d", cached)
}
}
func TestCacheTrackerSecondSeenIsRead(t *testing.T) {
ct := &cacheTracker{seen: make(map[string]time.Time), ttl: 5 * time.Minute}
ct.record("conv1", "system instructions", "user input")
written, cached := ct.record("conv1", "system instructions", "user input")
if cached == 0 {
t.Fatalf("expected cached_tokens > 0 on reuse, got %d", cached)
}
if written != 0 {
t.Fatalf("expected cache_write_tokens = 0 on reuse, got %d", written)
}
}
func TestCacheTrackerEmptyInputIsNoop(t *testing.T) {
ct := &cacheTracker{seen: make(map[string]time.Time), ttl: 5 * time.Minute}
written, cached := ct.record("conv1", "", "")
if cached != 0 || written != 0 {
t.Fatalf("expected zero cache for empty input, got cached=%d written=%d", cached, written)
}
}
|