diff --git a/.changeset/mean-emus-hide.md b/.changeset/mean-emus-hide.md new file mode 100644 index 0000000000..955e25d258 --- /dev/null +++ b/.changeset/mean-emus-hide.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-react': patch +--- + +Remove timer for skipped steps in Scaffolder Next's TaskSteps diff --git a/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.test.tsx b/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.test.tsx index 0945843961..cbc87c2d53 100644 --- a/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.test.tsx +++ b/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.test.tsx @@ -61,4 +61,55 @@ describe('TaskSteps', () => { expect(getByText(step.name)).toBeInTheDocument(); } }); + it('should only show timer for in progress, failed, and completed steps', async () => { + const steps = [ + { + id: '1', + name: 'Fail', + status: 'failed' as ScaffolderTaskStatus, + + startedAt: Date.now().toLocaleString(), + endedAt: Date.now().toLocaleString(), + action: 'action1', + }, + { + id: '2', + name: 'Process', + status: 'processing' as ScaffolderTaskStatus, + startedAt: Date.now().toLocaleString(), + action: 'action2', + }, + { + id: '3', + name: 'Complete', + status: 'completed' as ScaffolderTaskStatus, + startedAt: Date.now().toLocaleString(), + endedAt: Date.now().toLocaleString(), + action: 'action3', + }, + { + id: '4', + name: 'Skip', + status: 'skipped' as ScaffolderTaskStatus, + startedAt: Date.now().toLocaleString(), + action: 'action4', + }, + { + id: '5', + name: 'Not Started', + status: 'open' as ScaffolderTaskStatus, + action: 'action5', + }, + ]; + + const screen = await renderInTestApp(); + const stepLabels = await screen.findAllByTestId('step-label'); + expect(stepLabels.length).toBe(steps.length); + for (let i = 0; i < steps.length; i++) { + expect(stepLabels[i].textContent?.startsWith(steps[i].name)).toBe(true); + expect(stepLabels[i].textContent?.endsWith('seconds')).toBe( + steps[i].status !== 'skipped' && !!steps[i].startedAt, + ); + } + }); }); diff --git a/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.tsx b/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.tsx index 632500f07e..d783351eca 100644 --- a/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.tsx +++ b/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.tsx @@ -78,9 +78,10 @@ export const TaskSteps = (props: TaskStepsProps) => { {step.name} - + {!isSkipped && }