| ... | @@ -23,6 +23,7 @@ import { | ... | @@ -23,6 +23,7 @@ import { |
| 23 | ServerConfig as ServerConfigSchema, | 23 | ServerConfig as ServerConfigSchema, |
| 24 | } from "@t3tools/contracts"; | 24 | } from "@t3tools/contracts"; |
| 25 | import { scopedThreadKey, scopeThreadRef } from "@t3tools/client-runtime"; | 25 | import { scopedThreadKey, scopeThreadRef } from "@t3tools/client-runtime"; |
| | 26 | import { DEFAULT_RESOLVED_KEYBINDINGS } from "@t3tools/shared/keybindings"; |
| 26 | import { createModelCapabilities, createModelSelection } from "@t3tools/shared/model"; | 27 | import { createModelCapabilities, createModelSelection } from "@t3tools/shared/model"; |
| 27 | import { RouterProvider, createMemoryHistory } from "@tanstack/react-router"; | 28 | import { RouterProvider, createMemoryHistory } from "@tanstack/react-router"; |
| 28 | import * as Option from "effect/Option"; | 29 | import * as Option from "effect/Option"; |
| ... | @@ -2064,6 +2065,14 @@ describe("ChatView timeline estimator parity (full app)", () => { | ... | @@ -2064,6 +2065,14 @@ describe("ChatView timeline estimator parity (full app)", () => { |
| 2064 | targetMessageId: "msg-user-open-empty-terminal-drawer" as MessageId, | 2065 | targetMessageId: "msg-user-open-empty-terminal-drawer" as MessageId, |
| 2065 | targetText: "open empty terminal drawer", | 2066 | targetText: "open empty terminal drawer", |
| 2066 | }), | 2067 | }), |
| | 2068 | configureFixture: (nextFixture) => { |
| | 2069 | nextFixture.serverConfig = { |
| | 2070 | ...nextFixture.serverConfig, |
| | 2071 | keybindings: DEFAULT_RESOLVED_KEYBINDINGS.filter( |
| | 2072 | (binding) => binding.command === "terminal.toggle", |
| | 2073 | ), |
| | 2074 | }; |
| | 2075 | }, |
| 2067 | }); | 2076 | }); |
| 2068 | | 2077 | |
| 2069 | try { | 2078 | try { |
| ... | @@ -2107,6 +2116,15 @@ describe("ChatView timeline estimator parity (full app)", () => { | ... | @@ -2107,6 +2116,15 @@ describe("ChatView timeline estimator parity (full app)", () => { |
| 2107 | targetMessageId: "msg-user-open-inline-terminal-panel" as MessageId, | 2116 | targetMessageId: "msg-user-open-inline-terminal-panel" as MessageId, |
| 2108 | targetText: "open inline terminal panel", | 2117 | targetText: "open inline terminal panel", |
| 2109 | }), | 2118 | }), |
| | 2119 | configureFixture: (nextFixture) => { |
| | 2120 | nextFixture.serverConfig = { |
| | 2121 | ...nextFixture.serverConfig, |
| | 2122 | keybindings: DEFAULT_RESOLVED_KEYBINDINGS.filter( |
| | 2123 | (binding) => |
| | 2124 | binding.command === "rightPanel.toggle" || binding.command === "terminal.toggle", |
| | 2125 | ), |
| | 2126 | }; |
| | 2127 | }, |
| 2110 | }); | 2128 | }); |
| 2111 | | 2129 | |
| 2112 | try { | 2130 | try { |
| ... | @@ -2195,12 +2213,15 @@ describe("ChatView timeline estimator parity (full app)", () => { | ... | @@ -2195,12 +2213,15 @@ describe("ChatView timeline estimator parity (full app)", () => { |
| 2195 | { timeout: 8_000, interval: 16 }, | 2213 | { timeout: 8_000, interval: 16 }, |
| 2196 | ); | 2214 | ); |
| 2197 | | 2215 | |
| 2198 | const drawerToggle = await waitForElement( | 2216 | window.dispatchEvent( |
| 2199 | () => | 2217 | new KeyboardEvent("keydown", { |
| 2200 | document.querySelector<HTMLButtonElement>('button[aria-label="Toggle terminal drawer"]'), | 2218 | key: "j", |
| 2201 | "Unable to find terminal drawer toggle.", | 2219 | metaKey: isMacPlatform(navigator.platform), |
| | 2220 | ctrlKey: !isMacPlatform(navigator.platform), |
| | 2221 | bubbles: true, |
| | 2222 | cancelable: true, |
| | 2223 | }), |
| 2202 | ); | 2224 | ); |
| 2203 | drawerToggle.click(); | | |
| 2204 | | 2225 | |
| 2205 | await vi.waitFor(() => { | 2226 | await vi.waitFor(() => { |
| 2206 | expect( | 2227 | expect( |