mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-09-29 22:06:38 +08:00
33a1c32cf8
Reorganize internal packages into platform/infra/shared layers and update imports, docs, and seed-count tests to match current system configs.
57 lines
1.4 KiB
Go
57 lines
1.4 KiB
Go
// Copyright 2026 Arctel.net
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package task_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/Rain-kl/Wavelet/internal/infra/task"
|
|
taskhandlers "github.com/Rain-kl/Wavelet/internal/infra/task/handlers"
|
|
)
|
|
|
|
func TestDuplicateTaskMeta(t *testing.T) {
|
|
// Call Register twice to simulate being imported by multiple packages (routers, worker, etc.)
|
|
taskhandlers.Register()
|
|
taskhandlers.Register()
|
|
|
|
metas := task.GetDispatchableTasks()
|
|
|
|
// Check if we have duplicates by checking if a Type appears more than once
|
|
seen := make(map[string]int)
|
|
for _, m := range metas {
|
|
seen[m.Type]++
|
|
}
|
|
|
|
for taskType, count := range seen {
|
|
if count > 1 {
|
|
t.Errorf("Task type %q registered %d times, expected at most 1", taskType, count)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestInternalOnlyTaskMetaIsHiddenFromDispatchableTasks(t *testing.T) {
|
|
const taskType = "test_internal_only_meta"
|
|
meta := task.TaskMeta{
|
|
Type: taskType,
|
|
AsynqTask: "test:internal_only_meta",
|
|
Name: "内部测试任务",
|
|
InternalOnly: true,
|
|
}
|
|
task.RegisterTaskMeta(meta)
|
|
|
|
registered := task.GetTaskMeta(taskType)
|
|
if registered == nil {
|
|
t.Fatal("GetTaskMeta() did not return internal-only metadata")
|
|
}
|
|
if !registered.InternalOnly {
|
|
t.Fatal("GetTaskMeta() lost InternalOnly flag")
|
|
}
|
|
|
|
for _, dispatchable := range task.GetDispatchableTasks() {
|
|
if dispatchable.Type == taskType {
|
|
t.Fatalf("GetDispatchableTasks() exposed internal-only task %q", taskType)
|
|
}
|
|
}
|
|
}
|