|
7 | 7 | "github.com/awslabs/operatorpkg/test" |
8 | 8 | . "github.com/onsi/ginkgo/v2" |
9 | 9 | . "github.com/onsi/gomega" |
| 10 | + "github.com/samber/lo" |
10 | 11 |
|
11 | 12 | metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" |
12 | 13 | ) |
@@ -164,4 +165,34 @@ var _ = Describe("Conditions", func() { |
164 | 165 | Expect(testObject.StatusConditions().List()[len(testObject.StatusConditions().List())-3].Type).To(Equal(test.ConditionTypeBar)) |
165 | 166 | Expect(testObject.StatusConditions().List()[len(testObject.StatusConditions().List())-4].Type).To(Equal(test.ConditionTypeFoo)) |
166 | 167 | }) |
| 168 | + |
| 169 | + It("should bump generation of all conditions when deleting", func() { |
| 170 | + testObject := test.Object(&test.CustomObject{}) |
| 171 | + // Conditions should be initialized |
| 172 | + conditions := testObject.StatusConditions() |
| 173 | + // Expect status to be unkown |
| 174 | + Expect(conditions.Get(test.ConditionTypeFoo).GetStatus()).To(Equal(metav1.ConditionUnknown)) |
| 175 | + Expect(conditions.Get(test.ConditionTypeBar).GetStatus()).To(Equal(metav1.ConditionUnknown)) |
| 176 | + Expect(conditions.Root().GetStatus()).To(Equal(metav1.ConditionUnknown)) |
| 177 | + |
| 178 | + // set conditions to true and expect generation set |
| 179 | + Expect(conditions.SetTrue(test.ConditionTypeFoo)).To(BeTrue()) |
| 180 | + Expect(conditions.SetTrue(test.ConditionTypeBar)).To(BeTrue()) |
| 181 | + Expect(conditions.Get(test.ConditionTypeFoo).Status).To(Equal(metav1.ConditionTrue)) |
| 182 | + Expect(conditions.Get(test.ConditionTypeBar).Status).To(Equal(metav1.ConditionTrue)) |
| 183 | + Expect(conditions.Get(test.ConditionTypeFoo).ObservedGeneration).To(Equal(int64(1))) |
| 184 | + Expect(conditions.Get(test.ConditionTypeBar).ObservedGeneration).To(Equal(int64(1))) |
| 185 | + |
| 186 | + // set deletion timestamp and bump observed generation |
| 187 | + testObject.SetDeletionTimestamp(lo.ToPtr(metav1.Now())) |
| 188 | + testObject.SetGeneration(2) |
| 189 | + |
| 190 | + // set one condition to true again; ensure all the other conditions observed generation is bumped |
| 191 | + // make sure root condition is also true and not unknown |
| 192 | + Expect(conditions.SetTrue(test.ConditionTypeFoo)).To(BeTrue()) |
| 193 | + Expect(conditions.Get(test.ConditionTypeFoo).ObservedGeneration).To(Equal(int64(2))) |
| 194 | + Expect(conditions.Get(test.ConditionTypeBar).ObservedGeneration).To(Equal(int64(2))) |
| 195 | + Expect(conditions.Root().Status).To(Equal(metav1.ConditionTrue)) |
| 196 | + Expect(conditions.Root().ObservedGeneration).To(Equal(int64(2))) |
| 197 | + }) |
167 | 198 | }) |
0 commit comments