package audit

import (
	"testing"
	"time"
)

func TestAuditLogRetentionPolicyComesFromCatalog(t *testing.T) {
	policy, err := loadAuditLogRetentionPolicy()
	if err != nil {
		t.Fatal(err)
	}
	if policy.maxRows != 0 || policy.maxAge != 0 || policy.maxAgeMonths != 78 {
		t.Fatalf("policy = rows %d age %s months %d, want 0/0s/78", policy.maxRows, policy.maxAge, policy.maxAgeMonths)
	}
}

func TestAuditLogRetentionCalendarMonthCutoffUsesUTC(t *testing.T) {
	location := time.FixedZone("UTC-7", -7*60*60)
	now := time.Date(2026, 7, 31, 17, 30, 0, 0, location)

	cutoff, ok := (auditLogRetentionPolicy{maxAgeMonths: 78}).ageCutoff(now)
	if !ok {
		t.Fatal("ageCutoff() disabled, want calendar-month cutoff")
	}
	want := time.Date(2020, 2, 1, 0, 0, 0, 0, time.UTC)
	if !cutoff.Equal(want) {
		t.Fatalf("ageCutoff() = %s, want %s", cutoff, want)
	}
}
