From a0b4b65ab81cbe0c3bc2267cc84a3ef2ce18df83 Mon Sep 17 00:00:00 2001 From: Chinesezjc Date: Mon, 3 Aug 2026 16:46:05 +0800 Subject: [PATCH] test(web): pin the source list's scroll geometry in the assembled browser MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit jsdom resolves no CSS Modules layout and reports scrollHeight === clientHeight for every element, so the unit test cannot witness the scroll the .sources max-height produces. Drive it in the real browser instead. The web-search-round search double now returns 12 provider results with a title, snippet, and date each. That pins the seam's cap end to end for the first time in a real composition — searchMaxResults keeps 8, the model-visible text carries the kept titles and none of the dropped URLs, meta.truncated is true — and 8 such rows overflow the 320px container. A case after the aria golden expands the row and asserts 8
  • , no button, the truncation indicator, and computed max-height/overflow-y with scrollHeight > clientHeight. The recorded stream and the aria golden are unchanged: replay is a positional cursor over the fixture's chunks and the search double is a separate local endpoint, while the card is collapsed at capture time. --- ...6-08-03-web-search-source-scroll.i18n.yaml | 4 +- .../2026-08-03-web-search-source-scroll.md | 2 + .../2026-08-03-web-search-source-scroll.zh.md | 2 + apps/web/tests/web-search-round.e2e.ts | 113 ++++++++++++++---- 4 files changed, 98 insertions(+), 23 deletions(-) diff --git a/.agents/notes/implemented/feature/2026-08-03-web-search-source-scroll.i18n.yaml b/.agents/notes/implemented/feature/2026-08-03-web-search-source-scroll.i18n.yaml index 923146cc2b..1e08a3f091 100644 --- a/.agents/notes/implemented/feature/2026-08-03-web-search-source-scroll.i18n.yaml +++ b/.agents/notes/implemented/feature/2026-08-03-web-search-source-scroll.i18n.yaml @@ -2,5 +2,5 @@ # side as of the last confirmed-consistent state. Both languages carry equal authority; # after editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-08-03-web-search-source-scroll.md -2026-08-03-web-search-source-scroll.md: 8ec9aee890015ecc1360b447a8bcee5585365e86 -2026-08-03-web-search-source-scroll.zh.md: a9cf64d421e972ec80f1746489bac2eb15d0dc50 +2026-08-03-web-search-source-scroll.md: fe98aca07fae9b6b3e612ae432f14cf5db462461 +2026-08-03-web-search-source-scroll.zh.md: 38573647d59d659c8cdec53a42913848d268c6be diff --git a/.agents/notes/implemented/feature/2026-08-03-web-search-source-scroll.md b/.agents/notes/implemented/feature/2026-08-03-web-search-source-scroll.md index 8ec9aee890..fe98aca07f 100644 --- a/.agents/notes/implemented/feature/2026-08-03-web-search-source-scroll.md +++ b/.agents/notes/implemented/feature/2026-08-03-web-search-source-scroll.md @@ -36,6 +36,8 @@ Every source the tool returned is always in the DOM, so no source the view carri `packages/client/ui-primitives/tests/web-block.spec.tsx` drops the collapse cases (head/tail slice, expand-on-click, collapsed-tail numbering, expander-out-of-numbering, head-alone, default cap) and adds: a 30-source card renders all 30 `
  • ` with no `[aria-expanded]` and no `