Skip to content

Commit be74c5c

Browse files
authored
Refactor restart success message component (#868)
* refactor restart action success message * pass custom success message * fix type
1 parent 0c9baa7 commit be74c5c

File tree

5 files changed

+40
-31
lines changed

5 files changed

+40
-31
lines changed

src/views/workflow-actions/config/workflow-actions.config.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { type RestartWorkflowResponse } from '@/route-handlers/restart-workflow/
1111
import { type TerminateWorkflowResponse } from '@/route-handlers/terminate-workflow/terminate-workflow.types';
1212

1313
import getWorkflowIsCompleted from '../../workflow-page/helpers/get-workflow-is-completed';
14-
import WorkflowActionRestartSuccessMsg from '../workflow-action-restart-success-msg/workflow-action-restart-success-msg';
14+
import WorkflowActionNewRunSuccessMsg from '../workflow-action-new-run-success-msg/workflow-action-new-run-success-msg';
1515
import { type WorkflowAction } from '../workflow-actions.types';
1616

1717
const workflowActionsConfig: [
@@ -75,7 +75,10 @@ const workflowActionsConfig: [
7575
getRunnableStatus: () => 'RUNNABLE',
7676
apiRoute: 'restart',
7777
renderSuccessMessage: (props) =>
78-
createElement(WorkflowActionRestartSuccessMsg, props),
78+
createElement(WorkflowActionNewRunSuccessMsg, {
79+
...props,
80+
successMessage: 'Workflow has been restarted.',
81+
}),
7982
},
8083
] as const;
8184

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import { render, screen } from '@testing-library/react';
22

33
import { type RestartWorkflowResponse } from '@/route-handlers/restart-workflow/restart-workflow.types';
44

5-
import WorkflowActionRestartSuccessMsg from '../workflow-action-restart-success-msg';
5+
import WorkflowActionNewRunSuccessMsg from '../workflow-action-new-run-success-msg';
66

7-
describe('WorkflowActionRestartSuccessMsg', () => {
7+
describe('WorkflowActionNewRunSuccessMsg', () => {
88
const mockProps = {
99
result: {
1010
runId: 'test-run-id',
@@ -15,13 +15,14 @@ describe('WorkflowActionRestartSuccessMsg', () => {
1515
workflowId: 'test-workflow-id',
1616
runId: 'test-run-id',
1717
},
18+
successMessage: 'Workflow has been restarted.',
1819
};
1920

2021
it('renders the success message with a link', () => {
21-
render(<WorkflowActionRestartSuccessMsg {...mockProps} />);
22+
render(<WorkflowActionNewRunSuccessMsg {...mockProps} />);
2223

2324
expect(
24-
screen.getByText(/Workflow has been restarted[\.]/)
25+
screen.getByText(new RegExp(mockProps.successMessage))
2526
).toBeInTheDocument();
2627
expect(screen.getByText('Click here')).toBeInTheDocument();
2728
expect(
@@ -30,7 +31,7 @@ describe('WorkflowActionRestartSuccessMsg', () => {
3031
});
3132

3233
it('renders the link with the correct href', () => {
33-
render(<WorkflowActionRestartSuccessMsg {...mockProps} />);
34+
render(<WorkflowActionNewRunSuccessMsg {...mockProps} />);
3435
const { domain, cluster, workflowId, runId } = mockProps.inputParams;
3536
const link = screen.getByText('Click here');
3637
expect(link).toHaveAttribute(
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import Link from '@/components/link/link';
2+
3+
import { type Props } from './workflow-action-new-run-success-msg.types';
4+
5+
const WorkflowActionNewRunSuccessMsg = ({
6+
result: { runId },
7+
inputParams: { workflowId, cluster, domain },
8+
successMessage,
9+
}: Props) => {
10+
return (
11+
<>
12+
{successMessage}{' '}
13+
<Link
14+
color="contentInversePrimary"
15+
href={`/domains/${domain}/${cluster}/workflows/${workflowId}/${runId}`}
16+
>
17+
Click here
18+
</Link>{' '}
19+
to view the new workflow.
20+
</>
21+
);
22+
};
23+
24+
export default WorkflowActionNewRunSuccessMsg;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import { type WorkflowActionSuccessMessageProps } from '../workflow-actions.types';
2+
3+
export type Props = WorkflowActionSuccessMessageProps<{ runId: string }> & {
4+
successMessage: string;
5+
};

src/views/workflow-actions/workflow-action-restart-success-msg/workflow-action-restart-success-msg.tsx

Lines changed: 0 additions & 24 deletions
This file was deleted.

0 commit comments

Comments
 (0)