From 0886414c723f6056534203ba71ce854bbfad66eb Mon Sep 17 00:00:00 2001 From: seiwailai Date: Sat, 1 May 2021 03:29:59 +0800 Subject: [PATCH] ProjectList: Change job status UI update logic. 1. Render current job status if there is current waiting, pending or running job.\n 2. Render last job status if there is no current job. --- .../Project/ProjectList/ProjectListItem.jsx | 20 +++++++++++++------ .../Project/ProjectList/useWsProjects.js | 2 +- .../ProjectList/useWsProjects.test.jsx | 6 +++--- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/awx/ui_next/src/screens/Project/ProjectList/ProjectListItem.jsx b/awx/ui_next/src/screens/Project/ProjectList/ProjectListItem.jsx index f291a00403..08058020f5 100644 --- a/awx/ui_next/src/screens/Project/ProjectList/ProjectListItem.jsx +++ b/awx/ui_next/src/screens/Project/ProjectList/ProjectListItem.jsx @@ -93,6 +93,14 @@ function ProjectListItem({ const missingExecutionEnvironment = project.custom_virtualenv && !project.default_environment; + let job = null; + + if (project.summary_fields?.current_job) { + job = project.summary_fields.current_job; + } else if (project.summary_fields?.last_job) { + job = project.summary_fields.last_job; + } + return ( <> @@ -132,14 +140,14 @@ function ProjectListItem({ )} - {project.summary_fields.last_job && ( + {job && ( - - + + )} @@ -171,7 +179,7 @@ function ProjectListItem({ > { { id: 1, summary_fields: { - last_job: { + current_job: { id: 1, status: 'running', finished: null, @@ -87,7 +87,7 @@ describe('useWsProjects', () => { }) ); expect( - wrapper.find('TestInner').prop('projects')[0].summary_fields.last_job + wrapper.find('TestInner').prop('projects')[0].summary_fields.current_job .status ).toEqual('running'); await act(async () => { @@ -104,7 +104,7 @@ describe('useWsProjects', () => { wrapper.update(); expect( - wrapper.find('TestInner').prop('projects')[0].summary_fields.last_job + wrapper.find('TestInner').prop('projects')[0].summary_fields.current_job ).toEqual({ id: 12, status: 'successful',