+
+
+
+
执行结果
+
+ 操作
+
+
+
+
+
+
+
+
+
+
+ 再次执行
+
+
+
+
diff --git a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/SqlFileStatementOverview/__tests__/index.test.tsx b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/SqlFileStatementOverview/__tests__/index.test.tsx
index 4a1f0d700..cd26c031f 100644
--- a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/SqlFileStatementOverview/__tests__/index.test.tsx
+++ b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/SqlFileStatementOverview/__tests__/index.test.tsx
@@ -8,6 +8,12 @@ import {
ignoreConsoleErrors
} from '@actiontech/shared/lib/testUtil/common';
import { mockUseCurrentUser } from '@actiontech/shared/lib/testUtil/mockHook/mockUseCurrentUser';
+import execWorkflow from '@actiontech/shared/lib/testUtil/mockApi/sqle/execWorkflow';
+import { useDispatch, useSelector } from 'react-redux';
+import { ModalName } from '../../../../../../../../data/ModalName';
+import EmitterKey from '../../../../../../../../data/EmitterKey';
+import EventEmitter from '../../../../../../../../utils/EventEmitter';
+import * as useRetryExecuteHook from '../../../hooks/useRetryExecute';
jest.mock('react-router-dom', () => {
return {
@@ -17,11 +23,21 @@ jest.mock('react-router-dom', () => {
};
});
+jest.mock('react-redux', () => ({
+ ...jest.requireActual('react-redux'),
+ useDispatch: jest.fn(),
+ useSelector: jest.fn()
+}));
+
describe('test AuditDetail/SqlFileStatementOverview', () => {
let getTaskSQLsSpy: jest.SpyInstance;
let getAuditFileExecStatistic: jest.SpyInstance;
const useParamsMock: jest.Mock = useParams as jest.Mock;
const navigateSpy = jest.fn();
+ const dispatchSpy = jest.fn();
+
+ let getWorkflowSpy: jest.SpyInstance;
+ let getSummaryOfInstanceTasksSpy: jest.SpyInstance;
ignoreConsoleErrors([UtilsConsoleErrorStringsEnum.UNIQUE_KEY_REQUIRED]);
@@ -30,8 +46,34 @@ describe('test AuditDetail/SqlFileStatementOverview', () => {
jest.useFakeTimers();
getTaskSQLsSpy = task.getAuditTaskSQLs();
getAuditFileExecStatistic = task.getAuditFileExecStatistic();
- useParamsMock.mockReturnValue({ taskId: '15', fileId: '434' });
+ useParamsMock.mockReturnValue({
+ taskId: '15',
+ fileId: '434',
+ workflowId: '123'
+ });
(useNavigate as jest.Mock).mockImplementation(() => navigateSpy);
+ getWorkflowSpy = execWorkflow.getWorkflow();
+ getSummaryOfInstanceTasksSpy = execWorkflow.getSummaryOfInstanceTasks();
+ (useDispatch as jest.Mock).mockImplementation(() => dispatchSpy);
+ (useSelector as jest.Mock).mockImplementation((selector) =>
+ selector({
+ permission: {
+ moduleFeatureSupport: {
+ sqlOptimization: false,
+ knowledge: false
+ },
+ userOperationPermissions: null
+ },
+ sqlExecWorkflow: {
+ retryExecuteData: {},
+ modalStatus: {
+ [ModalName.Sql_Exec_Workflow_Retry_Execute_Modal]: false
+ }
+ }
+ })
+ );
+ const spy = jest.spyOn(useRetryExecuteHook, 'default');
+ spy.mockImplementation(() => ({ enableRetryExecute: true }));
});
afterEach(() => {
jest.useRealTimers();
@@ -55,6 +97,10 @@ describe('test AuditDetail/SqlFileStatementOverview', () => {
filter_exec_status: undefined,
no_duplicate: false
});
+
+ expect(getWorkflowSpy).toHaveBeenCalledTimes(1);
+ expect(getSummaryOfInstanceTasksSpy).toHaveBeenCalledTimes(1);
+
expect(container).toMatchSnapshot();
await act(async () => jest.advanceTimersByTime(3000));
@@ -99,4 +145,27 @@ describe('test AuditDetail/SqlFileStatementOverview', () => {
no_duplicate: true
});
});
+
+ it('should refresh file sql when emit Sql_Retry_Execute_Done event', async () => {
+ sqleSuperRender(
);
+ await act(async () => jest.advanceTimersByTime(3000));
+ expect(getTaskSQLsSpy).toHaveBeenCalledTimes(1);
+ act(() => {
+ EventEmitter.emit(EmitterKey.Sql_Retry_Execute_Done);
+ });
+ expect(getTaskSQLsSpy).toHaveBeenCalledTimes(2);
+ });
+
+ it('should init modal status', async () => {
+ sqleSuperRender(
);
+ expect(dispatchSpy).toHaveBeenCalledTimes(1);
+ expect(dispatchSpy).toHaveBeenCalledWith({
+ type: 'sqlExecWorkflow/initModalStatus',
+ payload: {
+ modalStatus: {
+ [ModalName.Sql_Exec_Workflow_Retry_Execute_Modal]: false
+ }
+ }
+ });
+ });
});
diff --git a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/SqlFileStatementOverview/index.tsx b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/SqlFileStatementOverview/index.tsx
index b5d6c2369..287e3a463 100644
--- a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/SqlFileStatementOverview/index.tsx
+++ b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/SqlFileStatementOverview/index.tsx
@@ -38,13 +38,27 @@ import DownloadRecord from '../../../../../Common/DownloadRecord';
import { AuditResultFilterContainerStyleWrapper } from '../../../../../Common/AuditResultFilterContainer/style';
import { LeftArrowOutlined, SqlFileOutlined } from '@actiontech/icons';
import { ROUTE_PATHS } from '@actiontech/dms-kit';
+import { ModalName } from '../../../../../../../data/ModalName';
+import EmitterKey from '../../../../../../../data/EmitterKey';
+import EventEmitter from '../../../../../../../utils/EventEmitter';
+import { initSqlExecWorkflowModalStatus } from '../../../../../../../store/sqlExecWorkflow';
+import { useEffect } from 'react';
+import { useDispatch } from 'react-redux';
+import RetryExecuteModal from '../../RetryExecuteModal';
+import workflow from '@actiontech/shared/lib/api/sqle/service/workflow';
+import { useCurrentProject } from '@actiontech/shared/lib/features';
+import useRetryExecute from '../../hooks/useRetryExecute';
+
const SqlFileStatementOverview: React.FC = () => {
const { t } = useTranslation();
- const { taskId, fileId } =
+ const dispatch = useDispatch();
+ const { taskId, fileId, workflowId } =
useTypedParams<
typeof ROUTE_PATHS.SQLE.SQL_EXEC_WORKFLOW.sql_files_overview
>();
+ const { projectName } = useCurrentProject();
+
const extractQuery = useTypedQuery();
const navigate = useTypedNavigate();
@@ -65,6 +79,37 @@ const SqlFileStatementOverview: React.FC = () => {
updateTableFilterInfo,
AuditTaskExtraFilterMeta()
);
+
+ const { data: workflowInfo, loading: getWorkflowLoading } = useRequest(
+ () =>
+ workflow
+ .getWorkflowV2({
+ project_name: projectName,
+ workflow_id: workflowId ?? ''
+ })
+ .then((res) => res.data.data),
+ {
+ ready: !!workflowId
+ }
+ );
+
+ const { loading: taskListLoading, data: currentTask } = useRequest(
+ () =>
+ workflow
+ .getSummaryOfInstanceTasksV2({
+ workflow_id: workflowId ?? '',
+ project_name: projectName
+ })
+ .then((res) => {
+ if (res.data.code === ResponseCode.SUCCESS) {
+ return res.data.data?.find((i) => i.task_id?.toString() === taskId);
+ }
+ }),
+ {
+ ready: !!workflowId
+ }
+ );
+
const { data: currentFileOverview } = useRequest(() =>
task
.getAuditFileExecStatistic({
@@ -77,7 +122,7 @@ const SqlFileStatementOverview: React.FC = () => {
}
})
);
- const { data, loading } = useRequest(
+ const { data, loading, refresh } = useRequest(
() =>
handleTableRequestError(
task.getAuditTaskSQLsV2({
@@ -104,6 +149,29 @@ const SqlFileStatementOverview: React.FC = () => {
ROUTE_PATHS.SQLE.SQL_EXEC_WORKFLOW.sql_files_overview
);
+ useEffect(() => {
+ dispatch(
+ initSqlExecWorkflowModalStatus({
+ modalStatus: {
+ [ModalName.Sql_Exec_Workflow_Retry_Execute_Modal]: false
+ }
+ })
+ );
+ }, [dispatch]);
+
+ const { enableRetryExecute } = useRetryExecute({
+ currentTask,
+ workflowInfo
+ });
+
+ useEffect(() => {
+ const { unsubscribe } = EventEmitter.subscribe(
+ EmitterKey.Sql_Retry_Execute_Done,
+ refresh
+ );
+ return unsubscribe;
+ }, [refresh]);
+
return (
{
{
isPaginationFixed
instanceName={searchParams?.instance_name ?? ''}
schema={searchParams?.schema ?? ''}
+ enableSqlRetryExecute={enableRetryExecute}
/>
+
);
};
diff --git a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/WaterfallList/FileExecuteMode/__tests__/__snapshots__/index.test.tsx.snap b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/WaterfallList/FileExecuteMode/__tests__/__snapshots__/index.test.tsx.snap
index 860d0f006..64d0689b5 100644
--- a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/WaterfallList/FileExecuteMode/__tests__/__snapshots__/index.test.tsx.snap
+++ b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/WaterfallList/FileExecuteMode/__tests__/__snapshots__/index.test.tsx.snap
@@ -247,7 +247,7 @@ exports[`test WaterfallList/FileExecuteMode should match snapshot 2`] = `
create_table_if_not_exist.sql
@@ -409,7 +409,7 @@ exports[`test WaterfallList/FileExecuteMode should match snapshot 2`] = `
create_table_roll_back.sql
@@ -547,7 +547,7 @@ exports[`test WaterfallList/FileExecuteMode should match snapshot 2`] = `
new_folder/create_table_if_not_exist.sql
@@ -709,7 +709,7 @@ exports[`test WaterfallList/FileExecuteMode should match snapshot 2`] = `
new_folder/create_table_roll_back.sql
@@ -847,7 +847,7 @@ exports[`test WaterfallList/FileExecuteMode should match snapshot 2`] = `
new_folder/in_folder/create_table_if_not_exist.sql
@@ -1009,7 +1009,7 @@ exports[`test WaterfallList/FileExecuteMode should match snapshot 2`] = `
new_folder/in_folder/create_table_roll_back.sql
diff --git a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/WaterfallList/FileExecuteMode/__tests__/index.test.tsx b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/WaterfallList/FileExecuteMode/__tests__/index.test.tsx
index b29d4bc10..abfd9ca11 100644
--- a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/WaterfallList/FileExecuteMode/__tests__/index.test.tsx
+++ b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/WaterfallList/FileExecuteMode/__tests__/index.test.tsx
@@ -20,6 +20,7 @@ describe('test WaterfallList/FileExecuteMode', () => {
assigneeUserNames: [mockCurrentUserReturn.username],
workflowStatus: WorkflowRecordResV2StatusEnum.wait_for_execution,
execStatusFilterValue: null,
+ enableRetryExecute: true,
...params
};
return sqleSuperRender(
);
diff --git a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/WaterfallList/FileExecuteMode/index.tsx b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/WaterfallList/FileExecuteMode/index.tsx
index 97b50aa7b..e3c60e261 100644
--- a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/WaterfallList/FileExecuteMode/index.tsx
+++ b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/WaterfallList/FileExecuteMode/index.tsx
@@ -25,7 +25,8 @@ const FileExecuteMode: React.FC
= ({
auditResultActiveKey,
assigneeUserNames,
instanceName,
- schema
+ schema,
+ enableRetryExecute
}) => {
const { projectID } = useCurrentProject();
const scrollPageNumber = useRef(0);
@@ -119,6 +120,7 @@ const FileExecuteMode: React.FC = ({
taskId={taskId}
instanceName={instanceName}
schema={schema}
+ enableRetryExecute={enableRetryExecute}
/>
);
diff --git a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/WaterfallList/SqlExecuteMode/__tests__/__snapshots__/index.test.tsx.snap b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/WaterfallList/SqlExecuteMode/__tests__/__snapshots__/index.test.tsx.snap
index 69f0ce17a..221ea16b0 100644
--- a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/WaterfallList/SqlExecuteMode/__tests__/__snapshots__/index.test.tsx.snap
+++ b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/WaterfallList/SqlExecuteMode/__tests__/__snapshots__/index.test.tsx.snap
@@ -115,6 +115,19 @@ exports[`test WaterfallList/SQLExecuteMode render onUpdateDescription 1`] = `
+
+
+
+ 再次执行
+
+
+
+
+
+
+ 再次执行
+
+
+
({
+ ...jest.requireActual('react-redux'),
+ useSelector: jest.fn()
+}));
+
describe('test WaterfallList/SQLExecuteMode', () => {
const customRender = (params?: Partial) => {
const _params: SqlExecuteModeProps = {
@@ -39,7 +45,8 @@ describe('test WaterfallList/SQLExecuteMode', () => {
noDuplicate: false,
tableFilterInfo: {},
assigneeUserNames: [mockCurrentUserReturn.username],
- execStatusFilterValue: null
+ execStatusFilterValue: null,
+ enableRetryExecute: true
};
return sqleSuperRender( );
};
@@ -48,6 +55,9 @@ describe('test WaterfallList/SQLExecuteMode', () => {
mockUseCurrentUser();
jest.useFakeTimers();
mockUseCurrentProject();
+ mockUsePermission(undefined, {
+ mockSelector: true
+ });
});
afterEach(() => {
jest.useRealTimers();
diff --git a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/WaterfallList/SqlExecuteMode/index.tsx b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/WaterfallList/SqlExecuteMode/index.tsx
index e3fb9649c..d7989506c 100644
--- a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/WaterfallList/SqlExecuteMode/index.tsx
+++ b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/WaterfallList/SqlExecuteMode/index.tsx
@@ -25,7 +25,8 @@ const SqlExecuteMode: React.FC = ({
enableBackup,
taskStatus,
instanceName,
- schema
+ schema,
+ enableRetryExecute
}) => {
const { projectID } = useCurrentProject();
const scrollPageNumber = useRef(0);
@@ -177,6 +178,7 @@ const SqlExecuteMode: React.FC = ({
taskStatus={taskStatus}
instanceName={instanceName}
schema={schema}
+ enableRetryExecute={enableRetryExecute}
/>
);
diff --git a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/WaterfallList/__tests__/__snapshots__/index.test.tsx.snap b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/WaterfallList/__tests__/__snapshots__/index.test.tsx.snap
index f322b8344..cf1be5b76 100644
--- a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/WaterfallList/__tests__/__snapshots__/index.test.tsx.snap
+++ b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/WaterfallList/__tests__/__snapshots__/index.test.tsx.snap
@@ -15,6 +15,7 @@ exports[`test ExecWorkflow/TaskResultList/WaterfallList should match snapshot 1`
}
auditResultActiveKey="123"
currentListLayout="pagination"
+ enableRetryExecute={true}
execStatusFilterValue={null}
noDuplicate={false}
tableFilterInfo={{}}
@@ -30,6 +31,7 @@ exports[`test ExecWorkflow/TaskResultList/WaterfallList should match snapshot 1`
}
auditResultActiveKey="123"
currentListLayout="pagination"
+ enableRetryExecute={true}
execStatusFilterValue={null}
noDuplicate={false}
tableFilterInfo={{}}
@@ -55,6 +57,7 @@ exports[`test ExecWorkflow/TaskResultList/WaterfallList should match snapshot 2`
}
auditResultActiveKey="123"
currentListLayout="pagination"
+ enableRetryExecute={true}
execStatusFilterValue={null}
noDuplicate={false}
tableFilterInfo={{}}
@@ -70,6 +73,7 @@ exports[`test ExecWorkflow/TaskResultList/WaterfallList should match snapshot 2`
}
auditResultActiveKey="123"
currentListLayout="pagination"
+ enableRetryExecute={true}
execStatusFilterValue={null}
noDuplicate={false}
tableFilterInfo={{}}
diff --git a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/WaterfallList/__tests__/index.test.tsx b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/WaterfallList/__tests__/index.test.tsx
index 74c8cadbd..52bf459db 100644
--- a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/WaterfallList/__tests__/index.test.tsx
+++ b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/WaterfallList/__tests__/index.test.tsx
@@ -15,7 +15,8 @@ describe('test ExecWorkflow/TaskResultList/WaterfallList', () => {
noDuplicate: false,
tableFilterInfo: {},
assigneeUserNames: [mockCurrentUserReturn.username],
- execStatusFilterValue: null
+ execStatusFilterValue: null,
+ enableRetryExecute: true
};
expect(
diff --git a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/__tests__/__snapshots__/index.test.tsx.snap b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/__tests__/__snapshots__/index.test.tsx.snap
index 76e1a8db0..6b5535999 100644
--- a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/__tests__/__snapshots__/index.test.tsx.snap
+++ b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/__tests__/__snapshots__/index.test.tsx.snap
@@ -9,6 +9,7 @@ exports[`test ExecWorkflow/TaskResultList should match snapshot when currentList
}
auditResultActiveKey="123"
currentListLayout="pagination"
+ enableRetryExecute={true}
execStatusFilterValue={null}
executeMode="sqls"
noDuplicate={false}
@@ -33,6 +34,7 @@ exports[`test ExecWorkflow/TaskResultList should match snapshot when currentList
}
auditResultActiveKey="123"
currentListLayout="scroll"
+ enableRetryExecute={true}
execStatusFilterValue={null}
executeMode="sqls"
noDuplicate={false}
diff --git a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/__tests__/index.test.tsx b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/__tests__/index.test.tsx
index a761abe47..6cf32861e 100644
--- a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/__tests__/index.test.tsx
+++ b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/__tests__/index.test.tsx
@@ -19,6 +19,7 @@ describe('test ExecWorkflow/TaskResultList', () => {
pagination={{ page_index: 1, page_size: 10 }}
assigneeUserNames={[mockCurrentUserReturn.username]}
execStatusFilterValue={null}
+ enableRetryExecute
/>
);
@@ -38,6 +39,7 @@ describe('test ExecWorkflow/TaskResultList', () => {
pagination={{ page_index: 1, page_size: 10 }}
assigneeUserNames={[mockCurrentUserReturn.username]}
execStatusFilterValue={null}
+ enableRetryExecute
/>
);
diff --git a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/index.type.ts b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/index.type.ts
index f974fab78..d6eb60a36 100644
--- a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/index.type.ts
+++ b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/TaskResultList/index.type.ts
@@ -23,4 +23,5 @@ export type TasksResultListBaseProps = {
taskStatus?: AuditTaskResV1StatusEnum;
instanceName?: string;
schema?: string;
+ enableRetryExecute: boolean;
};
diff --git a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/__tests__/__snapshots__/index.test.tsx.snap b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/__tests__/__snapshots__/index.test.tsx.snap
index 00b3d1ec2..1ee412322 100644
--- a/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/__tests__/__snapshots__/index.test.tsx.snap
+++ b/packages/sqle/src/page/SqlExecWorkflow/Detail/components/AuditExecResultPanel/__tests__/__snapshots__/index.test.tsx.snap
@@ -1108,6 +1108,10 @@ exports[`test AuditExecResultPanel matches snapshot and selects task on initial
+
+
+
+
+ 再次执行
+
+
+
+
+
+
+ 再次执行
+
+
+
`;
-exports[`test AuditExecResultPanel updates layout to waterfall and retrieves task SQLs 1`] = `
+exports[`test AuditExecResultPanel sql retry execute permission should enable retry execute when task is failed and current time enable execute workflow 1`] = `
-
- 2000
- %
-
+ -
@@ -2757,11 +2783,7 @@ exports[`test AuditExecResultPanel updates layout to waterfall and retrieves tas
-
- 30
-
+ -
@@ -2771,120 +2793,1112 @@ exports[`test AuditExecResultPanel updates layout to waterfall and retrieves tas
-
-
- instance_schema
-
-
- Schema
-
-
-
+ />
+
+
+
+`;
+
+exports[`test AuditExecResultPanel updates layout to waterfall and retrieves task SQLs 1`] = `
+
+
+
+ 审核结果
+
+
+
+
+
+
+
+ 概览
+
+
+
+
+
+
+
+ instance_name b
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ instance_name a
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 全部状态
+
+
+ 准备执行
+
+
+ 正在执行
+
+
+ 执行成功
+
+
+ 执行失败
+
+
+ 人工执行
+
+
+ 正在中止
+
+
+ 中止成功
+
+
+ 中止失败
+
+
+ 执行回滚
+
+
+
+
+
+
+ 2000
+ %
+
+
+ 审核通过率
+
+
+
+
+
+
+ 30
+
+
+ 审核结果评分
+
+
+
+
+
+
+ instance_schema
+
+
+ Schema
+
+
+
+
+
+