server: 平台抽象层+bilibili、服务端加密凭据库、角色中间件;web: 精简页面/路由、macOS 客户端(Swift)与多份方案文档;移除误入库的编译产物
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
package ws
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"everypublish/server/internal/config"
|
||||
"everypublish/server/internal/models"
|
||||
"everypublish/server/internal/task"
|
||||
|
||||
gormsqlite "gorm.io/driver/sqlite"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func TestDispatcherLocalMock(t *testing.T) {
|
||||
db, err := gorm.Open(gormsqlite.Open("file:dispatcher_mock?mode=memory&cache=shared"), &gorm.Config{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err = db.AutoMigrate(&models.Task{}, &models.TaskEvent{}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
row := models.Task{WorkspaceID: 1, Title: "web-only", Status: task.Queued, AccountIDs: "[]", MaterialIDs: "[]"}
|
||||
if err = db.Create(&row).Error; err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
d := NewDispatcher(db, NewHub(), &config.Config{ExecutorMode: "mock"})
|
||||
if !d.TryDispatch(row.ID) {
|
||||
t.Fatal("mock dispatch should accept queued task")
|
||||
}
|
||||
deadline := time.Now().Add(2 * time.Second)
|
||||
for time.Now().Before(deadline) {
|
||||
var got models.Task
|
||||
if err = db.First(&got, row.ID).Error; err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if got.Status == task.Success {
|
||||
if got.PublishedURLs == "" || got.Receipts == "" {
|
||||
t.Fatal("mock success must include URL and receipt")
|
||||
}
|
||||
return
|
||||
}
|
||||
time.Sleep(20 * time.Millisecond)
|
||||
}
|
||||
t.Fatal("mock task did not reach success")
|
||||
}
|
||||
Reference in New Issue
Block a user