Skip to content

Commit

Permalink
TEP-0090: Test isSuccessful
Browse files Browse the repository at this point in the history
`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
  • Loading branch information
jerop committed Jun 14, 2022
1 parent c13edc2 commit 6b48188
Showing 1 changed file with 168 additions and 0 deletions.
168 changes: 168 additions & 0 deletions pkg/reconciler/pipelinerun/resources/pipelinerunresolution_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3000,3 +3000,171 @@ func TestIsMatrixed(t *testing.T) {
})
}
}

func TestIsSuccessful(t *testing.T) {
for _, tc := range []struct {
name string
rprt ResolvedPipelineRunTask
want bool
}{{
name: "taskrun not started",
rprt: ResolvedPipelineRunTask{
PipelineTask: &v1beta1.PipelineTask{Name: "task"},
},
want: false,
}, {
name: "run not started",
rprt: ResolvedPipelineRunTask{
PipelineTask: &v1beta1.PipelineTask{Name: "task"},
CustomTask: true,
},
want: false,
}, {
name: "taskrun running",
rprt: ResolvedPipelineRunTask{
PipelineTask: &v1beta1.PipelineTask{Name: "task"},
TaskRun: makeStarted(trs[0]),
},
want: false,
}, {

name: "run running",
rprt: ResolvedPipelineRunTask{
PipelineTask: &v1beta1.PipelineTask{Name: "task"},
CustomTask: true,
Run: makeRunStarted(runs[0]),
},
want: false,
}, {
name: "taskrun succeeded",
rprt: ResolvedPipelineRunTask{
PipelineTask: &v1beta1.PipelineTask{Name: "task"},
TaskRun: makeSucceeded(trs[0]),
},
want: true,
}, {

name: "run succeeded",
rprt: ResolvedPipelineRunTask{
PipelineTask: &v1beta1.PipelineTask{Name: "task"},
CustomTask: true,
Run: makeRunSucceeded(runs[0]),
},
want: true,
}, {
name: "taskrun failed",
rprt: ResolvedPipelineRunTask{
PipelineTask: &v1beta1.PipelineTask{Name: "task"},
TaskRun: makeFailed(trs[0]),
},
want: false,
}, {

name: "run failed",
rprt: ResolvedPipelineRunTask{
PipelineTask: &v1beta1.PipelineTask{Name: "task"},
CustomTask: true,
Run: makeRunFailed(runs[0]),
},
want: false,
}, {
name: "taskrun failed: retries remaining",
rprt: ResolvedPipelineRunTask{
PipelineTask: &v1beta1.PipelineTask{Name: "task", Retries: 1},
TaskRun: makeFailed(trs[0]),
},
want: false,
}, {

name: "run failed: retries remaining",
rprt: ResolvedPipelineRunTask{
PipelineTask: &v1beta1.PipelineTask{Name: "task", Retries: 1},
CustomTask: true,
Run: makeRunFailed(runs[0]),
},
want: false,
}, {
name: "taskrun failed: no retries remaining",
rprt: ResolvedPipelineRunTask{
PipelineTask: &v1beta1.PipelineTask{Name: "task", Retries: 1},
TaskRun: withRetries(makeFailed(trs[0])),
},
want: false,
}, {

name: "run failed: no retries remaining",
rprt: ResolvedPipelineRunTask{
PipelineTask: &v1beta1.PipelineTask{Name: "task", Retries: 1},
CustomTask: true,
Run: withRunRetries(makeRunFailed(runs[0])),
},
want: false,
}, {
name: "taskrun cancelled",
rprt: ResolvedPipelineRunTask{
PipelineTask: &v1beta1.PipelineTask{Name: "task"},
TaskRun: withCancelled(makeFailed(trs[0])),
},
want: false,
}, {
name: "taskrun cancelled but not failed",
rprt: ResolvedPipelineRunTask{
PipelineTask: &v1beta1.PipelineTask{Name: "task"},
TaskRun: withCancelled(newTaskRun(trs[0])),
},
want: false,
}, {
name: "run cancelled",
rprt: ResolvedPipelineRunTask{
PipelineTask: &v1beta1.PipelineTask{Name: "task"},
Run: withRunCancelled(makeRunFailed(runs[0])),
CustomTask: true,
},
want: false,
}, {
name: "run cancelled but not failed",
rprt: ResolvedPipelineRunTask{
PipelineTask: &v1beta1.PipelineTask{Name: "task"},
Run: withRunCancelled(newRun(runs[0])),
CustomTask: true,
},
want: false,
}, {
name: "taskrun cancelled: retries remaining",
rprt: ResolvedPipelineRunTask{
PipelineTask: &v1beta1.PipelineTask{Name: "task", Retries: 1},
TaskRun: withCancelled(makeFailed(trs[0])),
},
want: false,
}, {
name: "run cancelled: retries remaining",
rprt: ResolvedPipelineRunTask{
PipelineTask: &v1beta1.PipelineTask{Name: "task", Retries: 1},
Run: withRunCancelled(makeRunFailed(runs[0])),
CustomTask: true,
},
want: false,
}, {
name: "taskrun cancelled: no retries remaining",
rprt: ResolvedPipelineRunTask{
PipelineTask: &v1beta1.PipelineTask{Name: "task", Retries: 1},
TaskRun: withCancelled(withRetries(makeFailed(trs[0]))),
},
want: false,
}, {
name: "run cancelled: no retries remaining",
rprt: ResolvedPipelineRunTask{
PipelineTask: &v1beta1.PipelineTask{Name: "task", Retries: 1},
Run: withRunCancelled(withRunRetries(makeRunFailed(runs[0]))),
CustomTask: true,
},
want: false,
}} {
t.Run(tc.name, func(t *testing.T) {
if got := tc.rprt.isSuccessful(); got != tc.want {
t.Errorf("expected isSuccessful: %t but got %t", tc.want, got)
}

})
}
}

0 comments on commit 6b48188

Please sign in to comment.