diff --git a/apps/web/tests/lifecycle-chrome.e2e.ts b/apps/web/tests/lifecycle-chrome.e2e.ts index 428e3c195a..56f47f10c9 100644 --- a/apps/web/tests/lifecycle-chrome.e2e.ts +++ b/apps/web/tests/lifecycle-chrome.e2e.ts @@ -188,10 +188,16 @@ describe('web e2e: lifecycle & chrome (workspace flow / reload / dark mode)', () await input.press('Enter') if (MODE !== 'record') { const liveTail = page.locator('[data-variant="think"][data-state="running"] [data-follow-end]') - await expect.poll(async () => await liveTail.evaluate(element => ( - element.scrollWidth > element.clientWidth - && element.scrollLeft >= element.scrollWidth - element.clientWidth - 1 - )), { timeout: 10_000, interval: 10 }).toBe(true) + await expect.poll(async () => { + if (await liveTail.count() !== 1) return false + return await liveTail.evaluate((element) => { + const text = element.firstElementChild + if (!(text instanceof HTMLElement)) return false + const viewport = element.getBoundingClientRect() + const content = text.getBoundingClientRect() + return content.width > viewport.width && Math.abs(content.right - viewport.right) <= 1 + }) + }, { timeout: 10_000, interval: 10 }).toBe(true) } return await settled } finally { diff --git a/packages/client/ui-deliverables/tests/produced-files.client.spec.tsx b/packages/client/ui-deliverables/tests/produced-files.client.spec.tsx index 5e78ccba63..62ea12276d 100644 --- a/packages/client/ui-deliverables/tests/produced-files.client.spec.tsx +++ b/packages/client/ui-deliverables/tests/produced-files.client.spec.tsx @@ -382,6 +382,9 @@ describe('produced-file Turn data', () => { value.append(call(4, 'second', 'edit', { file_path: 'second.txt', old_string: 'before', new_string: 'after', })) + value.flush() + expect(deliverablesOf(value)).toBe(first) + value.append(result(5, 'second')) value.flush() expect(producedForClosing(deliverablesOf(value))).toEqual(['first.txt', 'second.txt'])