Skip to content

Commit de4f121

Browse files
Merge pull request #597 from Contextable/codex/refactor-checkhaikudisplay-for-polling
Refine haiku carousel polling
2 parents a6236ef + 8922b2e commit de4f121

File tree

1 file changed

+21
-11
lines changed

1 file changed

+21
-11
lines changed

apps/dojo/e2e/featurePages/ToolBaseGenUIPage.ts

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -125,19 +125,19 @@ export class ToolBaseGenUIPage {
125125
return mainHaikuContent;
126126
}
127127

128-
async checkHaikuDisplay(page: Page): Promise<void> {
129-
const chatHaikuContent = await this.extractChatHaikuContent(page);
130-
131-
await page.waitForTimeout(3000);
132-
133-
// Check that the haiku exists somewhere in the carousel
128+
private async carouselIncludesHaiku(
129+
page: Page,
130+
chatHaikuContent: string,
131+
): Promise<boolean> {
134132
const carousel = page.locator('[data-testid="haiku-carousel"]');
135-
await carousel.waitFor({ state: "visible", timeout: 10000 });
133+
134+
if (!(await carousel.isVisible())) {
135+
return false;
136+
}
136137

137138
const allCarouselCards = carousel.locator('[data-testid="haiku-card"]');
138139
const cardCount = await allCarouselCards.count();
139140

140-
let foundMatch = false;
141141
for (let i = 0; i < cardCount; i++) {
142142
const card = allCarouselCards.nth(i);
143143
const lines = card.locator('[data-testid="haiku-japanese-line"]');
@@ -151,11 +151,21 @@ export class ToolBaseGenUIPage {
151151

152152
const cardContent = cardLines.join("").replace(/\s/g, "");
153153
if (cardContent === chatHaikuContent) {
154-
foundMatch = true;
155-
break;
154+
return true;
156155
}
157156
}
158157

159-
expect(foundMatch).toBe(true);
158+
return false;
159+
}
160+
161+
async checkHaikuDisplay(page: Page): Promise<void> {
162+
const chatHaikuContent = await this.extractChatHaikuContent(page);
163+
164+
await expect
165+
.poll(
166+
async () => this.carouselIncludesHaiku(page, chatHaikuContent),
167+
{ timeout: 20000, intervals: [500, 1000, 2000] },
168+
)
169+
.toBe(true);
160170
}
161171
}

0 commit comments

Comments
 (0)