49 lines
2.1 KiB
Go
49 lines
2.1 KiB
Go
package business
|
|
|
|
import (
|
|
"context"
|
|
"kra/internal/service/dto"
|
|
"testing"
|
|
)
|
|
|
|
func TestRejectIncompleteAndReversedDateRanges(t *testing.T) {
|
|
for _, dates := range [][2]string{{"2026-11-01", ""}, {"", "2026-11-01"}, {"2026-11-03", "2026-11-01"}, {"bad", "2026-11-01"}} {
|
|
if _, err := analyticsRequest(&dto.AnalyticsQuery{BeginTime: dates[0], EndTime: dates[1]}); dates[0] != "" && dates[1] != "" && err == nil {
|
|
t.Errorf("analytics accepted %v", dates)
|
|
}
|
|
for _, spend := range []bool{false, true} {
|
|
_, _, err := ledgerRequest(&dto.LedgerQuery{BeginRegisterTime: dates[0], EndRegisterTime: dates[1], BeginPayTime: dates[0], EndPayTime: dates[1]}, spend)
|
|
if err == nil {
|
|
t.Errorf("ledger accepted %v (spend=%v)", dates, spend)
|
|
}
|
|
}
|
|
}
|
|
for _, dates := range [][2]string{{"", ""}, {"2026-11-01", "2026-11-01"}} {
|
|
if _, err := analyticsRequest(&dto.AnalyticsQuery{BeginTime: dates[0], EndTime: dates[1]}); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if _, _, err := ledgerRequest(&dto.LedgerQuery{BeginPayTime: dates[0], EndPayTime: dates[1]}, true); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
s := &AccountService{}
|
|
if _, err := s.List(context.Background(), &dto.BusinessAccountQuery{BeginTime: "2026-11-01 00:00:00"}); err == nil {
|
|
t.Fatal("account query silently ignored incomplete date range")
|
|
}
|
|
}
|
|
|
|
func TestAnalyticsOpenEndedDatesAndMetricFilters(t *testing.T) {
|
|
no, yes := false, true
|
|
for _, dates := range [][2]string{{"", ""}, {"2026-11-01", ""}, {"", "2026-11-03"}} {
|
|
filter, err := analyticsRequest(&dto.AnalyticsQuery{BeginTime: dates[0], EndTime: dates[1], HasRegister: &no, HasPay: &yes})
|
|
if err != nil || (filter.StartDate == nil) != (dates[0] == "") || (filter.EndDate == nil) != (dates[1] == "") || *filter.HasRegister || !*filter.HasPay {
|
|
t.Fatalf("独立起止日期及是否有数据筛选必须原样传递: %+v %v", filter, err)
|
|
}
|
|
}
|
|
for _, dates := range [][2]string{{"bad", ""}, {"", "bad"}, {"2026-11-03", "2026-11-01"}} {
|
|
if _, err := analyticsRequest(&dto.AnalyticsQuery{BeginTime: dates[0], EndTime: dates[1]}); err == nil {
|
|
t.Fatalf("invalid dates accepted: %v", dates)
|
|
}
|
|
}
|
|
}
|