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,
]