Files
tasks/service/worker/workerdeployment/compute_util_test.go
3473340e75 Serverless Feature Integration (#9779)
This PR merges the serverless feature branch into main.

Individual PRs included in this branch:
- #9380
- #9651
- #9412
- #9746
- #9759

---------

Co-authored-by: Stefan Richter <[email protected]>

Co-authored-by: Hanzo Dev <[email protected]>
2026-04-03 00:00:06 +00:00

52 lines
1.8 KiB
Go

package workerdeployment
import (
"testing"
"github.com/stretchr/testify/assert"
computepb "go.temporal.io/api/compute/v1"
enumspb "go.temporal.io/api/enums/v1"
wciiface "go.temporal.io/auto-scaled-workers/wci/workflow/iface"
)
func TestComputeConfigScalingGroupsToWCISpec_EmptyGroups(t *testing.T) {
t.Parallel()
result := computeConfigScalingGroupsToWCISpec(nil)
assert.NotNil(t, result)
assert.Empty(t, result.ScalingGroupSpecs)
result = computeConfigScalingGroupsToWCISpec(map[string]*computepb.ComputeConfigScalingGroup{})
assert.NotNil(t, result)
assert.Empty(t, result.ScalingGroupSpecs)
}
func TestComputeConfigScalingGroupsToWCISpec_WithComputeAndScaling(t *testing.T) {
t.Parallel()
groups := map[string]*computepb.ComputeConfigScalingGroup{
"group1": {
TaskQueueTypes: []enumspb.TaskQueueType{enumspb.TASK_QUEUE_TYPE_WORKFLOW},
Provider: &computepb.ComputeProvider{Type: "aws-lambda"},
Scaler: &computepb.ComputeScaler{Type: "rate-based"},
},
"group2": {
TaskQueueTypes: []enumspb.TaskQueueType{enumspb.TASK_QUEUE_TYPE_ACTIVITY},
Provider: &computepb.ComputeProvider{Type: "aws-ecs"},
},
}
result := computeConfigScalingGroupsToWCISpec(groups)
assert.Len(t, result.ScalingGroupSpecs, 2)
g1 := result.ScalingGroupSpecs["group1"]
assert.Equal(t, []enumspb.TaskQueueType{enumspb.TASK_QUEUE_TYPE_WORKFLOW}, g1.TaskTypes)
assert.Equal(t, wciiface.ComputeProviderType("aws-lambda"), g1.Compute.ProviderType)
assert.NotNil(t, g1.Scaling)
assert.Equal(t, wciiface.ScalingAlgorithmType("rate-based"), g1.Scaling.ScalingAlgorithm)
g2 := result.ScalingGroupSpecs["group2"]
assert.Equal(t, []enumspb.TaskQueueType{enumspb.TASK_QUEUE_TYPE_ACTIVITY}, g2.TaskTypes)
assert.Equal(t, wciiface.ComputeProviderType("aws-ecs"), g2.Compute.ProviderType)
assert.Nil(t, g2.Scaling, "no scaler means nil scaling spec")
}