diff --git a/x-pack/solutions/security/plugins/security_solution/public/assistant/stack_management/management_settings.test.tsx b/x-pack/solutions/security/plugins/security_solution/public/assistant/stack_management/management_settings.test.tsx index a3c14b9154c3f..97e27ce098288 100644 --- a/x-pack/solutions/security/plugins/security_solution/public/assistant/stack_management/management_settings.test.tsx +++ b/x-pack/solutions/security/plugins/security_solution/public/assistant/stack_management/management_settings.test.tsx @@ -18,6 +18,7 @@ import { import { useKibana } from '../../common/lib/kibana'; import { useConversation } from '@kbn/elastic-assistant/impl/assistant/use_conversation'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; +import { useSpaceId } from '../../common/hooks/use_space_id'; // Mock the necessary hooks and components jest.mock('@kbn/elastic-assistant', () => ({ @@ -35,11 +36,15 @@ jest.mock('@kbn/elastic-assistant/impl/assistant/use_conversation', () => ({ jest.mock('../../common/lib/kibana', () => ({ useKibana: jest.fn(), })); +jest.mock('../../common/hooks/use_space_id', () => ({ + useSpaceId: jest.fn(), +})); const useAssistantContextMock = useAssistantContext as jest.Mock; const useFetchCurrentUserConversationsMock = useFetchCurrentUserConversations as jest.Mock; const useKibanaMock = useKibana as jest.Mock; const useConversationMock = useConversation as jest.Mock; +const useSpaceIdMock = useSpaceId as jest.Mock; describe('ManagementSettings', () => { const queryClient = new QueryClient(); @@ -55,9 +60,11 @@ describe('ManagementSettings', () => { const renderComponent = ({ isAssistantEnabled = true, conversations, + spaceId, }: { isAssistantEnabled?: boolean; conversations: Record; + spaceId?: string; }) => { useAssistantContextMock.mockReturnValue({ baseConversations, @@ -101,6 +108,8 @@ describe('ManagementSettings', () => { getDefaultConversation, }); + useSpaceIdMock.mockReturnValue(spaceId); + return render( @@ -117,14 +126,23 @@ describe('ManagementSettings', () => { it('navigates to home if securityAIAssistant is disabled', () => { renderComponent({ conversations: mockConversations, + spaceId: 'default', }); expect(navigateToApp).toHaveBeenCalledWith('home'); }); - it('renders AssistantSettingsManagement when conversations are available and securityAIAssistant is enabled', () => { + it('renders AssistantSettingsManagement when spaceId, conversations are available and securityAIAssistant is enabled', () => { renderComponent({ conversations: mockConversations, + spaceId: 'default', }); expect(screen.getByTestId('AssistantSettingsManagement')).toBeInTheDocument(); }); + + it('does not render AssistantSettingsManagement when spaceId is not available', () => { + renderComponent({ + conversations: mockConversations, + }); + expect(screen.queryByTestId('AssistantSettingsManagement')).not.toBeInTheDocument(); + }); }); diff --git a/x-pack/solutions/security/plugins/security_solution/public/assistant/stack_management/management_settings.tsx b/x-pack/solutions/security/plugins/security_solution/public/assistant/stack_management/management_settings.tsx index 8427d2ee59170..5b09f532b16d9 100644 --- a/x-pack/solutions/security/plugins/security_solution/public/assistant/stack_management/management_settings.tsx +++ b/x-pack/solutions/security/plugins/security_solution/public/assistant/stack_management/management_settings.tsx @@ -16,6 +16,7 @@ import { useFetchCurrentUserConversations, WELCOME_CONVERSATION_TITLE, } from '@kbn/elastic-assistant'; +import { AssistantSpaceIdProvider } from '@kbn/elastic-assistant/impl/assistant/use_space_aware_context'; import { useConversation } from '@kbn/elastic-assistant/impl/assistant/use_conversation'; import type { FetchConversationsResponse } from '@kbn/elastic-assistant/impl/assistant/api'; import { SECURITY_AI_SETTINGS } from '@kbn/elastic-assistant/impl/assistant/settings/translations'; @@ -23,6 +24,7 @@ import { CONVERSATIONS_TAB } from '@kbn/elastic-assistant/impl/assistant/setting import type { SettingsTabs } from '@kbn/elastic-assistant/impl/assistant/settings/types'; import { useKibana } from '../../common/lib/kibana'; +import { useSpaceId } from '../../common/hooks/use_space_id'; const defaultSelectedConversationId = WELCOME_CONVERSATION_TITLE; @@ -32,7 +34,7 @@ export const ManagementSettings = React.memo(() => { http, assistantAvailability: { isAssistantEnabled }, } = useAssistantContext(); - + const spaceId = useSpaceId(); const { application: { navigateToApp, @@ -131,14 +133,16 @@ export const ManagementSettings = React.memo(() => { } if (conversations) { - return ( - - ); + return spaceId ? ( + + + + ) : null; } return <>;