diff --git a/hack/generator/pkg/astmodel/resource_type.go b/hack/generator/pkg/astmodel/resource_type.go index be3a914842a..7cdfcad9c10 100644 --- a/hack/generator/pkg/astmodel/resource_type.go +++ b/hack/generator/pkg/astmodel/resource_type.go @@ -327,6 +327,15 @@ func (resource *ResourceType) Properties() []*PropertyDefinition { result = append(result, resource.createStatusProperty()) } + for _, property := range resource.properties { + result = append(result, property) + } + + // Sorted so that it's always consistent + sort.Slice(result, func(left int, right int) bool { + return result[left].propertyName < result[right].propertyName + }) + return result } diff --git a/hack/generator/pkg/astmodel/resource_type_test.go b/hack/generator/pkg/astmodel/resource_type_test.go index ff843b5e33f..1be05e3525b 100644 --- a/hack/generator/pkg/astmodel/resource_type_test.go +++ b/hack/generator/pkg/astmodel/resource_type_test.go @@ -90,6 +90,14 @@ func TestResourceType_Property_ForSpec_ReturnsProperty(t *testing.T) { * WithProperty() tests */ +func TestResourceType_WithProperty_HasExpectedLength(t *testing.T) { + g := NewGomegaWithT(t) + base := NewResourceType(emptySpec, emptyStatus) + ownerProp := NewPropertyDefinition("Owner", "owner", StringType) + resource := base.WithProperty(ownerProp) + g.Expect(resource.Properties()).To(HaveLen(3)) +} + func TestResourceType_WithProperty_IncludesProperty(t *testing.T) { g := NewGomegaWithT(t) base := NewResourceType(emptySpec, emptyStatus)