diff --git a/x-pack/platform/packages/shared/kbn-elastic-assistant/impl/assistant/settings/settings_context_menu/settings_context_menu.test.tsx b/x-pack/platform/packages/shared/kbn-elastic-assistant/impl/assistant/settings/settings_context_menu/settings_context_menu.test.tsx index f2ee12e4d4c2a..b986968782002 100644 --- a/x-pack/platform/packages/shared/kbn-elastic-assistant/impl/assistant/settings/settings_context_menu/settings_context_menu.test.tsx +++ b/x-pack/platform/packages/shared/kbn-elastic-assistant/impl/assistant/settings/settings_context_menu/settings_context_menu.test.tsx @@ -15,15 +15,22 @@ import { } from '../../../mock/test_providers/test_providers'; import { SettingsContextMenu } from './settings_context_menu'; import { AI_ASSISTANT_MENU } from './translations'; -import { alertConvo, conversationWithContentReferences } from '../../../mock/conversation'; +import { + alertConvo, + conversationWithContentReferences, + customConvo, + welcomeConvo, +} from '../../../mock/conversation'; import { SecurityPageName } from '@kbn/deeplinks-security'; import { KNOWLEDGE_BASE_TAB } from '../const'; - +const props = { + selectedConversation: welcomeConvo, +}; describe('SettingsContextMenu', () => { it('renders an accessible menu button icon', () => { render( - + ); @@ -33,7 +40,7 @@ describe('SettingsContextMenu', () => { it('renders all menu items', async () => { render( - + ); @@ -44,10 +51,24 @@ describe('SettingsContextMenu', () => { expect(screen.getByTestId('clear-chat')).toBeInTheDocument(); }); + it('renders menu items without clear-chat when empty convo', async () => { + render( + + + + ); + + await userEvent.click(screen.getByTestId('chat-context-menu')); + expect(screen.getByTestId('alerts-to-analyze')).toBeInTheDocument(); + expect(screen.getByTestId('anonymize-values')).toBeInTheDocument(); + expect(screen.getByTestId('show-citations')).toBeInTheDocument(); + expect(screen.queryByTestId('clear-chat')).not.toBeInTheDocument(); + }); + it('triggers the reset conversation modal when clicking RESET_CONVERSATION', async () => { render( - + ); @@ -60,7 +81,7 @@ describe('SettingsContextMenu', () => { it('disables the anonymize values switch when no anonymized fields are present', async () => { render( - + ); @@ -86,7 +107,7 @@ describe('SettingsContextMenu', () => { it('disables the show citations switch when no citations are present', async () => { render( - + ); @@ -113,7 +134,7 @@ describe('SettingsContextMenu', () => { const mockNavigateToApp = jest.fn(); render( - + ); @@ -135,7 +156,7 @@ describe('SettingsContextMenu', () => { }} providerContext={{ navigateToApp: mockNavigateToApp }} > - + ); @@ -151,7 +172,7 @@ describe('SettingsContextMenu', () => { const mockNavigateToApp = jest.fn(); render( - + ); @@ -173,7 +194,7 @@ describe('SettingsContextMenu', () => { }} providerContext={{ navigateToApp: mockNavigateToApp }} > - + ); diff --git a/x-pack/platform/packages/shared/kbn-elastic-assistant/impl/assistant/settings/settings_context_menu/settings_context_menu.tsx b/x-pack/platform/packages/shared/kbn-elastic-assistant/impl/assistant/settings/settings_context_menu/settings_context_menu.tsx index 70be39b5e495b..6c33c38ccfb07 100644 --- a/x-pack/platform/packages/shared/kbn-elastic-assistant/impl/assistant/settings/settings_context_menu/settings_context_menu.tsx +++ b/x-pack/platform/packages/shared/kbn-elastic-assistant/impl/assistant/settings/settings_context_menu/settings_context_menu.tsx @@ -158,6 +158,11 @@ export const SettingsContextMenu: React.FC = React.memo( [selectedConversation] ); + const selectedConversationExists = useMemo( + () => selectedConversation && selectedConversation.id !== '', + [selectedConversation] + ); + const items = useMemo( () => [ = React.memo( - - - - {i18n.RESET_CONVERSATION} - + {selectedConversationExists && ( + <> + + + {i18n.RESET_CONVERSATION} + + + )} , ], [ @@ -355,6 +363,7 @@ export const SettingsContextMenu: React.FC = React.memo( showDestroyModal, euiTheme.size.m, euiTheme.size.xs, + selectedConversationExists, selectedConversationHasCitations, selectedConversationHasAnonymizedValues, ]