diff --git a/server/public/model/integration_action.go b/server/public/model/integration_action.go index 009995dcba..f9a06e80ae 100644 --- a/server/public/model/integration_action.go +++ b/server/public/model/integration_action.go @@ -122,6 +122,11 @@ func (p *PostAction) Equals(input *PostAction) bool { return p.Integration == nil } + // At this point, input is not nil, so return false if original is. + if p.Integration == nil { + return false + } + // Both are unequal and not nil. if p.Integration.URL != input.Integration.URL { return false diff --git a/server/public/model/integration_action_test.go b/server/public/model/integration_action_test.go index 1bf2a3ce23..c7b581d9d1 100644 --- a/server/public/model/integration_action_test.go +++ b/server/public/model/integration_action_test.go @@ -144,7 +144,7 @@ func TestPostActionIntegrationEquals(t *testing.T) { require.False(t, pa1.Equals(pa2)) }) - t.Run("nil check", func(t *testing.T) { + t.Run("nil check in input integration", func(t *testing.T) { pa1 := &PostAction{ Integration: &PostActionIntegration{}, } @@ -155,4 +155,28 @@ func TestPostActionIntegrationEquals(t *testing.T) { require.False(t, pa1.Equals(pa2)) }) + + t.Run("nil check in original integration", func(t *testing.T) { + pa1 := &PostAction{ + Integration: nil, + } + + pa2 := &PostAction{ + Integration: &PostActionIntegration{}, + } + + require.False(t, pa1.Equals(pa2)) + }) + + t.Run("both nil", func(t *testing.T) { + pa1 := &PostAction{ + Integration: nil, + } + + pa2 := &PostAction{ + Integration: nil, + } + + require.True(t, pa1.Equals(pa2)) + }) }