Files
tasks/service/frontend/version_checker_test.go
zeekay 5a601d081b rebrand: go.temporal.io/server -> github.com/hanzoai/tasks
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).
2026-03-19 10:36:40 -07:00

107 lines
2.7 KiB
Go

package frontend
import (
"testing"
"time"
"github.com/stretchr/testify/require"
versionpb "go.temporal.io/api/version/v1"
persistencespb "github.com/hanzoai/tasks/api/persistence/v1"
"github.com/hanzoai/tasks/common/headers"
"github.com/hanzoai/tasks/common/persistence"
"google.golang.org/protobuf/types/known/timestamppb"
)
func TestIsUpdateNeeded(t *testing.T) {
tests := []struct {
name string
metadata *persistence.GetClusterMetadataResponse
want bool
}{
{
name: "nil VersionInfo returns true",
metadata: &persistence.GetClusterMetadataResponse{
ClusterMetadata: &persistencespb.ClusterMetadata{
VersionInfo: nil,
},
},
want: true,
},
{
name: "nil Current returns true",
metadata: &persistence.GetClusterMetadataResponse{
ClusterMetadata: &persistencespb.ClusterMetadata{
VersionInfo: &versionpb.VersionInfo{
Current: nil,
LastUpdateTime: timestamppb.New(time.Now()),
},
},
},
want: true,
},
{
name: "different server version returns true",
metadata: &persistence.GetClusterMetadataResponse{
ClusterMetadata: &persistencespb.ClusterMetadata{
VersionInfo: &versionpb.VersionInfo{
Current: &versionpb.ReleaseInfo{
Version: "0.0.0-old-version",
},
LastUpdateTime: timestamppb.New(time.Now()),
},
},
},
want: true,
},
{
name: "same version with recent LastUpdateTime returns false",
metadata: &persistence.GetClusterMetadataResponse{
ClusterMetadata: &persistencespb.ClusterMetadata{
VersionInfo: &versionpb.VersionInfo{
Current: &versionpb.ReleaseInfo{
Version: headers.ServerVersion,
},
LastUpdateTime: timestamppb.New(time.Now()),
},
},
},
want: false,
},
{
name: "same version with old LastUpdateTime returns true",
metadata: &persistence.GetClusterMetadataResponse{
ClusterMetadata: &persistencespb.ClusterMetadata{
VersionInfo: &versionpb.VersionInfo{
Current: &versionpb.ReleaseInfo{
Version: headers.ServerVersion,
},
LastUpdateTime: timestamppb.New(time.Now().Add(-2 * time.Hour)),
},
},
},
want: true,
},
{
name: "same version with nil LastUpdateTime returns false",
metadata: &persistence.GetClusterMetadataResponse{
ClusterMetadata: &persistencespb.ClusterMetadata{
VersionInfo: &versionpb.VersionInfo{
Current: &versionpb.ReleaseInfo{
Version: headers.ServerVersion,
},
LastUpdateTime: nil,
},
},
},
want: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := isUpdateNeeded(tt.metadata)
require.Equal(t, tt.want, got)
})
}
}