mirror of
https://github.com/Yuyi-Oak/BlueArchiveToolkit.git
synced 2026-09-18 08:54:55 +08:00
feat(bat): 完善工作流调度与 dashboard RPC
补全资源拉取、解析、翻译、重打包和本地化发布命令,支持单次、限定次数与周期调度。移除 TUI 计划并通过 schedule.* RPC 暴露给 bat-api dashboard。 Closes #43
This commit is contained in:
@@ -252,6 +252,52 @@ func TestResourceListSendsPagination(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestScheduleUpdateSendsMutationParams(t *testing.T) {
|
||||
every := uint64(3600)
|
||||
count := uint64(4)
|
||||
enabled := true
|
||||
client := newTestClient(t, func(t *testing.T, req testRequest) testResponse {
|
||||
if req.Method != "schedule.update" {
|
||||
t.Fatalf("method = %s", req.Method)
|
||||
}
|
||||
var params ScheduleMutationParams
|
||||
if err := json.Unmarshal(req.Params, ¶ms); err != nil {
|
||||
t.Fatalf("decode params: %v", err)
|
||||
}
|
||||
if params.ID != "nightly-pull" || params.Group != "res" || params.Action != "pull" ||
|
||||
params.EverySeconds == nil || *params.EverySeconds != every ||
|
||||
params.Count == nil || *params.Count != count || params.Enabled == nil || !*params.Enabled {
|
||||
t.Fatalf("params = %#v", params)
|
||||
}
|
||||
return testResponse{
|
||||
Result: testEnvelope{
|
||||
OK: true,
|
||||
Status: "ok",
|
||||
RequestID: "req-test-schedule",
|
||||
Data: map[string]any{
|
||||
"command": "schedule-update",
|
||||
"status": "updated",
|
||||
},
|
||||
},
|
||||
}
|
||||
})
|
||||
|
||||
raw, err := client.ScheduleUpdate(context.Background(), ScheduleMutationParams{
|
||||
ID: "nightly-pull",
|
||||
Group: "res",
|
||||
Action: "pull",
|
||||
EverySeconds: &every,
|
||||
Count: &count,
|
||||
Enabled: &enabled,
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("ScheduleUpdate error: %v", err)
|
||||
}
|
||||
if !json.Valid(raw) {
|
||||
t.Fatalf("invalid raw JSON: %s", string(raw))
|
||||
}
|
||||
}
|
||||
|
||||
func TestApplicationErrorReturnsAPIError(t *testing.T) {
|
||||
client := newTestClient(t, func(t *testing.T, req testRequest) testResponse {
|
||||
if req.Method != "task.status" {
|
||||
|
||||
Reference in New Issue
Block a user