mirror of
https://github.com/hanzoai/tasks.git
synced 2026-11-03 03:56:04 +00:00
Full module path rebrand from Temporal to Hanzo Tasks: - go.mod module: github.com/hanzoai/tasks - All internal Go imports updated (1906 files) - cmd/server renamed to cmd/tasksd - Binary name: tasksd (was temporal-server) - Docker images: hanzoai/tasks (was temporalio/server) - README rewritten with Hanzo Tasks branding - LLM.md created with integration notes - Makefile, goreleaser, CI workflows updated - go.temporal.io/sdk and go.temporal.io/api imports preserved (separate repos) Fork of Temporal.io (MIT license).
98 lines
3.3 KiB
Go
98 lines
3.3 KiB
Go
package scheduler_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
"go.temporal.io/api/serviceerror"
|
|
"go.temporal.io/api/workflowservice/v1"
|
|
"github.com/hanzoai/tasks/chasm"
|
|
"github.com/hanzoai/tasks/chasm/lib/scheduler"
|
|
"github.com/hanzoai/tasks/chasm/lib/scheduler/gen/schedulerpb/v1"
|
|
legacyscheduler "github.com/hanzoai/tasks/service/worker/scheduler"
|
|
"google.golang.org/protobuf/types/known/timestamppb"
|
|
)
|
|
|
|
// runSentinelHandlerTestCase asserts that the given operation returns
|
|
// NotFound when invoked on a sentinel scheduler.
|
|
func runSentinelHandlerTestCase(
|
|
t *testing.T,
|
|
callFn func(sentinel *scheduler.Scheduler, ctx chasm.MutableContext, specBuilder *legacyscheduler.SpecBuilder) error,
|
|
) {
|
|
sentinel, ctx, _ := setupSentinelForTest(t)
|
|
specBuilder := legacyscheduler.NewSpecBuilder()
|
|
|
|
err := callFn(sentinel, ctx, specBuilder)
|
|
|
|
require.Error(t, err)
|
|
var notFoundErr *serviceerror.NotFound
|
|
require.ErrorAs(t, err, ¬FoundErr, "expected NotFound error for sentinel")
|
|
}
|
|
|
|
func TestSentinelHandler_DescribeSchedule(t *testing.T) {
|
|
runSentinelHandlerTestCase(t, func(sentinel *scheduler.Scheduler, ctx chasm.MutableContext, specBuilder *legacyscheduler.SpecBuilder) error {
|
|
_, err := sentinel.Describe(ctx, &schedulerpb.DescribeScheduleRequest{
|
|
NamespaceId: namespaceID,
|
|
FrontendRequest: &workflowservice.DescribeScheduleRequest{
|
|
Namespace: namespace,
|
|
ScheduleId: scheduleID,
|
|
},
|
|
}, specBuilder)
|
|
return err
|
|
})
|
|
}
|
|
|
|
func TestSentinelHandler_ListScheduleMatchingTimes(t *testing.T) {
|
|
runSentinelHandlerTestCase(t, func(sentinel *scheduler.Scheduler, ctx chasm.MutableContext, specBuilder *legacyscheduler.SpecBuilder) error {
|
|
_, err := sentinel.ListMatchingTimes(ctx, &schedulerpb.ListScheduleMatchingTimesRequest{
|
|
NamespaceId: namespaceID,
|
|
FrontendRequest: &workflowservice.ListScheduleMatchingTimesRequest{
|
|
Namespace: namespace,
|
|
ScheduleId: scheduleID,
|
|
StartTime: timestamppb.Now(),
|
|
EndTime: timestamppb.Now(),
|
|
},
|
|
}, specBuilder)
|
|
return err
|
|
})
|
|
}
|
|
|
|
func TestSentinelHandler_UpdateSchedule(t *testing.T) {
|
|
runSentinelHandlerTestCase(t, func(sentinel *scheduler.Scheduler, ctx chasm.MutableContext, _ *legacyscheduler.SpecBuilder) error {
|
|
_, err := sentinel.Update(ctx, &schedulerpb.UpdateScheduleRequest{
|
|
NamespaceId: namespaceID,
|
|
FrontendRequest: &workflowservice.UpdateScheduleRequest{
|
|
Namespace: namespace,
|
|
ScheduleId: scheduleID,
|
|
},
|
|
})
|
|
return err
|
|
})
|
|
}
|
|
|
|
func TestSentinelHandler_PatchSchedule(t *testing.T) {
|
|
runSentinelHandlerTestCase(t, func(sentinel *scheduler.Scheduler, ctx chasm.MutableContext, _ *legacyscheduler.SpecBuilder) error {
|
|
_, err := sentinel.Patch(ctx, &schedulerpb.PatchScheduleRequest{
|
|
NamespaceId: namespaceID,
|
|
FrontendRequest: &workflowservice.PatchScheduleRequest{
|
|
Namespace: namespace,
|
|
ScheduleId: scheduleID,
|
|
},
|
|
})
|
|
return err
|
|
})
|
|
}
|
|
|
|
func TestSentinelHandler_DeleteSchedule(t *testing.T) {
|
|
runSentinelHandlerTestCase(t, func(sentinel *scheduler.Scheduler, ctx chasm.MutableContext, _ *legacyscheduler.SpecBuilder) error {
|
|
_, err := sentinel.Delete(ctx, &schedulerpb.DeleteScheduleRequest{
|
|
NamespaceId: namespaceID,
|
|
FrontendRequest: &workflowservice.DeleteScheduleRequest{
|
|
Namespace: namespace,
|
|
ScheduleId: scheduleID,
|
|
},
|
|
})
|
|
return err
|
|
})
|
|
}
|