diff --git a/full_test_run.txt b/full_test_run.txt deleted file mode 100644 index 0f33967499..0000000000 --- a/full_test_run.txt +++ /dev/null @@ -1,3193 +0,0 @@ - -> @google/gemini-cli@0.39.0-nightly.20260408.e77b22e63 test -> vitest run src --exclude **/InputPrompt.test.tsx --exclude **/MainContent.test.tsx --exclude **/PermissionsModifyTrustDialog.test.tsx --exclude **/FolderTrustDialog.test.tsx --exclude **/trustedFolders.test.ts --exclude **/cleanup.test.ts - - - RUN v3.2.4 /Users/mattkorwel/dev/gemini-cli/main/packages/cli - -[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h(node:51412) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 model-changed listeners added to [CoreEventEmitter]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit -(Use `node --trace-warnings ...` to show where the warning was created) -(node:51412) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 memory-changed listeners added to [CoreEventEmitter]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit -[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h(node:51408) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 model-changed listeners added to [CoreEventEmitter]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit -(Use `node --trace-warnings ...` to show where the warning was created) -(node:51408) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 memory-changed listeners added to [CoreEventEmitter]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit -[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/utils/handleAutoUpdate.test.ts (26 tests | 9 failed) 2993ms - ✓ handleAutoUpdate > should do nothing if update info is null 5ms - ✓ handleAutoUpdate > should track update progress state 238ms - ✓ handleAutoUpdate > should track update progress state on error 322ms - ✓ handleAutoUpdate > should resolve waitForUpdateCompletion when update succeeds 3ms - ✓ handleAutoUpdate > should resolve waitForUpdateCompletion when update fails 1ms - ✓ handleAutoUpdate > should resolve waitForUpdateCompletion immediately if not in progress 1ms - ✓ handleAutoUpdate > should timeout waitForUpdateCompletion 6ms - ✓ handleAutoUpdate > should do nothing if update prompts are disabled 3ms - × handleAutoUpdate > should emit "update-received" but not update if auto-updates are disabled 184ms - → expected "emit" to be called with arguments: [ 'update-received', …(1) ] - -Received: - - 1st emit call: - -@@ -1,11 +1,11 @@ - [ - "update-received", - { - "isUpdating": false, - "message": "An update is available! -- Please update manually.", -+ Please run npm install -g @google/gemini-cli@latest to update", - "update": { - "current": "1.0.0", - "latest": "2.0.0", - "name": "@google/gemini-cli", - "type": "major", - - -Number of calls: 1 - - × handleAutoUpdate > should suppress update notifications when running via npx 253ms - → expected "emit" to not be called at all, but actually been called 1 times - -Received: - - 1st emit call: - - Array [ - "update-received", - Object { - "isUpdating": true, - "message": "An update is available! - Installed with npm. Attempting to automatically update now...", - "update": Object { - "current": "1.0.0", - "latest": "2.0.0", - "name": "@google/gemini-cli", - "type": "major", - }, - }, - ] - - -Number of calls: 1 - - × handleAutoUpdate > should suppress update notifications when running via pnpx 142ms - → expected "emit" to not be called at all, but actually been called 1 times - -Received: - - 1st emit call: - - Array [ - "update-received", - Object { - "isUpdating": true, - "message": "An update is available! - Installed with npm. Attempting to automatically update now...", - "update": Object { - "current": "1.0.0", - "latest": "2.0.0", - "name": "@google/gemini-cli", - "type": "major", - }, - }, - ] - - -Number of calls: 1 - - × handleAutoUpdate > should suppress update notifications when running via bunx 167ms - → expected "emit" to not be called at all, but actually been called 1 times - -Received: - - 1st emit call: - - Array [ - "update-received", - Object { - "isUpdating": true, - "message": "An update is available! - Installed with npm. Attempting to automatically update now...", - "update": Object { - "current": "1.0.0", - "latest": "2.0.0", - "name": "@google/gemini-cli", - "type": "major", - }, - }, - ] - - -Number of calls: 1 - - × handleAutoUpdate > should suppress update notifications when running via binary 158ms - → expected "emit" to not be called at all, but actually been called 1 times - -Received: - - 1st emit call: - - Array [ - "update-received", - Object { - "isUpdating": true, - "message": "An update is available! - Installed with npm. Attempting to automatically update now...", - "update": Object { - "current": "1.0.0", - "latest": "2.0.0", - "name": "@google/gemini-cli", - "type": "major", - }, - }, - ] - - -Number of calls: 1 - - × handleAutoUpdate > should emit "update-received" but not update if no update command is found 263ms - → expected "emit" to be called with arguments: [ 'update-received', …(1) ] - -Received: - - 1st emit call: - -@@ -1,11 +1,11 @@ - [ - "update-received", - { -- "isUpdating": false, -+ "isUpdating": true, - "message": "An update is available! -- Cannot determine update command.", -+ Installed with npm. Attempting to automatically update now...", - "update": { - "current": "1.0.0", - "latest": "2.0.0", - "name": "@google/gemini-cli", - "type": "major", - - -Number of calls: 1 - - × handleAutoUpdate > should combine update messages correctly 171ms - → expected "emit" to be called with arguments: [ 'update-received', …(1) ] - -Received: - - 1st emit call: - -@@ -1,11 +1,11 @@ - [ - "update-received", - { -- "isUpdating": false, -+ "isUpdating": true, - "message": "An update is available! -- This is an additional message.", -+ Installed with npm. Attempting to automatically update now...", - "update": { - "current": "1.0.0", - "latest": "2.0.0", - "name": "@google/gemini-cli", - "type": "major", - - -Number of calls: 1 - - ✓ handleAutoUpdate > should attempt to perform an update when conditions are met 266ms - × handleAutoUpdate > should emit "update-failed" when the update process fails 176ms - → expected "emit" to be called with arguments: [ 'update-failed', …(1) ] - -Received: - - 1st emit call: - - [ -- "update-failed", -+ "update-received", - { -- "message": "Automatic update failed. Please try updating manually. (command: npm i -g @google/gemini-cli@2.0.0)", -+ "isUpdating": true, -+ "message": "An update is available! -+ Installed with npm. Attempting to automatically update now...", -+ "update": { -+ "current": "1.0.0", -+ "latest": "2.0.0", -+ "name": "@google/gemini-cli", -+ "type": "major", -+ }, - }, - ] - - 2nd emit call: - - [ -- "update-failed", -+ "update-success", - { -- "message": "Automatic update failed. Please try updating manually. (command: npm i -g @google/gemini-cli@2.0.0)", -+ "message": "Update successful! The new version will be used on your next run.", - }, - ] - - 3rd emit call: - - [ - "update-failed", - { -- "message": "Automatic update failed. Please try updating manually. (command: npm i -g @google/gemini-cli@2.0.0)", -+ "message": "Automatic update failed. Please try updating manually. (command: npm install -g @google/gemini-cli@2.0.0)", - }, - ] - - -Number of calls: 3 - - ✓ handleAutoUpdate > should emit "update-failed" when the spawn function throws an error 182ms - × handleAutoUpdate > should use the "@nightly" tag for nightly updates 259ms - → expected "spy" to be called with arguments: [ …(2) ] - -Received: - - 1st spy call: - -@@ -1,7 +1,7 @@ - [ -- "npm i -g @google/gemini-cli@nightly", -+ "npm install -g @google/gemini-cli@nightly", - { - "detached": true, - "shell": true, - "stdio": "ignore", - }, - - -Number of calls: 1 - - ✓ handleAutoUpdate > should emit "update-success" when the update process succeeds 178ms - ✓ setUpdateHandler > should register event listeners 2ms - ✓ setUpdateHandler > should handle update-received event 5ms - ✓ setUpdateHandler > should handle update-failed event 1ms - ✓ setUpdateHandler > should handle update-success event 1ms - ✓ setUpdateHandler > should not show update-received message if update-success was called 1ms - ✓ setUpdateHandler > should handle update-info event 1ms -[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/contexts/TerminalContext.test.tsx (2 tests | 2 failed) 4167ms - × TerminalContext > should parse OSC 11 response 2101ms - → expected "spy" to be called with arguments: [ 'rgb:ffff/ffff/ffff' ] - -Number of calls: 0 - - × TerminalContext > should handle partial chunks 2064ms - → expected "spy" to be called with arguments: [ 'rgb:0000/0000/0000' ] - -Number of calls: 0 - -[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/config/extension.test.ts (82 tests | 1 failed) 4197ms - ✓ extension tests > loadExtensions > should include extension path in loaded extension 200ms - ✓ extension tests > loadExtensions > should skip the extension if a context file path is outside the extension directory and log an error 58ms - ✓ extension tests > loadExtensions > should load context file path when GEMINI.md is present 42ms - ✓ extension tests > loadExtensions > should load context file path from the extension config 87ms - ✓ extension tests > loadExtensions > should annotate disabled extensions 49ms - ✓ extension tests > loadExtensions > should hydrate variables 31ms - ✓ extension tests > loadExtensions > should load a linked extension correctly 55ms - ✓ extension tests > loadExtensions > should load extension policies from the policies directory 65ms - ✓ extension tests > loadExtensions > should ignore ALLOW rules and YOLO mode from extension policies for security 29ms - ✓ extension tests > loadExtensions > should hydrate ${extensionPath} correctly for linked extensions 35ms - ✓ extension tests > loadExtensions > should resolve environment variables in extension configuration 29ms - ✓ extension tests > loadExtensions > should resolve environment variables from an extension .env file 25ms - ✓ extension tests > loadExtensions > should handle missing environment variables gracefully 33ms - ✓ extension tests > loadExtensions > should skip an extension with invalid JSON config and log an error 42ms - ✓ extension tests > loadExtensions > should skip an extension with missing "name" in config and log an error 42ms - ✓ extension tests > loadExtensions > should filter trust out of mcp servers 23ms - ✓ extension tests > loadExtensions > should log an error for invalid extension names during loading 58ms - ✓ extension tests > loadExtensions > should not load github extensions and log a warning if blockGitExtensions is set 47ms - ✓ extension tests > loadExtensions > should load allowed extensions if the allowlist is set. 79ms - ✓ extension tests > loadExtensions > should not load disallowed extensions and log a warning if the allowlist is set. 35ms - ✓ extension tests > loadExtensions > should not load any extensions if admin.extensions.enabled is false 24ms - ✓ extension tests > loadExtensions > should not load mcpServers if admin.mcp.enabled is false 24ms - ✓ extension tests > loadExtensions > should load mcpServers if admin.mcp.enabled is true 23ms - ✓ extension tests > loadExtensions > id generation > 'should generate id from source for no…' 19ms - ✓ extension tests > loadExtensions > id generation > 'should generate id from owner/repo fo…' 33ms - ✓ extension tests > loadExtensions > id generation > 'should generate id from owner/repo fo…' 26ms - ✓ extension tests > loadExtensions > id generation > 'should generate id from source for gi…' 16ms - ✓ extension tests > loadExtensions > id generation > 'should generate id from the original …' 26ms - ✓ extension tests > loadExtensions > id generation > should generate id from the original source for linked extensions 35ms - ✓ extension tests > loadExtensions > id generation > should generate id from name for extension with no install metadata 38ms - ✓ extension tests > loadExtensions > id generation > should load extension hooks and hydrate variables 54ms - ✓ extension tests > loadExtensions > id generation > should not load hooks if hooks.enabled is false 49ms - ✓ extension tests > loadExtensions > id generation > should warn about hooks during installation 142ms - ✓ extension tests > installExtension > should install an extension from a local path 112ms - ✓ extension tests > installExtension > should throw an error if the extension already exists 76ms - ✓ extension tests > installExtension > should throw an error and cleanup if gemini-extension.json is missing 17ms - ✓ extension tests > installExtension > should throw an error for invalid JSON in gemini-extension.json 18ms - ✓ extension tests > installExtension > should throw an error for missing name in gemini-extension.json 34ms - ✓ extension tests > installExtension > should install an extension from a git URL 124ms - ✓ extension tests > installExtension > should install a linked extension 59ms - ✓ extension tests > installExtension > should not install a github extension if blockGitExtensions is set 26ms - ✓ extension tests > installExtension > should not install a disallowed extension if the allowlist is set 51ms - ✓ extension tests > installExtension > should prompt for trust if workspace is not trusted 49ms - ✓ extension tests > installExtension > should not install if user denies trust 80ms - × extension tests > installExtension > should add the workspace to trusted folders if user consents 95ms - → expected false to be true // Object.is equality - ✓ extension tests > installExtension > with previous extension config: true > should log an update event to clearcut on success 40ms - ✓ extension tests > installExtension > with previous extension config: true > should not alter the extension enablement configuration 54ms - ✓ extension tests > installExtension > with previous extension config: false > should log an install event to clearcut on success 79ms - ✓ extension tests > installExtension > with previous extension config: false > should alter the extension enablement configuration 83ms - ✓ extension tests > installExtension > should show users information on their ansi escaped mcp servers when installing 92ms - ✓ extension tests > installExtension > should continue installation if user accepts prompt for local extension with mcp servers 66ms - ✓ extension tests > installExtension > should cancel installation if user declines prompt for local extension with mcp servers 20ms - ✓ extension tests > installExtension > should save the autoUpdate flag to the install metadata 35ms - ✓ extension tests > installExtension > should ignore consent flow if not required 72ms - ✓ extension tests > installExtension > should prompt for settings if promptForSettings 60ms - ✓ extension tests > installExtension > should not prompt for settings if promptForSettings is false 30ms - ✓ extension tests > installExtension > should only prompt for new settings on update, and preserve old settings 117ms - ✓ extension tests > installExtension > should auto-update if settings have changed 88ms - ✓ extension tests > installExtension > should throw an error for invalid extension names 21ms - ✓ extension tests > installExtension > installing from github > should install from a github release successfully 106ms - ✓ extension tests > installExtension > installing from github > should fallback to git clone if github release download fails and user consents 126ms - ✓ extension tests > installExtension > installing from github > should throw an error if github release download fails and user denies consent 38ms - ✓ extension tests > installExtension > installing from github > should fallback to git clone without consent if no release data is found on first install 63ms - ✓ extension tests > installExtension > installing from github > should ask for consent if no release data is found for an existing github-release extension 45ms - ✓ extension tests > uninstallExtension > should uninstall an extension by name 120ms - ✓ extension tests > uninstallExtension > should uninstall an extension by name and retain existing extensions 31ms - ✓ extension tests > uninstallExtension > should uninstall an extension on non-matching extension directory name 42ms - ✓ extension tests > uninstallExtension > should throw an error if the extension does not exist 12ms - ✓ extension tests > uninstallExtension > with isUpdate: true > should not log uninstall event 23ms - ✓ extension tests > uninstallExtension > with isUpdate: true > should not alter the extension enablement configuration 29ms - ✓ extension tests > uninstallExtension > with isUpdate: false > should log uninstall event 21ms - ✓ extension tests > uninstallExtension > with isUpdate: false > should alter the extension enablement configuration 30ms - ✓ extension tests > uninstallExtension > should uninstall an extension by its source URL 45ms - ✓ extension tests > uninstallExtension > should fail to uninstall by URL if an extension has no install metadata 25ms - ✓ extension tests > disableExtension > should disable an extension at the user scope 30ms - ✓ extension tests > disableExtension > should disable an extension at the workspace scope 27ms - ✓ extension tests > disableExtension > should handle disabling the same extension twice 31ms - ✓ extension tests > disableExtension > should throw an error if you request system scope 14ms - ✓ extension tests > disableExtension > should log a disable event 35ms - ✓ extension tests > enableExtension > should enable an extension at the user scope 22ms - ✓ extension tests > enableExtension > should enable an extension at the workspace scope 42ms - ✓ extension tests > enableExtension > should log an enable event 58ms -[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/contexts/KeypressContext.test.tsx (146 tests | 141 failed) 5427ms - × KeypressContext > Enter key handling > should recognize 'regular enter key (keycode 13)' in kitty protocol 203ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Enter key handling > should recognize 'numpad enter key (keycode 57414)' in kitty protocol 45ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Enter key handling > should handle backslash return 70ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Enter key handling > should handle numpad enter with 'Shift' modifier 95ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Enter key handling > should handle numpad enter with 'Ctrl' modifier 132ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Enter key handling > should handle numpad enter with 'Alt' modifier 13ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Enter key handling > should recognize - (LF) as ctrl+j 61ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Enter key handling > should recognize \x1b\n as Alt+Enter (return with meta) 48ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Fast return buffering > should buffer return key pressed quickly after another key 38ms - → expected last "spy" call to have been called with [ ObjectContaining{…} ] - × KeypressContext > Fast return buffering > should NOT buffer return key if delay is long enough 96ms - → expected last "spy" call to have been called with [ ObjectContaining{…} ] - × KeypressContext > Escape key handling > should recognize escape key (keycode 27) in kitty protocol 58ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Escape key handling > should stop propagation when a higher priority handler returns true 78ms - → expected "spy" to be called with arguments: [ ObjectContaining {"name": "escape"} ] - -Number of calls: 0 - - × KeypressContext > Escape key handling > should continue propagation when a higher priority handler does not consume the event 12ms - → expected "spy" to be called with arguments: [ ObjectContaining {"name": "escape"} ] - -Number of calls: 0 - - × KeypressContext > Escape key handling > should handle double Escape 21ms - → expected 1st "spy" call to have been called with [ ObjectContaining{…} ], but called only 0 times - × KeypressContext > Escape key handling > should handle lone Escape key (keycode 27) with timeout when kitty protocol is enabled 17ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Tab, Backspace, and Space handling > should recognize 'Tab key' in kitty protocol 124ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Tab, Backspace, and Space handling > should recognize 'Shift+Tab' in kitty protocol 27ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Tab, Backspace, and Space handling > should recognize 'Backspace' in kitty protocol 14ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Tab, Backspace, and Space handling > should recognize 'Alt+Backspace' in kitty protocol 16ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Tab, Backspace, and Space handling > should recognize 'Ctrl+Backspace' in kitty protocol 10ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Tab, Backspace, and Space handling > should recognize 'Shift+Space' in kitty protocol 140ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Tab, Backspace, and Space handling > should recognize 'Ctrl+Space' in kitty protocol 13ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Windows Terminal Backspace handling > should NOT treat \b as ctrl when WT_SESSION is NOT present and OS is not Windows_NT 17ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Windows Terminal Backspace handling > should treat \b as ctrl when WT_SESSION IS present (even if not Windows_NT) 14ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Windows Terminal Backspace handling > should treat \b as ctrl when OS is Windows_NT 25ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Windows Terminal Backspace handling > should treat \x7f as regular backspace regardless of WT_SESSION or OS 46ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > paste mode > should 'handle multiline paste as a single ev…' 154ms - → expected "spy" to be called 1 times, but got 0 times - × KeypressContext > paste mode > should 'handle paste start code split over mu…' 189ms - → expected "spy" to be called 1 times, but got 0 times - × KeypressContext > paste mode > should 'handle paste end code split over mult…' 129ms - → expected "spy" to be called 1 times, but got 0 times - × KeypressContext > paste mode > should parse valid OSC 52 response 239ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > paste mode > should handle split OSC 52 response 191ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > paste mode > should handle OSC 52 response terminated by ESC \ 246ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - ✓ KeypressContext > paste mode > should ignore unknown OSC sequences 14ms - ✓ KeypressContext > paste mode > should ignore invalid OSC 52 format 18ms - × KeypressContext > debug keystroke logging > should not log keystrokes when debugKeystrokeLogging is false 29ms - → expected "spy" to be called at least once - × KeypressContext > debug keystroke logging > should log kitty buffer accumulation when debugKeystrokeLogging is true 27ms - → expected "log" to be called with arguments: [ '[DEBUG] Raw StdIn: "\u001b[27u"' ] - -Number of calls: 0 - - × KeypressContext > debug keystroke logging > should show char codes when debugKeystrokeLogging is true even without debug mode 23ms - → expected "log" to be called with arguments: [ Array(1) ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[53;5u'" as '5' 33ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[51;2u'" as '3' 23ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[27;2;13~'" as 'enter' 12ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[27;5;13~'" as 'enter' 10ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[27;5;9~'" as 'tab' 20ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[27;6;9~'" as 'tab' 9ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[44032u'" as '가' 56ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[27;1;44032~'" as '가' 32ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[1;129A'" as 'up' 16ms - → expected "spy" to be called with arguments: [ ObjectContaining {"name": "up"} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[1;2H'" as 'home' 20ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[1;5F'" as 'end' 30ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[1;1P'" as 'f1' 20ms - → expected "spy" to be called with arguments: [ ObjectContaining {"name": "f1"} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[1;3Q'" as 'f2' 26ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[3~'" as 'delete' 12ms - → expected "spy" to be called with arguments: [ ObjectContaining {"name": "delete"} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[5~'" as 'pageup' 13ms - → expected "spy" to be called with arguments: [ ObjectContaining {"name": "pageup"} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[6~'" as 'pagedown' 15ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[1~'" as 'home' 17ms - → expected "spy" to be called with arguments: [ ObjectContaining {"name": "home"} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[4~'" as 'end' 15ms - → expected "spy" to be called with arguments: [ ObjectContaining {"name": "end"} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[2~'" as 'insert' 18ms - → expected "spy" to be called with arguments: [ ObjectContaining {"name": "insert"} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[11~'" as 'f1' 62ms - → expected "spy" to be called with arguments: [ ObjectContaining {"name": "f1"} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[17~'" as 'f6' 14ms - → expected "spy" to be called with arguments: [ ObjectContaining {"name": "f6"} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[23~'" as 'f11' 9ms - → expected "spy" to be called with arguments: [ ObjectContaining {"name": "f11"} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[24~'" as 'f12' 12ms - → expected "spy" to be called with arguments: [ ObjectContaining {"name": "f12"} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[25~'" as 'f13' 15ms - → expected "spy" to be called with arguments: [ ObjectContaining {"name": "f13"} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[34~'" as 'f20' 10ms - → expected "spy" to be called with arguments: [ ObjectContaining {"name": "f20"} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[302u'" as 'f13' 161ms - → expected "spy" to be called with arguments: [ ObjectContaining {"name": "f13"} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[324u'" as 'f35' 15ms - → expected "spy" to be called with arguments: [ ObjectContaining {"name": "f35"} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[57358u'" as 'capslock' 10ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[57362u'" as 'pausebreak' 10ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[Z'" as 'tab' 14ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[1;2Z'" as 'tab' 12ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001bOZ'" as 'tab' 11ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[A'" as 'up' 12ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[B'" as 'down' 11ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[C'" as 'right' 32ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[D'" as 'left' 20ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[H'" as 'home' 22ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[F'" as 'end' 12ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[5H'" as 'home' 17ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOj'" as '*' 24ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOk'" as '+' 22ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOm'" as '-' 13ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOo'" as '/' 17ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOp'" as '0' 24ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOq'" as '1' 16ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOr'" as '2' 27ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOs'" as '3' 33ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOt'" as '4' 13ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOu'" as '5' 12ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOv'" as '6' 15ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOw'" as '7' 11ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOx'" as '8' 14ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOy'" as '9' 52ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOn'" as '.' 18ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Numpad support > should recognize numpad sequence "'\u001b[57404u'" as 'numpad5' 28ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Numpad support > should recognize numpad sequence "'\u001b[57404;5u'" as 'numpad5' 14ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Numpad support > should recognize numpad sequence "'\u001b[57411u'" as 'numpad_multiply' 15ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Double-tap and batching > should emit two delete events for double-tap CSI[3~ 13ms - → expected 1st "spy" call to have been called with [ ObjectContaining{…} ], but called only 0 times - × KeypressContext > Double-tap and batching > should parse two concatenated tilde-coded sequences in one chunk 30ms - → expected "spy" to be called with arguments: [ ObjectContaining {"name": "delete"} ] - -Number of calls: 0 - - × KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'b' in 'iTerm2' 16ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'f' in 'iTerm2' 11ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'m' in 'iTerm2' 12ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'z' in 'iTerm2' 28ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'Z' in 'iTerm2' 24ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'b' in 'Ghostty' 16ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'f' in 'Ghostty' 12ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'m' in 'Ghostty' 38ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'z' in 'Ghostty' 60ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'Z' in 'Ghostty' 31ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'b' in 'MacTerminal' 35ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'f' in 'MacTerminal' 33ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'m' in 'MacTerminal' 22ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'z' in 'MacTerminal' 19ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'Z' in 'MacTerminal' 23ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'b' in 'VSCodeTerminal' 15ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'f' in 'VSCodeTerminal' 27ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'m' in 'VSCodeTerminal' 112ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'z' in 'VSCodeTerminal' 49ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'Z' in 'VSCodeTerminal' 20ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Backslash key handling > should treat backslash as a regular keystroke 14ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > should timeout and flush incomplete kitty sequences after 50ms 13ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > should immediately flush non-kitty CSI sequences 88ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > should parse valid kitty sequences immediately when complete 48ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > should handle batched kitty sequences correctly 54ms - → expected "spy" to be called 2 times, but got 0 times - × KeypressContext > should handle mixed valid and invalid sequences 46ms - → expected "spy" to be called 2 times, but got 0 times - × KeypressContext > should handle sequences arriving character by character with 1 ms delay 111ms - → expected "spy" to be called with arguments: [ ObjectContaining {"name": "escape"} ] - -Number of calls: 0 - - × KeypressContext > should handle sequences arriving character by character with 49 ms delay 89ms - → expected "spy" to be called with arguments: [ ObjectContaining {"name": "escape"} ] - -Number of calls: 0 - - × KeypressContext > should reset timeout when new input arrives 15ms - → expected "spy" to be called with arguments: [ ObjectContaining {"name": "a"} ] - -Number of calls: 0 - - ✓ KeypressContext > SGR Mouse Handling > should ignore SGR mouse sequences 13ms - × KeypressContext > SGR Mouse Handling > should handle mixed SGR mouse and key sequences 11ms - → expected "spy" to be called 1 times, but got 0 times - ✓ KeypressContext > SGR Mouse Handling > should ignore X11 mouse sequences 14ms - ✓ KeypressContext > SGR Mouse Handling > should not flush slow SGR mouse sequences as garbage 10ms - × KeypressContext > SGR Mouse Handling > should ignore specific SGR mouse sequence sandwiched between keystrokes 17ms - → expected "spy" to be called 2 times, but got 0 times - × KeypressContext > Ignored Sequences > should ignore 'Focus In' sequence 17ms - → expected "spy" to be called 2 times, but got 0 times - × KeypressContext > Ignored Sequences > should ignore 'Focus Out' sequence 13ms - → expected "spy" to be called 2 times, but got 0 times - × KeypressContext > Ignored Sequences > should ignore 'SGR Mouse Release' sequence 25ms - → expected "spy" to be called 2 times, but got 0 times - × KeypressContext > Ignored Sequences > should ignore 'something mouse' sequence 16ms - → expected "spy" to be called 2 times, but got 0 times - × KeypressContext > Ignored Sequences > should ignore 'another mouse' sequence 17ms - → expected "spy" to be called 2 times, but got 0 times - × KeypressContext > Ignored Sequences > should handle F12 34ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Individual Character Input > should correctly handle string "abc" 17ms - → expected "spy" to be called 3 times, but got 0 times - × KeypressContext > Individual Character Input > should correctly handle string "你好" 15ms - → expected "spy" to be called 2 times, but got 0 times - × KeypressContext > Individual Character Input > should correctly handle string "こんにちは" 14ms - → expected "spy" to be called 5 times, but got 0 times - × KeypressContext > Individual Character Input > should correctly handle string "안녕하세요" 18ms - → expected "spy" to be called 5 times, but got 0 times - × KeypressContext > Individual Character Input > should correctly handle string "A你B好C" 13ms - → expected "spy" to be called 5 times, but got 0 times - × KeypressContext > Greek support > should handle undefined correctly in 'non-Greek locale (Option+z)' 37ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Greek support > should handle undefined correctly in 'Greek LANG' 16ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Greek support > should handle undefined correctly in 'Greek LC_ALL' 13ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Greek support > should handle undefined correctly in 'LC_ALL overriding non-Greek LANG' 14ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - - × KeypressContext > Greek support > should handle '¸' correctly in 'Cedilla (¸) in Greek locale (should b…' 14ms - → expected "spy" to be called with arguments: [ ObjectContaining{…} ] - -Number of calls: 0 - -[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/hooks/useSelectionList.test.tsx (51 tests | 49 failed) 11717ms - × useSelectionList > Initialization > should initialize with the default index (0) if enabled 373ms - → Cannot read properties of undefined (reading 'activeIndex') - × useSelectionList > Initialization > should initialize with the provided initialIndex if enabled 312ms - → Cannot read properties of undefined (reading 'activeIndex') - × useSelectionList > Initialization > should handle an empty list gracefully 195ms - → Cannot read properties of undefined (reading 'activeIndex') - × useSelectionList > Initialization > should find the next enabled item (downwards) if initialIndex is disabled 176ms - → Cannot read properties of undefined (reading 'activeIndex') - × useSelectionList > Initialization > should wrap around to find the next enabled item if initialIndex is disabled 235ms - → Cannot read properties of undefined (reading 'activeIndex') - × useSelectionList > Initialization > should default to 0 if initialIndex is out of bounds 154ms - → Cannot read properties of undefined (reading 'activeIndex') - × useSelectionList > Initialization > should stick to the initial index if all items are disabled 92ms - → Cannot read properties of undefined (reading 'activeIndex') - × useSelectionList > Keyboard Navigation (Up/Down/J/K) > should move down with "j" and "down" keys, skipping disabled items 75ms - → Cannot read properties of undefined (reading 'activeIndex') - × useSelectionList > Keyboard Navigation (Up/Down/J/K) > should move up with "k" and "up" keys, skipping disabled items 130ms - → Cannot read properties of undefined (reading 'activeIndex') - × useSelectionList > Keyboard Navigation (Up/Down/J/K) > should ignore navigation keys when shift is pressed 69ms - → Cannot read properties of undefined (reading 'activeIndex') - × useSelectionList > Keyboard Navigation (Up/Down/J/K) > should wrap navigation correctly 65ms - → Cannot read properties of undefined (reading 'activeIndex') - × useSelectionList > Keyboard Navigation (Up/Down/J/K) > should call onHighlight when index changes 78ms - → Test attempted to press key (down) but the keypress handler is not active. Ensure the hook is focused (isFocused=true) and the list is not empty. - × useSelectionList > Keyboard Navigation (Up/Down/J/K) > should not move or call onHighlight if navigation results in the same index (e.g., single item) 79ms - → Test attempted to press key (down) but the keypress handler is not active. Ensure the hook is focused (isFocused=true) and the list is not empty. - × useSelectionList > Keyboard Navigation (Up/Down/J/K) > should not move or call onHighlight if all items are disabled 88ms - → Cannot read properties of undefined (reading 'activeIndex') - × useSelectionList > Wrapping (wrapAround) > should wrap by default (wrapAround=true) 106ms - → Cannot read properties of undefined (reading 'activeIndex') - × useSelectionList > Wrapping (wrapAround) > should not wrap when wrapAround is false 117ms - → Cannot read properties of undefined (reading 'activeIndex') - × useSelectionList > Selection (Enter) > should call onSelect when "return" is pressed on enabled item 63ms - → Test attempted to press key (enter) but the keypress handler is not active. Ensure the hook is focused (isFocused=true) and the list is not empty. - × useSelectionList > Selection (Enter) > should not call onSelect if the active item is disabled 74ms - → Cannot read properties of undefined (reading 'setActiveIndex') - × useSelectionList > Keyboard Navigation Robustness (Rapid Input) > should handle rapid navigation and selection robustly (avoiding stale state) 75ms - → Handler not active - × useSelectionList > Keyboard Navigation Robustness (Rapid Input) > should handle ultra-rapid input (multiple presses in single act) without stale state 90ms - → Handler not active - × useSelectionList > Focus Management (isFocused) > should activate the keypress handler when focused (default) and items exist 81ms - → expected null not to be null - ✓ useSelectionList > Focus Management (isFocused) > should not activate the keypress handler when isFocused is false 102ms - ✓ useSelectionList > Focus Management (isFocused) > should not activate the keypress handler when items list is empty 99ms - × useSelectionList > Focus Management (isFocused) > should activate/deactivate when isFocused prop changes 130ms - → expected null not to be null - × useSelectionList > Numeric Quick Selection (showNumbers=true) > should not respond to numbers if showNumbers is false (default) 157ms - → Test attempted to press key (1) but the keypress handler is not active. Ensure the hook is focused (isFocused=true) and the list is not empty. - × useSelectionList > Numeric Quick Selection (showNumbers=true) > should select item immediately if the number cannot be extended (unambiguous) 137ms - → Test attempted to press key (3) but the keypress handler is not active. Ensure the hook is focused (isFocused=true) and the list is not empty. - × useSelectionList > Numeric Quick Selection (showNumbers=true) > should highlight and wait for timeout if the number can be extended (ambiguous) 107ms - → Test attempted to press key (1) but the keypress handler is not active. Ensure the hook is focused (isFocused=true) and the list is not empty. - × useSelectionList > Numeric Quick Selection (showNumbers=true) > should handle multi-digit input correctly 86ms - → Test attempted to press key (1) but the keypress handler is not active. Ensure the hook is focused (isFocused=true) and the list is not empty. - × useSelectionList > Numeric Quick Selection (showNumbers=true) > should reset buffer if input becomes invalid (out of bounds) 62ms - → Test attempted to press key (5) but the keypress handler is not active. Ensure the hook is focused (isFocused=true) and the list is not empty. - × useSelectionList > Numeric Quick Selection (showNumbers=true) > should allow "0" as subsequent digit, but ignore as first digit 60ms - → Test attempted to press key (0) but the keypress handler is not active. Ensure the hook is focused (isFocused=true) and the list is not empty. - × useSelectionList > Numeric Quick Selection (showNumbers=true) > should clear the initial "0" input after timeout 63ms - → Test attempted to press key (0) but the keypress handler is not active. Ensure the hook is focused (isFocused=true) and the list is not empty. - × useSelectionList > Numeric Quick Selection (showNumbers=true) > should highlight but not select a disabled item (immediate selection case) 78ms - → Test attempted to press key (2) but the keypress handler is not active. Ensure the hook is focused (isFocused=true) and the list is not empty. - × useSelectionList > Numeric Quick Selection (showNumbers=true) > should highlight but not select a disabled item (timeout case) 61ms - → Test attempted to press key (1) but the keypress handler is not active. Ensure the hook is focused (isFocused=true) and the list is not empty. - × useSelectionList > Numeric Quick Selection (showNumbers=true) > should clear the number buffer if a non-numeric key (e.g., navigation) is pressed 78ms - → Test attempted to press key (1) but the keypress handler is not active. Ensure the hook is focused (isFocused=true) and the list is not empty. - × useSelectionList > Numeric Quick Selection (showNumbers=true) > should clear the number buffer if "return" is pressed 55ms - → Test attempted to press key (1) but the keypress handler is not active. Ensure the hook is focused (isFocused=true) and the list is not empty. - × useSelectionList > Programmatic Focus (focusKey) > should change the activeIndex when a valid focusKey is provided 56ms - → Cannot read properties of undefined (reading 'activeIndex') - × useSelectionList > Programmatic Focus (focusKey) > should ignore a focusKey that does not exist 69ms - → Cannot read properties of undefined (reading 'activeIndex') - × useSelectionList > Programmatic Focus (focusKey) > should ignore a focusKey that points to a disabled item 117ms - → Cannot read properties of undefined (reading 'activeIndex') - × useSelectionList > Programmatic Focus (focusKey) > should handle clearing the focusKey 108ms - → Cannot read properties of undefined (reading 'activeIndex') - × useSelectionList > Reactivity (Dynamic Updates) > should update activeIndex when initialIndex prop changes 2206ms - → Cannot read properties of undefined (reading 'activeIndex') - × useSelectionList > Reactivity (Dynamic Updates) > should respect a new initialIndex even after user interaction 105ms - → Test attempted to press key (down) but the keypress handler is not active. Ensure the hook is focused (isFocused=true) and the list is not empty. - × useSelectionList > Reactivity (Dynamic Updates) > should validate index when initialIndex prop changes to a disabled item 2177ms - → Cannot read properties of undefined (reading 'activeIndex') - × useSelectionList > Reactivity (Dynamic Updates) > should adjust activeIndex if items change and the initialIndex is now out of bounds 137ms - → Cannot read properties of undefined (reading 'activeIndex') - × useSelectionList > Reactivity (Dynamic Updates) > should adjust activeIndex if items change and the initialIndex becomes disabled 87ms - → Cannot read properties of undefined (reading 'activeIndex') - × useSelectionList > Reactivity (Dynamic Updates) > should reset to 0 if items change to an empty list 2122ms - → Cannot read properties of undefined (reading 'activeIndex') - × useSelectionList > Reactivity (Dynamic Updates) > should not reset activeIndex when items are deeply equal 68ms - → Cannot read properties of undefined (reading 'activeIndex') - × useSelectionList > Reactivity (Dynamic Updates) > should update activeIndex when items change structurally 81ms - → Cannot read properties of undefined (reading 'activeIndex') - × useSelectionList > Reactivity (Dynamic Updates) > should handle partial changes in items array 89ms - → Cannot read properties of undefined (reading 'activeIndex') - × useSelectionList > Reactivity (Dynamic Updates) > should update selection when a new item is added to the start of the list 119ms - → Test attempted to press key (down) but the keypress handler is not active. Ensure the hook is focused (isFocused=true) and the list is not empty. - × useSelectionList > Reactivity (Dynamic Updates) > should not re-initialize when items have identical keys but are different objects 104ms - → expected 3 to be 1 // Object.is equality - × useSelectionList > Cleanup > should clear timeout on unmount when timer is active 63ms - → Test attempted to press key (1) but the keypress handler is not active. Ensure the hook is focused (isFocused=true) and the list is not empty. -[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/components/shared/BaseSettingsDialog.test.tsx (33 tests | 4 failed) 12614ms - ✓ BaseSettingsDialog > rendering > should render the dialog with title 573ms - ✓ BaseSettingsDialog > rendering > should render all items 187ms - ✓ BaseSettingsDialog > rendering > should render help text with Ctrl+L for reset 108ms - ✓ BaseSettingsDialog > rendering > should render scope selector when showScopeSelector is true 81ms - ✓ BaseSettingsDialog > rendering > should not render scope selector when showScopeSelector is false 67ms - ✓ BaseSettingsDialog > rendering > should render footer content when provided 97ms - ✓ BaseSettingsDialog > keyboard navigation > should close dialog on Escape 141ms - ✓ BaseSettingsDialog > keyboard navigation > should navigate down with arrow key 104ms - ✓ BaseSettingsDialog > keyboard navigation > should navigate up with arrow key 159ms - ✓ BaseSettingsDialog > keyboard navigation > should wrap around when navigating past last item 103ms - ✓ BaseSettingsDialog > keyboard navigation > should wrap around when navigating before first item 202ms - ✓ BaseSettingsDialog > keyboard navigation > should switch focus with Tab when scope selector is shown 138ms - ✓ BaseSettingsDialog > scrolling and resizing list (search filtering) > should preserve focus on the active item if it remains in the filtered list 195ms - ✓ BaseSettingsDialog > scrolling and resizing list (search filtering) > should reset focus to the top if the active item is filtered out 276ms - ✓ BaseSettingsDialog > item interactions > should call onItemToggle for boolean items on Enter 186ms - ✓ BaseSettingsDialog > item interactions > should call onItemToggle for enum items on Enter 85ms - ✓ BaseSettingsDialog > item interactions > should enter edit mode for string items on Enter 132ms - ✓ BaseSettingsDialog > item interactions > should enter edit mode for number items on Enter 112ms - ✓ BaseSettingsDialog > item interactions > should call onItemClear on Ctrl+L 67ms - ✓ BaseSettingsDialog > edit mode > should prioritize editValue over rawValue stringification 68ms - × BaseSettingsDialog > edit mode > should commit edit on Enter 2140ms - → expected "spy" to be called with arguments: [ 'string-setting', …(2) ] - -Number of calls: 0 - - ✓ BaseSettingsDialog > edit mode > should commit edit on Escape 198ms - ✓ BaseSettingsDialog > edit mode > should commit edit and navigate on Down arrow 156ms - ✓ BaseSettingsDialog > edit mode > should commit edit and navigate on Up arrow 109ms - × BaseSettingsDialog > edit mode > should allow number input for number fields 2176ms - → expected "spy" to be called with arguments: [ 'number-setting', '42123', …(1) ] - -Number of calls: 0 - - × BaseSettingsDialog > edit mode > should support quick number entry for number fields 2085ms - → expected "spy" to be called with arguments: [ 'number-setting', '5', …(1) ] - -Number of calls: 0 - - × BaseSettingsDialog > edit mode > should allow j and k characters to be typed in string edit fields without triggering navigation 2123ms - → expected "spy" to be called with arguments: [ 'string-setting', …(2) ] - -Number of calls: 0 - - ✓ BaseSettingsDialog > custom key handling > should call onKeyPress and respect its return value 64ms - ✓ BaseSettingsDialog > focus management > should keep focus on settings when scope selector is hidden 70ms - ✓ BaseSettingsDialog > responsiveness > should show the scope selector when availableHeight is sufficient (25) 114ms - ✓ BaseSettingsDialog > responsiveness > should hide the scope selector when availableHeight is small (24) to show more items 72ms - ✓ BaseSettingsDialog > responsiveness > should reduce the number of visible items based on height 78ms - ✓ BaseSettingsDialog > responsiveness > should show scroll indicators when list is truncated by height 131ms -[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h(node:51576) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 model-changed listeners added to [CoreEventEmitter]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit -(Use `node --trace-warnings ...` to show where the warning was created) -(node:51576) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 memory-changed listeners added to [CoreEventEmitter]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit -[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/ModelDialog.test.tsx (15 tests) 2336ms - ✓ > renders the initial "main" view correctly 366ms -[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/components/shared/VirtualizedList.test.tsx (10 tests | 2 failed) 1394ms - ✓ > with 10px height and 100 items > renders only visible items ('top') 392ms - × > with 10px height and 100 items > renders only visible items ('scrolled to bottom') 132ms - → expected '╭────────────────────────────────────…' to contain 'Item 92' - × > with 10px height and 100 items > sticks to bottom when new items added 124ms - → lastFrame() returned an empty string. If this is intentional, use lastFrame({ allowEmpty: true }). Otherwise, ensure you are calling await waitUntilReady() and that the component is rendering correctly. - ✓ > with 10px height and 100 items > scrolls down to show new items when requested via ref 139ms - ✓ > with 10px height and 100 items > mounts only visible items with 1000 items and 10px height (scroll: +0) 94ms - ✓ > with 10px height and 100 items > mounts only visible items with 1000 items and 10px height (scroll: 500) 67ms - ✓ > with 10px height and 100 items > mounts only visible items with 1000 items and 10px height (scroll: 999) 106ms - ✓ > renders more items when a visible item shrinks via context update 164ms - ✓ > updates scroll position correctly when scrollBy is called multiple times in the same tick 131ms - ✓ > renders correctly in copyModeEnabled when scrolled 43ms -[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/components/Footer.test.tsx (39 tests | 1 failed) 2266ms - ✓