From 1337e0651370bfcf842885fe66ae2da1e9a88888 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Pupier?= Date: Mon, 8 Sep 2025 15:12:12 +0200 Subject: [PATCH 1/4] Improve error message in test to track unstability on CI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Aurélien Pupier --- src/ui-test/tests/camel.settings.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui-test/tests/camel.settings.test.ts b/src/ui-test/tests/camel.settings.test.ts index e7f67c85..294c367f 100644 --- a/src/ui-test/tests/camel.settings.test.ts +++ b/src/ui-test/tests/camel.settings.test.ts @@ -162,7 +162,7 @@ describe('Camel User Settings', function () { await waitUntilItemNotExists(newParameter, arraySetting); const values = await arraySetting.getValues(); - expect(values.length).is.lessThan(3); + expect(values.length, `Curretn parameters are ${values}, we are expecting them to not contain ${newParameter}`).is.lessThan(3); expect(values).not.includes(newParameter); await cleanEnvironment(); }); From a48680a3a79757d53d3aee0a565ff442078c62e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Pupier?= Date: Tue, 9 Sep 2025 14:16:32 +0200 Subject: [PATCH 2/4] Close no more used terminal view in test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit it will allow to have better screenshot in case of failure on CI Signed-off-by: Aurélien Pupier --- src/ui-test/tests/camel.settings.test.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/ui-test/tests/camel.settings.test.ts b/src/ui-test/tests/camel.settings.test.ts index 294c367f..2269a46a 100644 --- a/src/ui-test/tests/camel.settings.test.ts +++ b/src/ui-test/tests/camel.settings.test.ts @@ -151,7 +151,10 @@ describe('Camel User Settings', function () { await executeCommand(CAMEL_RUN_ACTION_QUICKPICKS_LABEL); await waitUntilTerminalHasText(driver, [defaultExtraLaunchParameterSetting, newParameter, `Tracing is enabled on CamelContext`], 15000, 180000); - + + // cleaning for next test + await killTerminal(); + await new BottomBarPanel().toggle(false); }); it('Should remove parameter', async function () { @@ -162,7 +165,7 @@ describe('Camel User Settings', function () { await waitUntilItemNotExists(newParameter, arraySetting); const values = await arraySetting.getValues(); - expect(values.length, `Curretn parameters are ${values}, we are expecting them to not contain ${newParameter}`).is.lessThan(3); + expect(values.length, `Current parameters are ${values}, we are expecting them to not contain ${newParameter}`).is.lessThan(3); expect(values).not.includes(newParameter); await cleanEnvironment(); }); From c38739be4e486969ce392bf512bb6d378aa5829f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Pupier?= Date: Wed, 10 Sep 2025 10:13:40 +0200 Subject: [PATCH 3/4] Retry in case of StaleElementReferenceError in UI test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit to stabilize test Signed-off-by: Aurélien Pupier --- src/ui-test/tests/tasks.json.launch.test.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ui-test/tests/tasks.json.launch.test.ts b/src/ui-test/tests/tasks.json.launch.test.ts index 73f2c21f..9936fb83 100644 --- a/src/ui-test/tests/tasks.json.launch.test.ts +++ b/src/ui-test/tests/tasks.json.launch.test.ts @@ -36,7 +36,12 @@ describe('Launch configuration from tasks.json autocompletion', function () { async function setupEnvironment(resourceDir: string, vscodeDir: string, launch: boolean = false) { driver = VSBrowser.instance.driver; await VSBrowser.instance.openResources(resourceDir); - await (await new ActivityBar().getViewControl('Explorer'))?.openView(); + try { + await (await new ActivityBar().getViewControl('Explorer'))?.openView(); + } catch { + // workaround: retry in case of StaleElementReferenceError + await (await new ActivityBar().getViewControl('Explorer'))?.openView(); + } await deleteResource(vscodeDir); await createFolder(vscodeDir); From 27de9d939c966b3c44f349c165e0724009abbf0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Pupier?= Date: Wed, 10 Sep 2025 10:48:15 +0200 Subject: [PATCH 4/4] Improve error message in UI test when the terminal text expected is not found MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Aurélien Pupier --- src/ui-test/utils.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/ui-test/utils.ts b/src/ui-test/utils.ts index 23dca6f2..532d89d7 100644 --- a/src/ui-test/utils.ts +++ b/src/ui-test/utils.ts @@ -149,8 +149,7 @@ export async function waitUntilTerminalHasText(driver: WebDriver, textArray: str await driver.sleep(interval); await driver.wait(async function () { try { - const terminal = await activateTerminalView(); - const terminalText = await terminal.getText(); + const terminalText = await getTerminalText(); for await (const text of textArray) { if (!(terminalText.includes(text))) { return false; @@ -160,7 +159,7 @@ export async function waitUntilTerminalHasText(driver: WebDriver, textArray: str } catch (err) { return false; } - }, timeout, undefined, interval); + }, timeout, `Expecting texts in terminal ${textArray} were not found in ${await getTerminalText()}`, interval); } /** @@ -633,3 +632,9 @@ export async function waitUntilNotificationShows(driver: WebDriver, notification } }, timeout, "Required notification not available", interval); } + +async function getTerminalText() : Promise { + const terminal = await activateTerminalView(); + return await terminal.getText(); +} +