Fix: rename statusDetails CUE field to details to match Status struct (#7088)

The StatusDetails() function in defkit was rendering the CUE field as
"statusDetails:" instead of "details:", which is the actual JSON tag
defined on the Details field in the common.Status struct. This mismatch
caused CUE rendering failures at runtime because the controller expects
the field to be named "details" (matching the json:"details,omitempty"
tag in apis/core.oam.dev/common/types.go).

Fixed in all four definition types (component, trait, policy,
workflow step) and updated corresponding test assertions to verify
the correct field name.

Signed-off-by: Asish Kumar <officialasishkumar@gmail.com>
This commit is contained in:
Asish Kumar
2026-04-06 07:24:15 -07:00
committed by GitHub
parent 73e4c791a9
commit 54197b4721
8 changed files with 12 additions and 12 deletions
+2 -2
View File
@@ -621,7 +621,7 @@ var _ = Describe("ComponentDefinition", func() {
cue := c.ToCue()
Expect(cue).To(ContainSubstring(`status:`))
Expect(cue).To(ContainSubstring(`statusDetails:`))
Expect(cue).To(ContainSubstring(`details:`))
Expect(cue).NotTo(ContainSubstring(`customStatus:`))
Expect(cue).NotTo(ContainSubstring(`healthPolicy:`))
})
@@ -638,7 +638,7 @@ var _ = Describe("ComponentDefinition", func() {
Expect(cue).To(ContainSubstring(`status:`))
Expect(cue).To(ContainSubstring(`customStatus:`))
Expect(cue).To(ContainSubstring(`healthPolicy:`))
Expect(cue).To(ContainSubstring(`statusDetails:`))
Expect(cue).To(ContainSubstring(`details:`))
})
})
+1 -1
View File
@@ -2864,7 +2864,7 @@ func (g *CUEGenerator) writeStatus(sb *strings.Builder, c *ComponentDefinition,
}
if statusDetails != "" {
sb.WriteString(fmt.Sprintf("%s%sstatusDetails: #\"\"\"\n", indent, g.indent))
sb.WriteString(fmt.Sprintf("%s%sdetails: #\"\"\"\n", indent, g.indent))
for _, line := range strings.Split(statusDetails, "\n") {
sb.WriteString(fmt.Sprintf("%s%s%s%s\n", indent, g.indent, g.indent, line))
}
+1 -1
View File
@@ -399,7 +399,7 @@ func (g *PolicyCUEGenerator) GenerateTemplate(p *PolicyDefinition) string {
sb.WriteString(fmt.Sprintf("%s\t\"\"\"#\n", innerIndent))
}
if p.GetStatusDetails() != "" {
sb.WriteString(fmt.Sprintf("%sstatusDetails: #\"\"\"\n", innerIndent))
sb.WriteString(fmt.Sprintf("%sdetails: #\"\"\"\n", innerIndent))
for _, line := range strings.Split(p.GetStatusDetails(), "\n") {
sb.WriteString(fmt.Sprintf("%s\t%s\n", innerIndent, line))
}
+2 -2
View File
@@ -372,7 +372,7 @@ template: {
It("should render statusDetails in CUE template block", func() {
cue := defkit.NewPolicy("x").StatusDetails("bar").ToCue()
Expect(cue).To(ContainSubstring("status:"))
Expect(cue).To(ContainSubstring("statusDetails:"))
Expect(cue).To(ContainSubstring("details:"))
})
It("should render customStatus in CUE template block", func() {
@@ -401,7 +401,7 @@ template: {
Expect(cue).To(ContainSubstring("status:"))
Expect(cue).To(ContainSubstring("customStatus:"))
Expect(cue).To(ContainSubstring("healthPolicy:"))
Expect(cue).To(ContainSubstring("statusDetails:"))
Expect(cue).To(ContainSubstring("details:"))
})
})
})
+1 -1
View File
@@ -596,7 +596,7 @@ func (g *TraitCUEGenerator) writeAttributes(sb *strings.Builder, t *TraitDefinit
}
if t.GetStatusDetails() != "" {
sb.WriteString(fmt.Sprintf("%sstatusDetails: #\"\"\"\n", innerIndent))
sb.WriteString(fmt.Sprintf("%sdetails: #\"\"\"\n", innerIndent))
for _, line := range strings.Split(t.GetStatusDetails(), "\n") {
sb.WriteString(fmt.Sprintf("%s\t%s\n", innerIndent, line))
}
+2 -2
View File
@@ -1771,7 +1771,7 @@ template: {
It("should render statusDetails in trait CUE", func() {
cue := defkit.NewTrait("t").StatusDetails("phase: context.output.status.phase").ToCue()
Expect(cue).To(ContainSubstring("status:"))
Expect(cue).To(ContainSubstring("statusDetails:"))
Expect(cue).To(ContainSubstring("details:"))
Expect(cue).To(ContainSubstring("phase: context.output.status.phase"))
})
@@ -1801,7 +1801,7 @@ template: {
Expect(cue).To(ContainSubstring("status:"))
Expect(cue).To(ContainSubstring("customStatus:"))
Expect(cue).To(ContainSubstring("healthPolicy:"))
Expect(cue).To(ContainSubstring("statusDetails:"))
Expect(cue).To(ContainSubstring("details:"))
})
})
+1 -1
View File
@@ -624,7 +624,7 @@ func (g *WorkflowStepCUEGenerator) GenerateTemplate(w *WorkflowStepDefinition) s
sb.WriteString(fmt.Sprintf("%s\t\"\"\"#\n", innerIndent))
}
if w.GetStatusDetails() != "" {
sb.WriteString(fmt.Sprintf("%sstatusDetails: #\"\"\"\n", innerIndent))
sb.WriteString(fmt.Sprintf("%sdetails: #\"\"\"\n", innerIndent))
for _, line := range strings.Split(w.GetStatusDetails(), "\n") {
sb.WriteString(fmt.Sprintf("%s\t%s\n", innerIndent, line))
}
+2 -2
View File
@@ -414,7 +414,7 @@ template: {
It("should render statusDetails in CUE template block", func() {
cue := defkit.NewWorkflowStep("x").StatusDetails("foo").ToCue()
Expect(cue).To(ContainSubstring("status:"))
Expect(cue).To(ContainSubstring("statusDetails:"))
Expect(cue).To(ContainSubstring("details:"))
})
It("should render customStatus in CUE template block", func() {
@@ -443,7 +443,7 @@ template: {
Expect(cue).To(ContainSubstring("status:"))
Expect(cue).To(ContainSubstring("customStatus:"))
Expect(cue).To(ContainSubstring("healthPolicy:"))
Expect(cue).To(ContainSubstring("statusDetails:"))
Expect(cue).To(ContainSubstring("details:"))
})
})