Skip to content

Commit b64487e

Browse files
authored
Strengthen timeout_minutes codemod tests with multiple-occurrence coverage (#33385)
1 parent f8cf157 commit b64487e

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

pkg/cli/codemod_timeout_minutes_test.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,3 +236,34 @@ custom_timeout_minutes: 60
236236
assert.True(t, foundTimeoutMinutes, "Should replace timeout_minutes")
237237
assert.True(t, foundCustomTimeoutMinutes, "Should not replace custom_timeout_minutes")
238238
}
239+
240+
func TestTimeoutMinutesCodemod_MultipleOccurrences(t *testing.T) {
241+
codemod := getTimeoutMinutesCodemod()
242+
243+
content := `---
244+
on: workflow_dispatch
245+
timeout_minutes: 30
246+
jobs:
247+
setup:
248+
timeout_minutes: 45
249+
---
250+
251+
# Test`
252+
253+
frontmatter := map[string]any{
254+
"on": "workflow_dispatch",
255+
"timeout_minutes": 30,
256+
"jobs": map[string]any{
257+
"setup": map[string]any{
258+
"timeout_minutes": 45,
259+
},
260+
},
261+
}
262+
263+
result, applied, err := codemod.Apply(content, frontmatter)
264+
265+
require.NoError(t, err, "Apply should not return an error")
266+
assert.True(t, applied, "Codemod should report changes")
267+
assert.Equal(t, 2, strings.Count(result, "timeout-minutes:"), "Codemod should replace all timeout_minutes occurrences in frontmatter")
268+
assert.NotContains(t, result, "timeout_minutes:", "Result should not contain old field name")
269+
}

0 commit comments

Comments
 (0)