Files
qitongxue-api/internal/logic/event_public_test.go
2026-09-29 10:57:01 +08:00

73 lines
2.3 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package logic
import (
"testing"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gtime"
"tool-api/internal/consts"
)
// ============================================================================
// 公开活动列表过滤单测(T02.4)
//
// 真实库集成测试(IT_DB 门控):只返已发布(can_query=true);草稿 / 已结束不出现;
// 空结果非报错(list 非 nil)。探测数据用极大假 enterprise_id 隔离,结束即清理。
// ============================================================================
const probeEventEntId = int64(900000000000000002)
func TestEventPublicListOnlyPublished(t *testing.T) {
ctx := requireOrderIT(t)
cleanup := func() {
_, _ = g.DB().Exec(ctx, "DELETE FROM annual_events WHERE enterprise_id=?", probeEventEntId)
}
cleanup()
defer cleanup()
// 草稿
if _, err := g.Model(consts.TableAnnualEvents).Data(g.Map{
"enterprise_id": probeEventEntId, "title": "__probe_draft__",
"status": consts.EventStatusDraft, "created_at": gtime.Now(), "updated_at": gtime.Now(),
}).Insert(); err != nil {
t.Fatalf("insert draft event: %v", err)
}
// 已发布
pubId, err := g.Model(consts.TableAnnualEvents).Data(g.Map{
"enterprise_id": probeEventEntId, "title": "__probe_pub__", "venue": "探测场地",
"event_time": gtime.Now(), "status": consts.EventStatusPublished,
"created_at": gtime.Now(), "updated_at": gtime.Now(),
}).InsertAndGetId()
if err != nil {
t.Fatalf("insert published event: %v", err)
}
// 已结束
if _, err = g.Model(consts.TableAnnualEvents).Data(g.Map{
"enterprise_id": probeEventEntId, "title": "__probe_ended__",
"status": consts.EventStatusEnded, "created_at": gtime.Now(), "updated_at": gtime.Now(),
}).Insert(); err != nil {
t.Fatalf("insert ended event: %v", err)
}
res, err := EventPublicList(ctx)
if err != nil {
t.Fatalf("EventPublicList: %v", err)
}
if res.List == nil {
t.Fatalf("list 不应为 nil(无已发布时应为 [])")
}
foundPub := false
for _, it := range res.List {
if it.Title == "__probe_draft__" || it.Title == "__probe_ended__" {
t.Fatalf("草稿 / 已结束活动不应出现:%+v", it)
}
if it.EventId == pubId {
foundPub = true
}
}
if !foundPub {
t.Fatalf("已发布活动(id=%d)应出现在列表", pubId)
}
}