diff --git a/packages/amazonq/test/e2e_new/amazonq/tests/chat.test.ts b/packages/amazonq/test/e2e_new/amazonq/tests/chat.test.ts index 1f9cdc44634..0589dda5fec 100644 --- a/packages/amazonq/test/e2e_new/amazonq/tests/chat.test.ts +++ b/packages/amazonq/test/e2e_new/amazonq/tests/chat.test.ts @@ -3,9 +3,9 @@ * SPDX-License-Identifier: Apache-2.0 */ import '../utils/setup' -import { WebviewView } from 'vscode-extension-tester' +import { WebviewView, By } from 'vscode-extension-tester' import { testContext } from '../utils/testContext' -import { clearChat, waitForChatResponse, writeToChat } from '../utils/generalUtils' +import { waitForChatResponse, writeToChat, waitForElement } from '../utils/generalUtils' import { closeAllTabs } from '../utils/cleanupUtils' describe('Amazon Q Chat Basic Functionality', function () { @@ -17,15 +17,11 @@ describe('Amazon Q Chat Basic Functionality', function () { webviewView = testContext.webviewView }) - after(async function () { + afterEach(async function () { await closeAllTabs(webviewView) }) - afterEach(async () => { - await clearChat(webviewView) - }) - - it('Chat Prompt Test', async () => { + it('Allows User to Chat with AmazonQ', async () => { await writeToChat('Hello, Amazon Q!', webviewView) const responseReceived = await waitForChatResponse(webviewView) if (!responseReceived) { @@ -33,4 +29,20 @@ describe('Amazon Q Chat Basic Functionality', function () { } console.log('Chat response detected successfully') }) + it('Allows User to Add Multiple Chat Tabs', async () => { + console.log('Starting Multiple Chat Test') + for (let i = 0; i < 3; i++) { + const addChat = await webviewView.findWebElement(By.css('.mynah-ui-icon.mynah-ui-icon-plus')) + await addChat.click() + } + }) + it('Allows User to View Chat History', async () => { + console.log('Starting View History Test') + const viewHistory = await webviewView.findWebElement(By.css('.mynah-ui-icon.mynah-ui-icon-history')) + await viewHistory.click() + await waitForElement(webviewView, By.css('.mynah-detailed-list-item-groups-wrapper')) + console.log('History wrapper found successfully') + const closeHistory = await waitForElement(webviewView, By.css('.mynah-ui-icon.mynah-ui-icon-cancel')) + await closeHistory.click() + }) }) diff --git a/packages/amazonq/test/e2e_new/amazonq/tests/pinContext.test.ts b/packages/amazonq/test/e2e_new/amazonq/tests/pinContext.test.ts index 4e6c9c5a477..a08af12bc7c 100644 --- a/packages/amazonq/test/e2e_new/amazonq/tests/pinContext.test.ts +++ b/packages/amazonq/test/e2e_new/amazonq/tests/pinContext.test.ts @@ -7,7 +7,7 @@ import { WebviewView } from 'vscode-extension-tester' import { closeAllTabs, dismissOverlayIfPresent } from '../utils/cleanupUtils' import { testContext } from '../utils/testContext' import { clickPinContextButton, getPinContextMenuItems, clickPinContextMenuItem } from '../helpers/pinContextHelper' -import { clearChat } from '../utils/generalUtils' +import { clearChatInput } from '../utils/generalUtils' describe('Amazon Q Pin Context Functionality', function () { // this timeout is the general timeout for the entire test suite @@ -24,7 +24,7 @@ describe('Amazon Q Pin Context Functionality', function () { afterEach(async () => { await dismissOverlayIfPresent(webviewView) - await clearChat(webviewView) + await clearChatInput(webviewView) }) it('Pin Context Test', async () => { diff --git a/packages/amazonq/test/e2e_new/amazonq/tests/quickActions.test.ts b/packages/amazonq/test/e2e_new/amazonq/tests/quickActions.test.ts index e27fe447d24..a61b0aba63d 100644 --- a/packages/amazonq/test/e2e_new/amazonq/tests/quickActions.test.ts +++ b/packages/amazonq/test/e2e_new/amazonq/tests/quickActions.test.ts @@ -7,7 +7,7 @@ import { WebviewView } from 'vscode-extension-tester' import { closeAllTabs, dismissOverlayIfPresent } from '../utils/cleanupUtils' import { testContext } from '../utils/testContext' import { clickQuickActionsCommand } from '../helpers/quickActionsHelper' -import { clearChat } from '../utils/generalUtils' +import { clearChatInput } from '../utils/generalUtils' describe('Amazon Q Chat Quick Actions Functionality', function () { // this timeout is the general timeout for the entire test suite @@ -25,7 +25,7 @@ describe('Amazon Q Chat Quick Actions Functionality', function () { afterEach(async () => { // before closing the tabs, make sure that any overlays have been dismissed await dismissOverlayIfPresent(webviewView) - await clearChat(webviewView) + await clearChatInput(webviewView) }) it('Quick Actions Test', async () => { diff --git a/packages/amazonq/test/e2e_new/amazonq/utils/generalUtils.ts b/packages/amazonq/test/e2e_new/amazonq/utils/generalUtils.ts index d4bfc20c702..491a32d44e6 100644 --- a/packages/amazonq/test/e2e_new/amazonq/utils/generalUtils.ts +++ b/packages/amazonq/test/e2e_new/amazonq/utils/generalUtils.ts @@ -117,7 +117,7 @@ export async function waitForChatResponse(webview: WebviewView, timeout = 15000) * @param webview The WebviewView instance * @returns Promise True if successful, false if an error occurred */ -export async function clearChat(webview: WebviewView): Promise { +export async function clearChatInput(webview: WebviewView): Promise { try { const chatInput = await waitForElement(webview, By.css('.mynah-chat-prompt-input')) await chatInput.sendKeys(