diff --git a/x-pack/plugins/security_solution/public/cases/components/case_view/index.test.tsx b/x-pack/plugins/security_solution/public/cases/components/case_view/index.test.tsx index e2b80f4a3c29..d1fa0a96a8ea 100644 --- a/x-pack/plugins/security_solution/public/cases/components/case_view/index.test.tsx +++ b/x-pack/plugins/security_solution/public/cases/components/case_view/index.test.tsx @@ -469,7 +469,7 @@ describe('CaseView ', () => { ); await waitFor(() => { wrapper.find('[data-test-subj="case-refresh"]').first().simulate('click'); - expect(fetchCaseUserActions).toBeCalledWith('1234', undefined); + expect(fetchCaseUserActions).toBeCalledWith('1234', 'resilient-2', undefined); expect(fetchCase).toBeCalled(); }); }); diff --git a/x-pack/plugins/security_solution/public/cases/components/case_view/index.tsx b/x-pack/plugins/security_solution/public/cases/components/case_view/index.tsx index 9bbf2db3d83c..417dc9645df3 100644 --- a/x-pack/plugins/security_solution/public/cases/components/case_view/index.tsx +++ b/x-pack/plugins/security_solution/public/cases/components/case_view/index.tsx @@ -213,7 +213,7 @@ export const CaseComponent = React.memo( const handleUpdateCase = useCallback( (newCase: Case) => { updateCase(newCase); - fetchCaseUserActions(caseId, subCaseId); + fetchCaseUserActions(caseId, newCase.connector.id, subCaseId); }, [updateCase, fetchCaseUserActions, caseId, subCaseId] ); @@ -283,9 +283,9 @@ export const CaseComponent = React.memo( ); const handleRefresh = useCallback(() => { - fetchCaseUserActions(caseId, subCaseId); + fetchCaseUserActions(caseId, caseData.connector.id, subCaseId); fetchCase(); - }, [caseId, fetchCase, fetchCaseUserActions, subCaseId]); + }, [caseData.connector.id, caseId, fetchCase, fetchCaseUserActions, subCaseId]); const spyState = useMemo(() => ({ caseTitle: caseData.title }), [caseData.title]); @@ -388,7 +388,12 @@ export const CaseComponent = React.memo( caseUserActions={caseUserActions} connectors={connectors} data={caseData} - fetchUserActions={fetchCaseUserActions.bind(null, caseId, subCaseId)} + fetchUserActions={fetchCaseUserActions.bind( + null, + caseId, + caseData.connector.id, + subCaseId + )} isLoadingDescription={isLoading && updateKey === 'description'} isLoadingUserActions={isLoadingUserActions} onShowAlertDetails={showAlert} diff --git a/x-pack/plugins/security_solution/public/cases/containers/types.ts b/x-pack/plugins/security_solution/public/cases/containers/types.ts index 98e0ced2b606..a24a62345d67 100644 --- a/x-pack/plugins/security_solution/public/cases/containers/types.ts +++ b/x-pack/plugins/security_solution/public/cases/containers/types.ts @@ -167,7 +167,7 @@ export type UpdateKey = keyof Pick< export interface UpdateByKey { updateKey: UpdateKey; updateValue: CasePatchRequest[UpdateKey]; - fetchCaseUserActions?: (caseId: string, subCaseId?: string) => void; + fetchCaseUserActions?: (caseId: string, caseConnectorId: string, subCaseId?: string) => void; updateCase?: (newCase: Case) => void; caseData: Case; onSuccess?: () => void; diff --git a/x-pack/plugins/security_solution/public/cases/containers/use_get_case_user_actions.test.tsx b/x-pack/plugins/security_solution/public/cases/containers/use_get_case_user_actions.test.tsx index 4bb42a178bbf..1c8096198007 100644 --- a/x-pack/plugins/security_solution/public/cases/containers/use_get_case_user_actions.test.tsx +++ b/x-pack/plugins/security_solution/public/cases/containers/use_get_case_user_actions.test.tsx @@ -53,7 +53,7 @@ describe('useGetCaseUserActions', () => { ); await waitForNextUpdate(); - result.current.fetchCaseUserActions(basicCase.id); + result.current.fetchCaseUserActions(basicCase.id, basicCase.connector.id); await waitForNextUpdate(); expect(spyOnPostCase).toBeCalledWith(basicCase.id, abortCtrl.signal); }); @@ -65,7 +65,7 @@ describe('useGetCaseUserActions', () => { useGetCaseUserActions(basicCase.id, basicCase.connector.id) ); await waitForNextUpdate(); - result.current.fetchCaseUserActions(basicCase.id); + result.current.fetchCaseUserActions(basicCase.id, basicCase.connector.id); await waitForNextUpdate(); expect(result.current).toEqual({ ...initialData, @@ -85,7 +85,7 @@ describe('useGetCaseUserActions', () => { useGetCaseUserActions(basicCase.id, basicCase.connector.id) ); await waitForNextUpdate(); - result.current.fetchCaseUserActions(basicCase.id); + result.current.fetchCaseUserActions(basicCase.id, basicCase.connector.id); expect(result.current.isLoading).toBe(true); }); @@ -102,7 +102,7 @@ describe('useGetCaseUserActions', () => { useGetCaseUserActions(basicCase.id, basicCase.connector.id) ); await waitForNextUpdate(); - result.current.fetchCaseUserActions(basicCase.id); + result.current.fetchCaseUserActions(basicCase.id, basicCase.connector.id); expect(result.current).toEqual({ ...initialData, diff --git a/x-pack/plugins/security_solution/public/cases/containers/use_get_case_user_actions.tsx b/x-pack/plugins/security_solution/public/cases/containers/use_get_case_user_actions.tsx index cc8deaf72eef..60d3a8ad8215 100644 --- a/x-pack/plugins/security_solution/public/cases/containers/use_get_case_user_actions.tsx +++ b/x-pack/plugins/security_solution/public/cases/containers/use_get_case_user_actions.tsx @@ -46,7 +46,7 @@ export const initialData: CaseUserActionsState = { }; export interface UseGetCaseUserActions extends CaseUserActionsState { - fetchCaseUserActions: (caseId: string, subCaseId?: string) => void; + fetchCaseUserActions: (caseId: string, caseConnectorId: string, subCaseId?: string) => void; } const getExternalService = (value: string): CaseExternalService | null => @@ -249,7 +249,7 @@ export const useGetCaseUserActions = ( const [, dispatchToaster] = useStateToaster(); const fetchCaseUserActions = useCallback( - async (thisCaseId: string, thisSubCaseId?: string) => { + async (thisCaseId: string, thisCaseConnectorId: string, thisSubCaseId?: string) => { try { isCancelledRef.current = false; abortCtrlRef.current.abort(); @@ -279,7 +279,7 @@ export const useGetCaseUserActions = ( setCaseUserActionsState({ caseUserActions, - ...getPushedInfo(caseUserActions, caseConnectorId), + ...getPushedInfo(caseUserActions, thisCaseConnectorId), isLoading: false, isError: false, participants, @@ -307,12 +307,12 @@ export const useGetCaseUserActions = ( } }, // eslint-disable-next-line react-hooks/exhaustive-deps - [caseConnectorId] + [caseUserActionsState] ); useEffect(() => { if (!isEmpty(caseId)) { - fetchCaseUserActions(caseId, subCaseId); + fetchCaseUserActions(caseId, caseConnectorId, subCaseId); } return () => { diff --git a/x-pack/plugins/security_solution/public/cases/containers/use_update_case.test.tsx b/x-pack/plugins/security_solution/public/cases/containers/use_update_case.test.tsx index 0adf2cc0bf92..65309d6d29e0 100644 --- a/x-pack/plugins/security_solution/public/cases/containers/use_update_case.test.tsx +++ b/x-pack/plugins/security_solution/public/cases/containers/use_update_case.test.tsx @@ -84,7 +84,7 @@ describe('useUpdateCase', () => { isError: false, updateCaseProperty: result.current.updateCaseProperty, }); - expect(fetchCaseUserActions).toBeCalledWith(basicCase.id, undefined); + expect(fetchCaseUserActions).toBeCalledWith(basicCase.id, '123', undefined); expect(updateCase).toBeCalledWith(basicCase); expect(onSuccess).toHaveBeenCalled(); }); @@ -104,7 +104,7 @@ describe('useUpdateCase', () => { isError: false, updateCaseProperty: result.current.updateCaseProperty, }); - expect(fetchCaseUserActions).toBeCalledWith(basicCase.id, basicSubCaseId); + expect(fetchCaseUserActions).toBeCalledWith(basicCase.id, '123', basicSubCaseId); expect(updateCase).toBeCalledWith(basicCase); expect(onSuccess).toHaveBeenCalled(); }); diff --git a/x-pack/plugins/security_solution/public/cases/containers/use_update_case.tsx b/x-pack/plugins/security_solution/public/cases/containers/use_update_case.tsx index e8de2257009e..9a79699d8f91 100644 --- a/x-pack/plugins/security_solution/public/cases/containers/use_update_case.tsx +++ b/x-pack/plugins/security_solution/public/cases/containers/use_update_case.tsx @@ -105,7 +105,7 @@ export const useUpdateCase = ({ if (!isCancelledRef.current) { if (fetchCaseUserActions != null) { - fetchCaseUserActions(caseId, subCaseId); + fetchCaseUserActions(caseId, response[0].connector.id, subCaseId); } if (updateCase != null) { updateCase(response[0]);