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).
105 lines
3.9 KiB
Go
105 lines
3.9 KiB
Go
package main
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"go.temporal.io/api/workflowservice/v1"
|
|
"github.com/hanzoai/tasks/api/historyservice/v1"
|
|
"github.com/hanzoai/tasks/api/matchingservice/v1"
|
|
)
|
|
|
|
func TestWorkflowTagGetters(t *testing.T) {
|
|
testCases := []struct {
|
|
name string
|
|
reqT reflect.Type
|
|
workflowIDGetter string
|
|
runIDGetter string
|
|
taskTokenGetter string
|
|
activityIDGetter string
|
|
operationIDGetter string
|
|
chasmRunIDGetter string
|
|
}{
|
|
{
|
|
name: "Request with only workflowID",
|
|
reqT: reflect.TypeOf(&workflowservice.StartWorkflowExecutionRequest{}),
|
|
workflowIDGetter: "GetWorkflowId()",
|
|
},
|
|
{
|
|
name: "Request with workflowID and runID",
|
|
reqT: reflect.TypeOf(&workflowservice.RecordActivityTaskHeartbeatByIdRequest{}),
|
|
workflowIDGetter: "GetWorkflowId()",
|
|
runIDGetter: "GetRunId()",
|
|
activityIDGetter: "GetActivityId()",
|
|
},
|
|
{
|
|
name: "Request with execution",
|
|
reqT: reflect.TypeOf(&workflowservice.GetWorkflowExecutionHistoryRequest{}),
|
|
workflowIDGetter: "GetExecution().GetWorkflowId()",
|
|
runIDGetter: "GetExecution().GetRunId()",
|
|
},
|
|
{
|
|
name: "Request with workflow_execution",
|
|
reqT: reflect.TypeOf(&workflowservice.RequestCancelWorkflowExecutionRequest{}),
|
|
workflowIDGetter: "GetWorkflowExecution().GetWorkflowId()",
|
|
runIDGetter: "GetWorkflowExecution().GetRunId()",
|
|
},
|
|
{
|
|
name: "Request with task_token",
|
|
reqT: reflect.TypeOf(&workflowservice.RespondActivityTaskCompletedRequest{}),
|
|
taskTokenGetter: "GetTaskToken()",
|
|
},
|
|
{
|
|
name: "Special handling for RespondQueryTaskCompletedRequest",
|
|
reqT: reflect.TypeOf(&workflowservice.RespondQueryTaskCompletedRequest{}),
|
|
},
|
|
{
|
|
name: "Matching request",
|
|
reqT: reflect.TypeOf(&matchingservice.QueryWorkflowRequest{}),
|
|
workflowIDGetter: "GetQueryRequest().GetExecution().GetWorkflowId()",
|
|
runIDGetter: "GetQueryRequest().GetExecution().GetRunId()",
|
|
},
|
|
{
|
|
name: "History request",
|
|
reqT: reflect.TypeOf(&historyservice.SignalWorkflowExecutionRequest{}),
|
|
workflowIDGetter: "GetSignalRequest().GetWorkflowExecution().GetWorkflowId()",
|
|
runIDGetter: "GetSignalRequest().GetWorkflowExecution().GetRunId()",
|
|
},
|
|
{
|
|
name: "History request overrides",
|
|
reqT: reflect.TypeOf(&historyservice.ReplicateWorkflowStateRequest{}),
|
|
workflowIDGetter: "GetWorkflowState().GetExecutionInfo().GetWorkflowId()",
|
|
runIDGetter: "GetWorkflowState().GetExecutionState().GetRunId()",
|
|
},
|
|
{
|
|
name: "Chasm activity request with activity_id and run_id",
|
|
reqT: reflect.TypeOf(&workflowservice.DescribeActivityExecutionRequest{}),
|
|
activityIDGetter: "GetActivityId()",
|
|
chasmRunIDGetter: "GetRunId()",
|
|
},
|
|
{
|
|
name: "Chasm activity request with only activity_id",
|
|
reqT: reflect.TypeOf(&workflowservice.StartActivityExecutionRequest{}),
|
|
activityIDGetter: "GetActivityId()",
|
|
},
|
|
{
|
|
name: "History request with nested operation_id",
|
|
reqT: reflect.TypeOf(&historyservice.CancelNexusOperationRequest{}),
|
|
operationIDGetter: "GetRequest().GetOperationId()",
|
|
},
|
|
}
|
|
|
|
for _, tt := range testCases {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
rd := workflowTagGetters(tt.reqT, 0)
|
|
assert.Equal(t, tt.workflowIDGetter, rd.WorkflowIDGetter, "WorkflowIDGetter")
|
|
assert.Equal(t, tt.runIDGetter, rd.RunIDGetter, "RunIDGetter")
|
|
assert.Equal(t, tt.taskTokenGetter, rd.TaskTokenGetter, "TaskTokenGetter")
|
|
assert.Equal(t, tt.activityIDGetter, rd.ActivityIDGetter, "ActivityIDGetter")
|
|
assert.Equal(t, tt.operationIDGetter, rd.OperationIDGetter, "OperationIDGetter")
|
|
assert.Equal(t, tt.chasmRunIDGetter, rd.ChasmRunIDGetter, "ChasmRunIDGetter")
|
|
})
|
|
}
|
|
}
|