Skip to content

Commit f09a57c

Browse files
committed
Add tests for isSuccessful
`isSuccessful` is an unexported function, so it did not have tests per the in [guidelines][guidelines]. The recommendation is to not test unexported function, and if needed to move the function into a package, test it then export the function. However, this is hard to do for the resources package because of cyclic dependencies. We already have tests for another unexported function - `isFailure` - and discussions to make exceptions for that guideline are ongoing. In this change, we add tests for `isSuccessful` to ensure it works as expected, as we prepare to make changes to the function to support `Matrix`. [guidelines]: https://github.com/tektoncd/community/blob/ac0ae1b304ef515e8099f772f42b91aac1b26e6b/standards.md#tests
1 parent c13edc2 commit f09a57c

File tree

1 file changed

+168
-0
lines changed

1 file changed

+168
-0
lines changed

pkg/reconciler/pipelinerun/resources/pipelinerunresolution_test.go

Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3000,3 +3000,171 @@ func TestIsMatrixed(t *testing.T) {
30003000
})
30013001
}
30023002
}
3003+
3004+
func TestIsSuccessful(t *testing.T) {
3005+
for _, tc := range []struct {
3006+
name string
3007+
rprt ResolvedPipelineRunTask
3008+
want bool
3009+
}{{
3010+
name: "taskrun not started",
3011+
rprt: ResolvedPipelineRunTask{
3012+
PipelineTask: &v1beta1.PipelineTask{Name: "task"},
3013+
},
3014+
want: false,
3015+
}, {
3016+
name: "run not started",
3017+
rprt: ResolvedPipelineRunTask{
3018+
PipelineTask: &v1beta1.PipelineTask{Name: "task"},
3019+
CustomTask: true,
3020+
},
3021+
want: false,
3022+
}, {
3023+
name: "taskrun running",
3024+
rprt: ResolvedPipelineRunTask{
3025+
PipelineTask: &v1beta1.PipelineTask{Name: "task"},
3026+
TaskRun: makeStarted(trs[0]),
3027+
},
3028+
want: false,
3029+
}, {
3030+
3031+
name: "run running",
3032+
rprt: ResolvedPipelineRunTask{
3033+
PipelineTask: &v1beta1.PipelineTask{Name: "task"},
3034+
CustomTask: true,
3035+
Run: makeRunStarted(runs[0]),
3036+
},
3037+
want: false,
3038+
}, {
3039+
name: "taskrun succeeded",
3040+
rprt: ResolvedPipelineRunTask{
3041+
PipelineTask: &v1beta1.PipelineTask{Name: "task"},
3042+
TaskRun: makeSucceeded(trs[0]),
3043+
},
3044+
want: true,
3045+
}, {
3046+
3047+
name: "run succeeded",
3048+
rprt: ResolvedPipelineRunTask{
3049+
PipelineTask: &v1beta1.PipelineTask{Name: "task"},
3050+
CustomTask: true,
3051+
Run: makeRunSucceeded(runs[0]),
3052+
},
3053+
want: true,
3054+
}, {
3055+
name: "taskrun failed",
3056+
rprt: ResolvedPipelineRunTask{
3057+
PipelineTask: &v1beta1.PipelineTask{Name: "task"},
3058+
TaskRun: makeFailed(trs[0]),
3059+
},
3060+
want: false,
3061+
}, {
3062+
3063+
name: "run failed",
3064+
rprt: ResolvedPipelineRunTask{
3065+
PipelineTask: &v1beta1.PipelineTask{Name: "task"},
3066+
CustomTask: true,
3067+
Run: makeRunFailed(runs[0]),
3068+
},
3069+
want: false,
3070+
}, {
3071+
name: "taskrun failed: retries remaining",
3072+
rprt: ResolvedPipelineRunTask{
3073+
PipelineTask: &v1beta1.PipelineTask{Name: "task", Retries: 1},
3074+
TaskRun: makeFailed(trs[0]),
3075+
},
3076+
want: false,
3077+
}, {
3078+
3079+
name: "run failed: retries remaining",
3080+
rprt: ResolvedPipelineRunTask{
3081+
PipelineTask: &v1beta1.PipelineTask{Name: "task", Retries: 1},
3082+
CustomTask: true,
3083+
Run: makeRunFailed(runs[0]),
3084+
},
3085+
want: false,
3086+
}, {
3087+
name: "taskrun failed: no retries remaining",
3088+
rprt: ResolvedPipelineRunTask{
3089+
PipelineTask: &v1beta1.PipelineTask{Name: "task", Retries: 1},
3090+
TaskRun: withRetries(makeFailed(trs[0])),
3091+
},
3092+
want: false,
3093+
}, {
3094+
3095+
name: "run failed: no retries remaining",
3096+
rprt: ResolvedPipelineRunTask{
3097+
PipelineTask: &v1beta1.PipelineTask{Name: "task", Retries: 1},
3098+
CustomTask: true,
3099+
Run: withRunRetries(makeRunFailed(runs[0])),
3100+
},
3101+
want: false,
3102+
}, {
3103+
name: "taskrun cancelled",
3104+
rprt: ResolvedPipelineRunTask{
3105+
PipelineTask: &v1beta1.PipelineTask{Name: "task"},
3106+
TaskRun: withCancelled(makeFailed(trs[0])),
3107+
},
3108+
want: false,
3109+
}, {
3110+
name: "taskrun cancelled but not failed",
3111+
rprt: ResolvedPipelineRunTask{
3112+
PipelineTask: &v1beta1.PipelineTask{Name: "task"},
3113+
TaskRun: withCancelled(newTaskRun(trs[0])),
3114+
},
3115+
want: false,
3116+
}, {
3117+
name: "run cancelled",
3118+
rprt: ResolvedPipelineRunTask{
3119+
PipelineTask: &v1beta1.PipelineTask{Name: "task"},
3120+
Run: withRunCancelled(makeRunFailed(runs[0])),
3121+
CustomTask: true,
3122+
},
3123+
want: false,
3124+
}, {
3125+
name: "run cancelled but not failed",
3126+
rprt: ResolvedPipelineRunTask{
3127+
PipelineTask: &v1beta1.PipelineTask{Name: "task"},
3128+
Run: withRunCancelled(newRun(runs[0])),
3129+
CustomTask: true,
3130+
},
3131+
want: false,
3132+
}, {
3133+
name: "taskrun cancelled: retries remaining",
3134+
rprt: ResolvedPipelineRunTask{
3135+
PipelineTask: &v1beta1.PipelineTask{Name: "task", Retries: 1},
3136+
TaskRun: withCancelled(makeFailed(trs[0])),
3137+
},
3138+
want: false,
3139+
}, {
3140+
name: "run cancelled: retries remaining",
3141+
rprt: ResolvedPipelineRunTask{
3142+
PipelineTask: &v1beta1.PipelineTask{Name: "task", Retries: 1},
3143+
Run: withRunCancelled(makeRunFailed(runs[0])),
3144+
CustomTask: true,
3145+
},
3146+
want: false,
3147+
}, {
3148+
name: "taskrun cancelled: no retries remaining",
3149+
rprt: ResolvedPipelineRunTask{
3150+
PipelineTask: &v1beta1.PipelineTask{Name: "task", Retries: 1},
3151+
TaskRun: withCancelled(withRetries(makeFailed(trs[0]))),
3152+
},
3153+
want: false,
3154+
}, {
3155+
name: "run cancelled: no retries remaining",
3156+
rprt: ResolvedPipelineRunTask{
3157+
PipelineTask: &v1beta1.PipelineTask{Name: "task", Retries: 1},
3158+
Run: withRunCancelled(withRunRetries(makeRunFailed(runs[0]))),
3159+
CustomTask: true,
3160+
},
3161+
want: false,
3162+
}} {
3163+
t.Run(tc.name, func(t *testing.T) {
3164+
if got := tc.rprt.isSuccessful(); got != tc.want {
3165+
t.Errorf("expected isSuccessful: %t but got %t", tc.want, got)
3166+
}
3167+
3168+
})
3169+
}
3170+
}

0 commit comments

Comments
 (0)