28 lines
849 B
Go
28 lines
849 B
Go
package api
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestStatsRange(t *testing.T) {
|
|
now := time.Date(2026, 9, 21, 22, 30, 0, 0, time.UTC) // 22 сентября 01:30 по Москве
|
|
from, to, ok := statsRange(map[string][]string{}, now)
|
|
if !ok || from.Format("2006-01-02") != "2026-08-24" || to.Format("2006-01-02") != "2026-09-23" {
|
|
t.Fatalf("default range = %v..%v ok=%v", from, to, ok)
|
|
}
|
|
from, to, ok = statsRange(map[string][]string{"from": {"2026-09-01"}, "to": {"2026-09-01"}}, now)
|
|
if !ok || to.Sub(from) != 24*time.Hour {
|
|
t.Fatalf("one day range = %v..%v", from, to)
|
|
}
|
|
for _, q := range []map[string][]string{
|
|
{"from": {"01.09.2026"}},
|
|
{"from": {"2026-09-10"}, "to": {"2026-09-01"}},
|
|
{"from": {"2020-01-01"}, "to": {"2026-01-01"}},
|
|
} {
|
|
if _, _, ok := statsRange(q, now); ok {
|
|
t.Errorf("range %v accepted", q)
|
|
}
|
|
}
|
|
}
|