Skip to content

Commit 0dd7d0f

Browse files
committed
fix(pipeline): null check on status of taskrun
1 parent eabc80b commit 0dd7d0f

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

src/components/EnterpriseContract/__tests__/useEnterpriseContractResultFromLogs.spec.tsx

+14
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,20 @@ describe('useEnterpriseContractResultFromLogs', () => {
5454
expect(result.current[0][0].warnings).toEqual(undefined);
5555
});
5656

57+
it('should call tknResults when taskRun is empty array', () => {
58+
mockUseTaskRuns.mockReturnValueOnce([[], true, undefined]);
59+
mockGetTaskRunLogs.mockReturnValue(`asdfcdfadsf
60+
[report-json] { "components": [] }
61+
`);
62+
const { result } = renderHook(() => useEnterpriseContractResultFromLogs('dummy-abcd'));
63+
const [, loaded] = result.current;
64+
expect(mockCommmonFetchJSON).toHaveBeenCalled();
65+
expect(loaded).toBe(true);
66+
expect(mockCommmonFetchJSON).toHaveBeenLastCalledWith(
67+
'/api/v1/namespaces/test-ns/pods/pod-acdf/log?container=step-report-json&follow=true',
68+
);
69+
});
70+
5771
it('should filter out all 404 image url components from EC results', async () => {
5872
const { result, waitForNextUpdate } = renderHook(() =>
5973
useEnterpriseContractResultFromLogs('dummy-abcd'),

src/components/EnterpriseContract/useEnterpriseContractResultFromLogs.tsx

+5-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export const useEnterpriseContractResultFromLogs = (
2222
const [ecJson, setEcJson] = React.useState<EnterpriseContractResult>();
2323
const [ecLoaded, setEcLoaded] = React.useState<boolean>(false);
2424
const ecResultOpts = React.useMemo(() => {
25-
const podName = loaded && !error ? taskRun[0].status.podName : null;
25+
const podName = loaded && !error ? taskRun?.[0]?.status?.podName : null;
2626
return podName
2727
? {
2828
ns: namespace,
@@ -38,6 +38,9 @@ export const useEnterpriseContractResultFromLogs = (
3838

3939
React.useEffect(() => {
4040
let unmount = false;
41+
if (loaded && !ecResultOpts) {
42+
setFetchTknLogs(true);
43+
}
4144
if (ecResultOpts) {
4245
commonFetchJSON(getK8sResourceURL(PodModel, undefined, ecResultOpts))
4346
.then((res: EnterpriseContractResult) => {
@@ -59,7 +62,7 @@ export const useEnterpriseContractResultFromLogs = (
5962
return () => {
6063
unmount = true;
6164
};
62-
}, [ecResultOpts]);
65+
}, [ecResultOpts, loaded]);
6366

6467
React.useEffect(() => {
6568
let unmount = false;

0 commit comments

Comments
 (0)