73 lines
2.3 KiB
Go
73 lines
2.3 KiB
Go
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)
|
||
}
|
||
}
|