136 lines
3.3 KiB
Go
136 lines
3.3 KiB
Go
package task
|
|
|
|
import (
|
|
"context"
|
|
"likedream-goframe/internal/testutil"
|
|
"testing"
|
|
|
|
"github.com/joomcode/errorx"
|
|
)
|
|
|
|
func TestCpdailySleepCheckTask_QueryFormByTitle(t *testing.T) {
|
|
loginClient, schoolDetail := testutil.LoginTestUser()
|
|
|
|
task := NewSleepCheckTask(loginClient, schoolDetail.WecloudUrl)
|
|
tasks := task.QueryFormByTitle(context.Background(), "查寝")
|
|
|
|
if len(tasks) == 0 {
|
|
t.Error("未查询到查寝任务")
|
|
} else {
|
|
t.Logf("查询到查寝任务: %v", tasks)
|
|
}
|
|
}
|
|
|
|
func TestCpdailySleepCheckTask_GetRecentTaskTitle(t *testing.T) {
|
|
loginClient, schoolDetail := testutil.LoginTestUser()
|
|
|
|
task := NewSleepCheckTask(loginClient, schoolDetail.WecloudUrl)
|
|
|
|
titles := task.GetRecentTaskTitle(context.Background())
|
|
|
|
if len(titles) == 0 {
|
|
t.Error("未查询到查寝任务标题")
|
|
} else {
|
|
t.Logf("查询到查寝任务标题: %v", titles)
|
|
}
|
|
}
|
|
|
|
func TestCpdailySleepCheckTask_QueryFormByYearMonth(t *testing.T) {
|
|
loginClient, schoolDetail := testutil.LoginTestUser()
|
|
|
|
task := NewSleepCheckTask(loginClient, schoolDetail.WecloudUrl)
|
|
|
|
tests := []struct {
|
|
name string
|
|
titleGlob string
|
|
year string
|
|
month string
|
|
wantErr bool
|
|
}{
|
|
{
|
|
name: "查询当前月份查寝任务",
|
|
titleGlob: "查寝",
|
|
year: "2025",
|
|
month: "6",
|
|
wantErr: false,
|
|
},
|
|
{
|
|
name: "查询单数字月份查寝任务",
|
|
titleGlob: "查寝",
|
|
year: "2025",
|
|
month: "6", // 将会被格式化为 "06"
|
|
wantErr: false,
|
|
},
|
|
{
|
|
name: "使用通配符模式匹配",
|
|
titleGlob: "*查寝*",
|
|
year: "2025",
|
|
month: "6",
|
|
wantErr: false,
|
|
},
|
|
{
|
|
name: "查询不存在的任务",
|
|
titleGlob: "不存在的任务",
|
|
year: "2025",
|
|
month: "6",
|
|
wantErr: true,
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
oopsError, _ := errorx.ErrorFromPanic(r)
|
|
if !tt.wantErr {
|
|
t.Errorf("QueryFormByYearMonth() 意外的panic: %+v", oopsError)
|
|
} else {
|
|
t.Logf("预期的错误: %+v", oopsError)
|
|
}
|
|
}
|
|
}()
|
|
|
|
form := task.QueryFormByYearMonth(context.Background(), tt.titleGlob, tt.year, tt.month)
|
|
|
|
if tt.wantErr {
|
|
t.Error("预期应该出现错误,但没有出现")
|
|
return
|
|
}
|
|
|
|
if form == nil {
|
|
t.Error("未查询到查寝任务表单")
|
|
return
|
|
}
|
|
|
|
// 验证返回结果的结构
|
|
if realTitle := form["realTitle"].String(); realTitle == "" {
|
|
t.Error("返回结果中缺少 realTitle 或 realTitle 为空")
|
|
} else {
|
|
t.Logf("任务真实标题: %s", realTitle)
|
|
}
|
|
|
|
if taskInfo := form["taskInfo"].Map(); taskInfo == nil {
|
|
t.Error("返回结果中缺少 taskInfo 或 taskInfo 为空")
|
|
} else {
|
|
t.Logf("任务信息包含字段: %d", len(taskInfo))
|
|
|
|
// 验证关键字段是否存在
|
|
requiredFields := []string{"taskName", "signWid", "signInstanceWid"}
|
|
for _, field := range requiredFields {
|
|
if _, exists := taskInfo[field]; !exists {
|
|
t.Errorf("taskInfo 中缺少必要字段: %s", field)
|
|
}
|
|
}
|
|
}
|
|
|
|
if rows := form["rows"].Map(); rows == nil {
|
|
t.Error("返回结果中缺少 rows 或 rows 为空")
|
|
} else {
|
|
t.Logf("表单数据包含字段: %d", len(rows))
|
|
}
|
|
|
|
t.Logf("查询到查寝任务表单,标题: %v", form["realTitle"])
|
|
})
|
|
}
|
|
}
|