From 0fc3889420f354e5f9d0b311a14c45e21e8c4691 Mon Sep 17 00:00:00 2001 From: Ievgen Sorokopud Date: Tue, 5 Nov 2024 20:04:17 +0100 Subject: [PATCH] Unit test --- .../index.test.tsx | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/x-pack/packages/kbn-elastic-assistant/impl/knowledge_base/knowledge_base_settings_management/index.test.tsx b/x-pack/packages/kbn-elastic-assistant/impl/knowledge_base/knowledge_base_settings_management/index.test.tsx index cfc8d2d3d52f9..180b88fc3cdc8 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/knowledge_base/knowledge_base_settings_management/index.test.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/knowledge_base/knowledge_base_settings_management/index.test.tsx @@ -425,6 +425,63 @@ describe('KnowledgeBaseSettingsManagement', () => { expect(mockCreateEntry).toHaveBeenCalledWith({ ...mockData[3], users: undefined }); }); + it('does not show duplicate entry modal on new document entry creation', async () => { + // Covers the BUG: https://github.com/elastic/kibana/issues/198892 + const closeFlyoutMock = jest.fn(); + (useFlyoutModalVisibility as jest.Mock).mockReturnValue({ + isFlyoutOpen: true, + openFlyout: jest.fn(), + closeFlyout: closeFlyoutMock, + }); + render(, { + wrapper, + }); + + await waitFor(() => { + fireEvent.click(screen.getAllByTestId('edit-button')[3]); + }); + expect(screen.getByTestId('flyout')).toBeVisible(); + + await waitFor(() => { + expect(screen.getByText('Edit document entry')).toBeInTheDocument(); + }); + + await waitFor(() => { + fireEvent.click(screen.getByTestId('sharing-select')); + fireEvent.click(screen.getByTestId('sharing-private-option')); + fireEvent.click(screen.getByTestId('save-button')); + }); + + expect(screen.getByTestId('create-duplicate-entry-modal')).toBeInTheDocument(); + await waitFor(() => { + fireEvent.click(screen.getByTestId('confirmModalConfirmButton')); + }); + expect(screen.queryByTestId('create-duplicate-entry-modal')).not.toBeInTheDocument(); + await waitFor(() => { + expect(mockCreateEntry).toHaveBeenCalledTimes(1); + }); + + // Create a new document entry + await waitFor(() => { + fireEvent.click(screen.getByTestId('addEntry')); + }); + await waitFor(() => { + fireEvent.click(screen.getByTestId('addDocument')); + }); + + expect(screen.getByTestId('flyout')).toBeVisible(); + + await userEvent.type(screen.getByTestId('entryNameInput'), 'hi'); + await userEvent.type(screen.getByTestId('entryMarkdownInput'), 'hi'); + + await waitFor(() => { + fireEvent.click(screen.getByTestId('save-button')); + }); + + expect(screen.queryByTestId('create-duplicate-entry-modal')).not.toBeInTheDocument(); + expect(closeFlyoutMock).toHaveBeenCalled(); + }); + it('shows warning icon for index entries with missing indices', async () => { render(, { wrapper,