Skip to content

Commit 63a65d8

Browse files
Fix equality check for Plan Action (#1373)
It was returning false even for a.Equals(a) because of wrong check in times.go
1 parent 6865596 commit 63a65d8

File tree

2 files changed

+57
-1
lines changed

2 files changed

+57
-1
lines changed

pkg/apis/deployment/v1/plan_test.go

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,10 @@ package v1
2323
import (
2424
"encoding/json"
2525
"testing"
26+
"time"
2627

2728
"github.com/stretchr/testify/require"
29+
meta "k8s.io/apimachinery/pkg/apis/meta/v1"
2830
)
2931

3032
func Test_Action_Marshal(t *testing.T) {
@@ -34,3 +36,54 @@ func Test_Action_Marshal(t *testing.T) {
3436
require.NoError(t, err)
3537
require.Equal(t, `{"id":"","type":"","creationTime":null}`, string(data))
3638
}
39+
40+
func Test_Action_Equal(t *testing.T) {
41+
a := Action{
42+
ID: "9ktKQsBAqe5Ra8ZJ",
43+
SetID: "",
44+
Type: ActionTypeAddMember,
45+
MemberID: "",
46+
Group: 2,
47+
CreationTime: meta.Time{
48+
Time: time.Date(2023, time.August, 1, 20, 6, 53, 0, time.UTC),
49+
},
50+
StartTime: nil,
51+
Reason: "",
52+
Image: "",
53+
Params: nil,
54+
Locals: nil,
55+
TaskID: "",
56+
Architecture: "",
57+
Progress: "",
58+
}
59+
b := Action{
60+
ID: "9ktKQsBAqe5Ra8ZJ",
61+
SetID: "",
62+
Type: ActionTypeAddMember,
63+
MemberID: "",
64+
Group: 2,
65+
CreationTime: meta.Time{
66+
Time: time.Date(2023, time.August, 1, 20, 6, 53, 0, time.UTC),
67+
},
68+
StartTime: nil,
69+
Reason: "",
70+
Image: "",
71+
Params: nil,
72+
Locals: nil,
73+
TaskID: "",
74+
Architecture: "",
75+
Progress: "",
76+
}
77+
78+
require.True(t, a.Equal(a))
79+
require.True(t, a.Equal(b))
80+
require.True(t, b.Equal(a))
81+
require.True(t, b.Equal(b))
82+
83+
now := time.Now()
84+
a.StartTime = &meta.Time{Time: now}
85+
require.True(t, a.Equal(a))
86+
require.False(t, a.Equal(b))
87+
require.False(t, b.Equal(a))
88+
require.True(t, b.Equal(b))
89+
}

pkg/util/times.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,11 @@ func TimeCompareEqual(a, b meta.Time) bool {
3535
}
3636

3737
// TimeCompareEqualPointer compares two times, allowing an error of 1s
38+
// Returns true if both pointers are nil
3839
func TimeCompareEqualPointer(a, b *meta.Time) bool {
39-
if a == nil || b == nil {
40+
if a == nil && b == nil {
41+
return true
42+
} else if a == nil || b == nil {
4043
return false
4144
} else if a == b {
4245
return true

0 commit comments

Comments
 (0)