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).
107 lines
2.7 KiB
Go
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)
|
|
})
|
|
}
|
|
}
|