From ab25ccbfcbb9e870dd81a34379bacb78390279da Mon Sep 17 00:00:00 2001 From: Zeno Kapitein Date: Thu, 27 Nov 2025 09:03:45 +0100 Subject: [PATCH 1/2] Fix flaky tests in AI Chat greeting --- packages/gitbook/e2e/internal.spec.ts | 21 +++++++++++++++++++ .../gitbook/src/components/AIChat/AIChat.tsx | 1 + 2 files changed, 22 insertions(+) diff --git a/packages/gitbook/e2e/internal.spec.ts b/packages/gitbook/e2e/internal.spec.ts index 53903e5e18..b9c626bc53 100644 --- a/packages/gitbook/e2e/internal.spec.ts +++ b/packages/gitbook/e2e/internal.spec.ts @@ -168,6 +168,13 @@ const searchTestCases: Test[] = [ await page.keyboard.press('ControlOrMeta+I'); await expect(page.getByTestId('ai-chat')).toBeVisible(); await expect(page.getByTestId('ai-chat-input')).toBeFocused(); + // Override text content for visual consistency in screenshots + await page.evaluate(() => { + const greeting = document.querySelectorAll('[data-testid="ai-chat-time-greeting"]'); + greeting.forEach((greeting) => { + greeting.textContent = 'Good morning'; + }); + }); }, }, { @@ -182,6 +189,13 @@ const searchTestCases: Test[] = [ await page.getByTestId('ai-chat-button').click(); await expect(page.getByTestId('ai-chat')).toBeVisible(); await expect(page.getByTestId('ai-chat-input')).toBeFocused(); + // Override text content for visual consistency in screenshots + await page.evaluate(() => { + const greeting = document.querySelectorAll('[data-testid="ai-chat-time-greeting"]'); + greeting.forEach((greeting) => { + greeting.textContent = 'Good morning'; + }); + }); }, }, { @@ -196,6 +210,13 @@ const searchTestCases: Test[] = [ await expect(page.getByTestId('search-input')).toBeEmpty(); await expect(page.getByTestId('ai-chat')).toBeVisible(); await expect(page.getByTestId('ai-chat-input')).toBeFocused(); + // Override text content for visual consistency in screenshots + await page.evaluate(() => { + const greeting = document.querySelectorAll('[data-testid="ai-chat-time-greeting"]'); + greeting.forEach((greeting) => { + greeting.textContent = 'Good morning'; + }); + }); }, }, { diff --git a/packages/gitbook/src/components/AIChat/AIChat.tsx b/packages/gitbook/src/components/AIChat/AIChat.tsx index a59a477567..aa3ca9787e 100644 --- a/packages/gitbook/src/components/AIChat/AIChat.tsx +++ b/packages/gitbook/src/components/AIChat/AIChat.tsx @@ -229,6 +229,7 @@ export function AIChatBody(props: {
{timeGreeting}
From 192d8aeccecd5b4b130091f075db9b665887654b Mon Sep 17 00:00:00 2001 From: Zeno Kapitein Date: Thu, 27 Nov 2025 09:11:41 +0100 Subject: [PATCH 2/2] Update internal.spec.ts --- packages/gitbook/e2e/internal.spec.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/gitbook/e2e/internal.spec.ts b/packages/gitbook/e2e/internal.spec.ts index b9c626bc53..18ce044678 100644 --- a/packages/gitbook/e2e/internal.spec.ts +++ b/packages/gitbook/e2e/internal.spec.ts @@ -170,10 +170,10 @@ const searchTestCases: Test[] = [ await expect(page.getByTestId('ai-chat-input')).toBeFocused(); // Override text content for visual consistency in screenshots await page.evaluate(() => { - const greeting = document.querySelectorAll('[data-testid="ai-chat-time-greeting"]'); - greeting.forEach((greeting) => { + const greeting = document.querySelector('[data-testid="ai-chat-time-greeting"]'); + if (greeting) { greeting.textContent = 'Good morning'; - }); + } }); }, }, @@ -191,10 +191,10 @@ const searchTestCases: Test[] = [ await expect(page.getByTestId('ai-chat-input')).toBeFocused(); // Override text content for visual consistency in screenshots await page.evaluate(() => { - const greeting = document.querySelectorAll('[data-testid="ai-chat-time-greeting"]'); - greeting.forEach((greeting) => { + const greeting = document.querySelector('[data-testid="ai-chat-time-greeting"]'); + if (greeting) { greeting.textContent = 'Good morning'; - }); + } }); }, }, @@ -212,10 +212,10 @@ const searchTestCases: Test[] = [ await expect(page.getByTestId('ai-chat-input')).toBeFocused(); // Override text content for visual consistency in screenshots await page.evaluate(() => { - const greeting = document.querySelectorAll('[data-testid="ai-chat-time-greeting"]'); - greeting.forEach((greeting) => { + const greeting = document.querySelector('[data-testid="ai-chat-time-greeting"]'); + if (greeting) { greeting.textContent = 'Good morning'; - }); + } }); }, },