github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/internal/controllers/apicmp/delta_test.go (about) 1 package apicmp 2 3 import ( 4 "fmt" 5 "testing" 6 "time" 7 8 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 9 10 "github.com/stretchr/testify/assert" 11 12 "github.com/tilt-dev/tilt/pkg/apis/core/v1alpha1" 13 ) 14 15 func now() time.Time { 16 return time.Unix(1619635910, 450240689) 17 } 18 19 func TestCmp(t *testing.T) { 20 cmd := &v1alpha1.Cmd{ 21 ObjectMeta: metav1.ObjectMeta{ 22 Name: "cmd", 23 CreationTimestamp: metav1.NewTime(now()), 24 }, 25 Status: v1alpha1.CmdStatus{ 26 Running: &v1alpha1.CmdStateRunning{ 27 StartedAt: metav1.NewMicroTime(now()), 28 }, 29 }, 30 } 31 32 assert.True(t, DeepEqual(cmd, &v1alpha1.Cmd{ 33 ObjectMeta: metav1.ObjectMeta{ 34 Name: "cmd", 35 CreationTimestamp: metav1.NewTime(now().Add(time.Nanosecond)), 36 }, 37 Status: v1alpha1.CmdStatus{ 38 Running: &v1alpha1.CmdStateRunning{ 39 StartedAt: metav1.NewMicroTime(now().Add(time.Nanosecond)), 40 }, 41 }, 42 })) 43 assert.True(t, DeepEqual(cmd, &v1alpha1.Cmd{ 44 ObjectMeta: metav1.ObjectMeta{ 45 Name: "cmd", 46 CreationTimestamp: metav1.NewTime(now().Add(time.Microsecond)), 47 }, 48 Status: v1alpha1.CmdStatus{ 49 Running: &v1alpha1.CmdStateRunning{ 50 StartedAt: metav1.NewMicroTime(now().Add(time.Nanosecond)), 51 }, 52 }, 53 })) 54 assert.False(t, DeepEqual(cmd, &v1alpha1.Cmd{ 55 ObjectMeta: metav1.ObjectMeta{ 56 Name: "cmd", 57 CreationTimestamp: metav1.NewTime(now().Add(time.Second)), 58 }, 59 Status: v1alpha1.CmdStatus{ 60 Running: &v1alpha1.CmdStateRunning{ 61 StartedAt: metav1.NewMicroTime(now()), 62 }, 63 }, 64 })) 65 assert.False(t, DeepEqual(cmd, &v1alpha1.Cmd{ 66 ObjectMeta: metav1.ObjectMeta{ 67 Name: "cmd", 68 CreationTimestamp: metav1.NewTime(now()), 69 }, 70 Status: v1alpha1.CmdStatus{ 71 Running: &v1alpha1.CmdStateRunning{ 72 StartedAt: metav1.NewMicroTime(now().Add(time.Microsecond)), 73 }, 74 }, 75 })) 76 77 } 78 79 func testCmpPanicHelper() (result string) { 80 defer func() { 81 r := recover() 82 result = fmt.Sprintf("%s", r) 83 }() 84 85 DeepEqual(v1alpha1.Cmd{}, &v1alpha1.Cmd{}) 86 return 87 } 88 89 func TestCmpPanic(t *testing.T) { 90 result := testCmpPanicHelper() 91 assert.Contains(t, result, "comparing incommensurable objects: v1alpha1.Cmd, *v1alpha1.Cmd") 92 }