From d05ec4f3475b7f02dee16de063617bdc9969f822 Mon Sep 17 00:00:00 2001 From: eduardo apolinario Date: Tue, 14 Mar 2023 12:58:10 -0700 Subject: [PATCH 1/2] Add support for gate nodes Signed-off-by: eduardo apolinario --- cmd/register/register_util.go | 2 + cmd/register/register_util_test.go | 59 ++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) diff --git a/cmd/register/register_util.go b/cmd/register/register_util.go index 0f646c89..714e30c7 100644 --- a/cmd/register/register_util.go +++ b/cmd/register/register_util.go @@ -245,6 +245,8 @@ func hydrateNode(node *core.Node, version string, force bool) error { default: return fmt.Errorf("unknown type %T", branchNodeWrapper.BranchNode.IfElse.Default) } + case *core.Node_GateNode: + // Do nothing. default: return fmt.Errorf("unknown type %T", v) } diff --git a/cmd/register/register_util_test.go b/cmd/register/register_util_test.go index 6e31565c..bb433751 100644 --- a/cmd/register/register_util_test.go +++ b/cmd/register/register_util_test.go @@ -35,6 +35,7 @@ import ( "github.com/stretchr/testify/mock" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" + "google.golang.org/protobuf/types/known/durationpb" ) type MockHTTPClient struct { @@ -501,6 +502,64 @@ func TestHydrateNode(t *testing.T) { }) } +func TestHydrateGateNode(t *testing.T) { + t.Run("Hydrate Sleep", func(t *testing.T) { + registerFilesSetup() + // Write a node that contains a GateNode + node := &core.Node{ + Target: &core.Node_GateNode{ + GateNode: &core.GateNode{ + Condition: &core.GateNode_Sleep { + Sleep: &core.SleepCondition{ + Duration: &durationpb.Duration { + Seconds: 10, + }, + }, + }, + }, + }, + } + err := hydrateNode(node, rconfig.DefaultFilesConfig.Version, true) + assert.Nil(t, err) + }) + + t.Run("Hydrate Signal", func(t *testing.T) { + registerFilesSetup() + // Write a node that contains a GateNode + node := &core.Node{ + Target: &core.Node_GateNode{ + GateNode: &core.GateNode{ + Condition: &core.GateNode_Signal{ + Signal: &core.SignalCondition{ + SignalId: "abc", + }, + }, + }, + }, + } + err := hydrateNode(node, rconfig.DefaultFilesConfig.Version, true) + assert.Nil(t, err) + }) + + t.Run("Hydrate Approve", func(t *testing.T) { + registerFilesSetup() + // Write a node that contains a GateNode + node := &core.Node{ + Target: &core.Node_GateNode{ + GateNode: &core.GateNode{ + Condition: &core.GateNode_Approve{ + Approve: &core.ApproveCondition{ + SignalId: "abc", + }, + }, + }, + }, + } + err := hydrateNode(node, rconfig.DefaultFilesConfig.Version, true) + assert.Nil(t, err) + }) +} + func TestHydrateTaskSpec(t *testing.T) { testScope := promutils.NewTestScope() labeled.SetMetricKeys(contextutils.AppNameKey, contextutils.ProjectKey, contextutils.DomainKey) From 064700e3c229a803b5769c572e9c9958bb91a4de Mon Sep 17 00:00:00 2001 From: eduardo apolinario Date: Tue, 14 Mar 2023 13:35:02 -0700 Subject: [PATCH 2/2] Linting Signed-off-by: eduardo apolinario --- cmd/register/register_util_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/register/register_util_test.go b/cmd/register/register_util_test.go index bb433751..97a39082 100644 --- a/cmd/register/register_util_test.go +++ b/cmd/register/register_util_test.go @@ -509,9 +509,9 @@ func TestHydrateGateNode(t *testing.T) { node := &core.Node{ Target: &core.Node_GateNode{ GateNode: &core.GateNode{ - Condition: &core.GateNode_Sleep { + Condition: &core.GateNode_Sleep{ Sleep: &core.SleepCondition{ - Duration: &durationpb.Duration { + Duration: &durationpb.Duration{ Seconds: 10, }, },