| @@ -57,6 +57,7 @@ vi.mock("../lib/gitStatusState", () => ({ · 56 unmodified lines |
| 57 | 57 | })); |
| 58 | 58 | |
| 59 | 59 | const THREAD_ID = "thread-browser-test" as ThreadId; |
| 60 | +const THREAD_TITLE = "Browser test thread"; |
| 60 | 61 | const ARCHIVED_SECONDARY_THREAD_ID = "thread-secondary-project-archived" as ThreadId; |
| 61 | 62 | const PROJECT_ID = "project-1" as ProjectId; |
| 62 | 63 | const SECOND_PROJECT_ID = "project-2" as ProjectId; |
| @@ -288,7 +289,7 @@ function createSnapshotForTargetUser(options: { · 225 unmodified lines |
| 288 | 289 | { |
| 289 | 290 | id: THREAD_ID, |
| 290 | 291 | projectId: PROJECT_ID, |
| 291 | | − title: "Browser test thread", |
| 292 | + title: THREAD_TITLE, |
| 292 | 293 | modelSelection: { |
| 293 | 294 | provider: "codex", |
| 294 | 295 | model: "gpt-5", |
| @@ -3413,6 +3414,34 @@ describe("ChatView timeline estimator parity (full app)", () => { · 3118 unmodified lines |
| 3413 | 3414 | } |
| 3414 | 3415 | }); |
| 3415 | 3416 | |
| 3417 | + it("exposes the full thread title on the sidebar row tooltip", async () => { |
| 3418 | + const mounted = await mountChatView({ |
| 3419 | + viewport: DEFAULT_VIEWPORT, |
| 3420 | + snapshot: createSnapshotForTargetUser({ |
| 3421 | + targetMessageId: "msg-user-thread-tooltip-target" as MessageId, |
| 3422 | + targetText: "thread tooltip target", |
| 3423 | + }), |
| 3424 | + }); |
| 3425 | + |
| 3426 | + try { |
| 3427 | + const threadTitle = page.getByTestId(`thread-title-${THREAD_ID}`); |
| 3428 | + |
| 3429 | + await expect.element(threadTitle).toBeInTheDocument(); |
| 3430 | + await threadTitle.hover(); |
| 3431 | + |
| 3432 | + await vi.waitFor( |
| 3433 | + () => { |
| 3434 | + const tooltip = document.querySelector<HTMLElement>('[data-slot="tooltip-popup"]'); |
| 3435 | + expect(tooltip).not.toBeNull(); |
| 3436 | + expect(tooltip?.textContent).toContain(THREAD_TITLE); |
| 3437 | + }, |
| 3438 | + { timeout: 8_000, interval: 16 }, |
| 3439 | + ); |
| 3440 | + } finally { |
| 3441 | + await mounted.cleanup(); |
| 3442 | + } |
| 3443 | + }); |
| 3444 | + |
| 3416 | 3445 | it("shows the confirm archive action after clicking the archive button", async () => { |
| 3417 | 3446 | localStorage.setItem( |
| 3418 | 3447 | "t3code:client-settings:v1", |