mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-07-12 19:10:55 -07:00
3193 lines
220 KiB
Plaintext
3193 lines
220 KiB
Plaintext
|
||
> @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) ][90m
|
||
|
||
Received:
|
||
|
||
[1m 1st emit call:
|
||
|
||
[22m[33m@@ -1,11 +1,11 @@[90m
|
||
[2m [[22m
|
||
[2m "update-received",[22m
|
||
[2m {[22m
|
||
[2m "isUpdating": false,[22m
|
||
[2m "message": "An update is available![22m
|
||
[32m- Please update manually.",[90m
|
||
[31m+ Please run npm install -g @google/gemini-cli@latest to update",[90m
|
||
[2m "update": {[22m
|
||
[2m "current": "1.0.0",[22m
|
||
[2m "latest": "2.0.0",[22m
|
||
[2m "name": "@google/gemini-cli",[22m
|
||
[2m "type": "major",[22m
|
||
[39m[90m
|
||
|
||
Number of calls: [1m1[22m
|
||
[39m
|
||
× handleAutoUpdate > should suppress update notifications when running via npx 253ms
|
||
→ expected "emit" to not be called at all, but actually been called 1 times[90m
|
||
|
||
Received:
|
||
|
||
[1m 1st emit call:
|
||
|
||
[22m 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",
|
||
},
|
||
},
|
||
]
|
||
[39m[90m
|
||
|
||
Number of calls: [1m1[22m
|
||
[39m
|
||
× handleAutoUpdate > should suppress update notifications when running via pnpx 142ms
|
||
→ expected "emit" to not be called at all, but actually been called 1 times[90m
|
||
|
||
Received:
|
||
|
||
[1m 1st emit call:
|
||
|
||
[22m 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",
|
||
},
|
||
},
|
||
]
|
||
[39m[90m
|
||
|
||
Number of calls: [1m1[22m
|
||
[39m
|
||
× handleAutoUpdate > should suppress update notifications when running via bunx 167ms
|
||
→ expected "emit" to not be called at all, but actually been called 1 times[90m
|
||
|
||
Received:
|
||
|
||
[1m 1st emit call:
|
||
|
||
[22m 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",
|
||
},
|
||
},
|
||
]
|
||
[39m[90m
|
||
|
||
Number of calls: [1m1[22m
|
||
[39m
|
||
× handleAutoUpdate > should suppress update notifications when running via binary 158ms
|
||
→ expected "emit" to not be called at all, but actually been called 1 times[90m
|
||
|
||
Received:
|
||
|
||
[1m 1st emit call:
|
||
|
||
[22m 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",
|
||
},
|
||
},
|
||
]
|
||
[39m[90m
|
||
|
||
Number of calls: [1m1[22m
|
||
[39m
|
||
× 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) ][90m
|
||
|
||
Received:
|
||
|
||
[1m 1st emit call:
|
||
|
||
[22m[33m@@ -1,11 +1,11 @@[90m
|
||
[2m [[22m
|
||
[2m "update-received",[22m
|
||
[2m {[22m
|
||
[32m- "isUpdating": false,[90m
|
||
[31m+ "isUpdating": true,[90m
|
||
[2m "message": "An update is available![22m
|
||
[32m- Cannot determine update command.",[90m
|
||
[31m+ Installed with npm. Attempting to automatically update now...",[90m
|
||
[2m "update": {[22m
|
||
[2m "current": "1.0.0",[22m
|
||
[2m "latest": "2.0.0",[22m
|
||
[2m "name": "@google/gemini-cli",[22m
|
||
[2m "type": "major",[22m
|
||
[39m[90m
|
||
|
||
Number of calls: [1m1[22m
|
||
[39m
|
||
× handleAutoUpdate > should combine update messages correctly 171ms
|
||
→ expected "emit" to be called with arguments: [ 'update-received', …(1) ][90m
|
||
|
||
Received:
|
||
|
||
[1m 1st emit call:
|
||
|
||
[22m[33m@@ -1,11 +1,11 @@[90m
|
||
[2m [[22m
|
||
[2m "update-received",[22m
|
||
[2m {[22m
|
||
[32m- "isUpdating": false,[90m
|
||
[31m+ "isUpdating": true,[90m
|
||
[2m "message": "An update is available![22m
|
||
[32m- This is an additional message.",[90m
|
||
[31m+ Installed with npm. Attempting to automatically update now...",[90m
|
||
[2m "update": {[22m
|
||
[2m "current": "1.0.0",[22m
|
||
[2m "latest": "2.0.0",[22m
|
||
[2m "name": "@google/gemini-cli",[22m
|
||
[2m "type": "major",[22m
|
||
[39m[90m
|
||
|
||
Number of calls: [1m1[22m
|
||
[39m
|
||
✓ 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) ][90m
|
||
|
||
Received:
|
||
|
||
[1m 1st emit call:
|
||
|
||
[22m[2m [[22m
|
||
[32m- "update-failed",[90m
|
||
[31m+ "update-received",[90m
|
||
[2m {[22m
|
||
[32m- "message": "Automatic update failed. Please try updating manually. (command: npm i -g @google/gemini-cli@2.0.0)",[90m
|
||
[31m+ "isUpdating": true,[90m
|
||
[31m+ "message": "An update is available![90m
|
||
[31m+ Installed with npm. Attempting to automatically update now...",[90m
|
||
[31m+ "update": {[90m
|
||
[31m+ "current": "1.0.0",[90m
|
||
[31m+ "latest": "2.0.0",[90m
|
||
[31m+ "name": "@google/gemini-cli",[90m
|
||
[31m+ "type": "major",[90m
|
||
[31m+ },[90m
|
||
[2m },[22m
|
||
[2m ][22m
|
||
|
||
[1m 2nd emit call:
|
||
|
||
[22m[2m [[22m
|
||
[32m- "update-failed",[90m
|
||
[31m+ "update-success",[90m
|
||
[2m {[22m
|
||
[32m- "message": "Automatic update failed. Please try updating manually. (command: npm i -g @google/gemini-cli@2.0.0)",[90m
|
||
[31m+ "message": "Update successful! The new version will be used on your next run.",[90m
|
||
[2m },[22m
|
||
[2m ][22m
|
||
|
||
[1m 3rd emit call:
|
||
|
||
[22m[2m [[22m
|
||
[2m "update-failed",[22m
|
||
[2m {[22m
|
||
[32m- "message": "Automatic update failed. Please try updating manually. (command: npm i -g @google/gemini-cli@2.0.0)",[90m
|
||
[31m+ "message": "Automatic update failed. Please try updating manually. (command: npm install -g @google/gemini-cli@2.0.0)",[90m
|
||
[2m },[22m
|
||
[2m ][22m
|
||
[39m[90m
|
||
|
||
Number of calls: [1m3[22m
|
||
[39m
|
||
✓ 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) ][90m
|
||
|
||
Received:
|
||
|
||
[1m 1st spy call:
|
||
|
||
[22m[33m@@ -1,7 +1,7 @@[90m
|
||
[2m [[22m
|
||
[32m- "npm i -g @google/gemini-cli@nightly",[90m
|
||
[31m+ "npm install -g @google/gemini-cli@nightly",[90m
|
||
[2m {[22m
|
||
[2m "detached": true,[22m
|
||
[2m "shell": true,[22m
|
||
[2m "stdio": "ignore",[22m
|
||
[2m },[22m
|
||
[39m[90m
|
||
|
||
Number of calls: [1m1[22m
|
||
[39m
|
||
✓ 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' ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× TerminalContext > should handle partial chunks 2064ms
|
||
→ expected "spy" to be called with arguments: [ 'rgb:0000/0000/0000' ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
[?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{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Enter key handling > should recognize 'numpad enter key (keycode 57414)' in kitty protocol 45ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Enter key handling > should handle backslash return 70ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Enter key handling > should handle numpad enter with 'Shift' modifier 95ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Enter key handling > should handle numpad enter with 'Ctrl' modifier 132ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Enter key handling > should handle numpad enter with 'Alt' modifier 13ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Enter key handling > should recognize
|
||
(LF) as ctrl+j 61ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Enter key handling > should recognize \x1b\n as Alt+Enter (return with meta) 48ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× 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{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× 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"} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× 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"} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× 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{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Tab, Backspace, and Space handling > should recognize 'Tab key' in kitty protocol 124ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Tab, Backspace, and Space handling > should recognize 'Shift+Tab' in kitty protocol 27ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Tab, Backspace, and Space handling > should recognize 'Backspace' in kitty protocol 14ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Tab, Backspace, and Space handling > should recognize 'Alt+Backspace' in kitty protocol 16ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Tab, Backspace, and Space handling > should recognize 'Ctrl+Backspace' in kitty protocol 10ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Tab, Backspace, and Space handling > should recognize 'Shift+Space' in kitty protocol 140ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Tab, Backspace, and Space handling > should recognize 'Ctrl+Space' in kitty protocol 13ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× 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{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× 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{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Windows Terminal Backspace handling > should treat \b as ctrl when OS is Windows_NT 25ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× 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{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× 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{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > paste mode > should handle split OSC 52 response 191ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > paste mode > should handle OSC 52 response terminated by ESC \ 246ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
✓ 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"' ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× 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) ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[53;5u'" as '5' 33ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[51;2u'" as '3' 23ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[27;2;13~'" as 'enter' 12ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[27;5;13~'" as 'enter' 10ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[27;5;9~'" as 'tab' 20ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[27;6;9~'" as 'tab' 9ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[44032u'" as '가' 56ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[27;1;44032~'" as '가' 32ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[1;129A'" as 'up' 16ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining {"name": "up"} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[1;2H'" as 'home' 20ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[1;5F'" as 'end' 30ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[1;1P'" as 'f1' 20ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining {"name": "f1"} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[1;3Q'" as 'f2' 26ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[3~'" as 'delete' 12ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining {"name": "delete"} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[5~'" as 'pageup' 13ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining {"name": "pageup"} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[6~'" as 'pagedown' 15ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[1~'" as 'home' 17ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining {"name": "home"} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[4~'" as 'end' 15ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining {"name": "end"} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[2~'" as 'insert' 18ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining {"name": "insert"} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[11~'" as 'f1' 62ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining {"name": "f1"} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[17~'" as 'f6' 14ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining {"name": "f6"} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[23~'" as 'f11' 9ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining {"name": "f11"} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[24~'" as 'f12' 12ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining {"name": "f12"} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[25~'" as 'f13' 15ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining {"name": "f13"} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[34~'" as 'f20' 10ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining {"name": "f20"} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[302u'" as 'f13' 161ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining {"name": "f13"} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[324u'" as 'f35' 15ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining {"name": "f35"} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[57358u'" as 'capslock' 10ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[57362u'" as 'pausebreak' 10ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[Z'" as 'tab' 14ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[1;2Z'" as 'tab' 12ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001bOZ'" as 'tab' 11ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[A'" as 'up' 12ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[B'" as 'down' 11ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[C'" as 'right' 32ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[D'" as 'left' 20ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[H'" as 'home' 22ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[F'" as 'end' 12ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[5H'" as 'home' 17ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOj'" as '*' 24ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOk'" as '+' 22ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOm'" as '-' 13ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOo'" as '/' 17ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOp'" as '0' 24ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOq'" as '1' 16ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOr'" as '2' 27ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOs'" as '3' 33ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOt'" as '4' 13ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOu'" as '5' 12ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOv'" as '6' 15ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOw'" as '7' 11ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOx'" as '8' 14ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOy'" as '9' 52ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOn'" as '.' 18ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Numpad support > should recognize numpad sequence "'\u001b[57404u'" as 'numpad5' 28ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Numpad support > should recognize numpad sequence "'\u001b[57404;5u'" as 'numpad5' 14ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Numpad support > should recognize numpad sequence "'\u001b[57411u'" as 'numpad_multiply' 15ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× 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"} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'b' in 'iTerm2' 16ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'f' in 'iTerm2' 11ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'m' in 'iTerm2' 12ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'z' in 'iTerm2' 28ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'Z' in 'iTerm2' 24ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'b' in 'Ghostty' 16ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'f' in 'Ghostty' 12ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'m' in 'Ghostty' 38ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'z' in 'Ghostty' 60ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'Z' in 'Ghostty' 31ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'b' in 'MacTerminal' 35ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'f' in 'MacTerminal' 33ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'m' in 'MacTerminal' 22ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'z' in 'MacTerminal' 19ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'Z' in 'MacTerminal' 23ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'b' in 'VSCodeTerminal' 15ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'f' in 'VSCodeTerminal' 27ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'m' in 'VSCodeTerminal' 112ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'z' in 'VSCodeTerminal' 49ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'Z' in 'VSCodeTerminal' 20ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Backslash key handling > should treat backslash as a regular keystroke 14ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > should timeout and flush incomplete kitty sequences after 50ms 13ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > should immediately flush non-kitty CSI sequences 88ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > should parse valid kitty sequences immediately when complete 48ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× 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"} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > should handle sequences arriving character by character with 49 ms delay 89ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining {"name": "escape"} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > should reset timeout when new input arrives 15ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining {"name": "a"} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
✓ 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{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× 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{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Greek support > should handle undefined correctly in 'Greek LANG' 16ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Greek support > should handle undefined correctly in 'Greek LC_ALL' 13ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Greek support > should handle undefined correctly in 'LC_ALL overriding non-Greek LANG' 14ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× KeypressContext > Greek support > should handle '¸' correctly in 'Cedilla (¸) in Greek locale (should b…' 14ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
[?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) ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
✓ 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) ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× BaseSettingsDialog > edit mode > should support quick number entry for number fields 2085ms
|
||
→ expected "spy" to be called with arguments: [ 'number-setting', '5', …(1) ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× 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) ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
✓ 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
|
||
✓ <ModelDialog /> > 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
|
||
✓ <VirtualizedList /> > with 10px height and 100 items > renders only visible items ('top') 392ms
|
||
× <VirtualizedList /> > with 10px height and 100 items > renders only visible items ('scrolled to bottom') 132ms
|
||
→ expected '╭────────────────────────────────────…' to contain 'Item 92'
|
||
× <VirtualizedList /> > 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.
|
||
✓ <VirtualizedList /> > with 10px height and 100 items > scrolls down to show new items when requested via ref 139ms
|
||
✓ <VirtualizedList /> > with 10px height and 100 items > mounts only visible items with 1000 items and 10px height (scroll: +0) 94ms
|
||
✓ <VirtualizedList /> > with 10px height and 100 items > mounts only visible items with 1000 items and 10px height (scroll: 500) 67ms
|
||
✓ <VirtualizedList /> > with 10px height and 100 items > mounts only visible items with 1000 items and 10px height (scroll: 999) 106ms
|
||
✓ <VirtualizedList /> > renders more items when a visible item shrinks via context update 164ms
|
||
✓ <VirtualizedList /> > updates scroll position correctly when scrollBy is called multiple times in the same tick 131ms
|
||
✓ <VirtualizedList /> > 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
|
||
✓ <Footer /> > renders the component 224ms
|
||
✓ <Footer /> > path display > should display a shortened path on a narrow terminal 53ms
|
||
✓ <Footer /> > path display > should use wide layout at 80 columns 46ms
|
||
✓ <Footer /> > path display > should not truncate high-priority items on narrow terminals (regression) 29ms
|
||
✓ <Footer /> > displays the branch name when provided 68ms
|
||
✓ <Footer /> > does not display the branch name when not provided 85ms
|
||
✓ <Footer /> > displays the model name and context percentage 79ms
|
||
✓ <Footer /> > displays the usage indicator when usage is low 54ms
|
||
✓ <Footer /> > hides the usage indicator when usage is not near limit 65ms
|
||
✓ <Footer /> > displays "Limit reached" message when remaining is 0 72ms
|
||
✓ <Footer /> > displays the model name and abbreviated context used label on narrow terminals 65ms
|
||
✓ <Footer /> > sandbox and trust info > should display untrusted when isTrustedFolder is false 32ms
|
||
✓ <Footer /> > sandbox and trust info > should display "current process" for custom sandbox when SANDBOX env is set 30ms
|
||
✓ <Footer /> > sandbox and trust info > should display "current process" for macOS Seatbelt when SANDBOX is sandbox-exec 22ms
|
||
✓ <Footer /> > sandbox and trust info > should display "no sandbox" when SANDBOX is not set and folder is trusted 25ms
|
||
✓ <Footer /> > sandbox and trust info > should display "all tools" when tool sandboxing is enabled and agent is local 91ms
|
||
✓ <Footer /> > sandbox and trust info > should prioritize untrusted message over sandbox info 58ms
|
||
✓ <Footer /> > footer configuration filtering (golden snapshots) > renders complete footer with all sections visible (baseline) 40ms
|
||
✓ <Footer /> > footer configuration filtering (golden snapshots) > renders footer with all optional sections hidden (minimal footer) 88ms
|
||
✓ <Footer /> > footer configuration filtering (golden snapshots) > renders footer with only model info hidden (partial filtering) 26ms
|
||
✓ <Footer /> > footer configuration filtering (golden snapshots) > renders footer with CWD and model info hidden to test alignment (only sandbox visible) 32ms
|
||
✓ <Footer /> > footer configuration filtering (golden snapshots) > hides the context percentage when hideContextPercentage is true 34ms
|
||
✓ <Footer /> > footer configuration filtering (golden snapshots) > shows the context percentage when hideContextPercentage is false 37ms
|
||
✓ <Footer /> > footer configuration filtering (golden snapshots) > renders complete footer in narrow terminal (baseline narrow) 24ms
|
||
✓ <Footer /> > Footer Token Formatting > formats thousands with k 79ms
|
||
✓ <Footer /> > Footer Token Formatting > formats millions with m 115ms
|
||
✓ <Footer /> > Footer Token Formatting > formats billions with b 65ms
|
||
✓ <Footer /> > Footer Token Formatting > formats small numbers without suffix 42ms
|
||
✓ <Footer /> > error summary visibility > hides error summary in low verbosity mode out of dev mode 27ms
|
||
✓ <Footer /> > error summary visibility > shows error summary in low verbosity mode in dev mode 41ms
|
||
✓ <Footer /> > error summary visibility > shows error summary in full verbosity mode 35ms
|
||
× <Footer /> > Footer Custom Items > renders auth item with email 38ms
|
||
→ expected ' /auth\n google\n' to contain 'test@example.com'
|
||
✓ <Footer /> > Footer Custom Items > does NOT render auth item when showUserIdentity is false 157ms
|
||
✓ <Footer /> > Footer Custom Items > renders items in the specified order 39ms
|
||
✓ <Footer /> > Footer Custom Items > renders multiple items with proper alignment 25ms
|
||
✓ <Footer /> > Footer Custom Items > handles empty items array 140ms
|
||
✓ <Footer /> > Footer Custom Items > does not render items that are conditionally hidden 25ms
|
||
✓ <Footer /> > fallback mode display > should display Flash model when in fallback mode, not the configured Pro model 25ms
|
||
✓ <Footer /> > fallback mode display > should display Pro model when NOT in fallback mode 31ms
|
||
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/components/shared/BaseSelectionList.test.tsx (31 tests | 18 failed) 2240ms
|
||
✓ BaseSelectionList > Rendering and Structure > should render all items using the renderItem prop 348ms
|
||
✓ BaseSelectionList > Rendering and Structure > should render the selection indicator (● or space) and layout 117ms
|
||
✓ BaseSelectionList > Rendering and Structure > should handle an empty list gracefully 38ms
|
||
× BaseSelectionList > useSelectionList Integration > should pass props correctly to useSelectionList 36ms
|
||
→ expected "useSelectionList" to be called with arguments: [ { items: [ { …(3) }, …(2) ], …(6) } ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× BaseSelectionList > useSelectionList Integration > should use the activeIndex returned by the hook 105ms
|
||
→ expected "spy" to be called with arguments: [ { value: 'A', …(2) }, …(1) ][90m
|
||
|
||
Received:
|
||
|
||
[1m 1st spy call:
|
||
|
||
[22m[33m@@ -2,9 +2,11 @@[90m
|
||
[2m {[22m
|
||
[2m "key": "A",[22m
|
||
[2m "label": "Item A",[22m
|
||
[2m "value": "A",[22m
|
||
[2m },[22m
|
||
[32m- ObjectContaining {[90m
|
||
[32m- "isSelected": false,[90m
|
||
[31m+ {[90m
|
||
[31m+ "isSelected": true,[90m
|
||
[31m+ "numberColor": "green",[90m
|
||
[31m+ "titleColor": "green",[90m
|
||
[2m },[22m
|
||
[2m ][22m
|
||
|
||
[1m 2nd spy call:
|
||
|
||
[22m[2m [[22m
|
||
[2m {[22m
|
||
[32m- "key": "A",[90m
|
||
[32m- "label": "Item A",[90m
|
||
[32m- "value": "A",[90m
|
||
[31m+ "disabled": true,[90m
|
||
[31m+ "key": "B",[90m
|
||
[31m+ "label": "Item B",[90m
|
||
[31m+ "value": "B",[90m
|
||
[2m },[22m
|
||
[32m- ObjectContaining {[90m
|
||
[31m+ {[90m
|
||
[2m "isSelected": false,[22m
|
||
[31m+ "numberColor": "#AFAFAF",[90m
|
||
[31m+ "titleColor": "#AFAFAF",[90m
|
||
[2m },[22m
|
||
[2m ][22m
|
||
|
||
[1m 3rd spy call:
|
||
|
||
[22m[2m [[22m
|
||
[2m {[22m
|
||
[32m- "key": "A",[90m
|
||
[32m- "label": "Item A",[90m
|
||
[32m- "value": "A",[90m
|
||
[31m+ "key": "C",[90m
|
||
[31m+ "label": "Item C",[90m
|
||
[31m+ "value": "C",[90m
|
||
[2m },[22m
|
||
[32m- ObjectContaining {[90m
|
||
[31m+ {[90m
|
||
[2m "isSelected": false,[22m
|
||
[31m+ "numberColor": "#FFFFFF",[90m
|
||
[31m+ "titleColor": "#FFFFFF",[90m
|
||
[2m },[22m
|
||
[2m ][22m
|
||
[39m[90m
|
||
|
||
Number of calls: [1m3[22m
|
||
[39m
|
||
× BaseSelectionList > Styling and Colors > should apply success color to the selected item 88ms
|
||
→ expected "spy" to be called with arguments: [ { value: 'A', …(2) }, …(1) ][90m
|
||
|
||
Received:
|
||
|
||
[1m 1st spy call:
|
||
|
||
[22m[33m@@ -2,11 +2,11 @@[90m
|
||
[2m {[22m
|
||
[2m "key": "A",[22m
|
||
[2m "label": "Item A",[22m
|
||
[2m "value": "A",[22m
|
||
[2m },[22m
|
||
[32m- ObjectContaining {[90m
|
||
[31m+ {[90m
|
||
[2m "isSelected": true,[22m
|
||
[32m- "numberColor": "COLOR_FOCUS",[90m
|
||
[32m- "titleColor": "COLOR_FOCUS",[90m
|
||
[31m+ "numberColor": "green",[90m
|
||
[31m+ "titleColor": "green",[90m
|
||
[2m },[22m
|
||
[2m ][22m
|
||
|
||
[1m 2nd spy call:
|
||
|
||
[22m[2m [[22m
|
||
[2m {[22m
|
||
[32m- "key": "A",[90m
|
||
[32m- "label": "Item A",[90m
|
||
[32m- "value": "A",[90m
|
||
[31m+ "disabled": true,[90m
|
||
[31m+ "key": "B",[90m
|
||
[31m+ "label": "Item B",[90m
|
||
[31m+ "value": "B",[90m
|
||
[2m },[22m
|
||
[32m- ObjectContaining {[90m
|
||
[32m- "isSelected": true,[90m
|
||
[32m- "numberColor": "COLOR_FOCUS",[90m
|
||
[32m- "titleColor": "COLOR_FOCUS",[90m
|
||
[31m+ {[90m
|
||
[31m+ "isSelected": false,[90m
|
||
[31m+ "numberColor": "#AFAFAF",[90m
|
||
[31m+ "titleColor": "#AFAFAF",[90m
|
||
[2m },[22m
|
||
[2m ][22m
|
||
|
||
[1m 3rd spy call:
|
||
|
||
[22m[2m [[22m
|
||
[2m {[22m
|
||
[32m- "key": "A",[90m
|
||
[32m- "label": "Item A",[90m
|
||
[32m- "value": "A",[90m
|
||
[31m+ "key": "C",[90m
|
||
[31m+ "label": "Item C",[90m
|
||
[31m+ "value": "C",[90m
|
||
[2m },[22m
|
||
[32m- ObjectContaining {[90m
|
||
[32m- "isSelected": true,[90m
|
||
[32m- "numberColor": "COLOR_FOCUS",[90m
|
||
[32m- "titleColor": "COLOR_FOCUS",[90m
|
||
[31m+ {[90m
|
||
[31m+ "isSelected": false,[90m
|
||
[31m+ "numberColor": "#FFFFFF",[90m
|
||
[31m+ "titleColor": "#FFFFFF",[90m
|
||
[2m },[22m
|
||
[2m ][22m
|
||
[39m[90m
|
||
|
||
Number of calls: [1m3[22m
|
||
[39m
|
||
× BaseSelectionList > Styling and Colors > should apply primary color to unselected, enabled items 60ms
|
||
→ expected "spy" to be called with arguments: [ { value: 'C', …(2) }, …(1) ][90m
|
||
|
||
Received:
|
||
|
||
[1m 1st spy call:
|
||
|
||
[22m[2m [[22m
|
||
[2m {[22m
|
||
[32m- "key": "C",[90m
|
||
[32m- "label": "Item C",[90m
|
||
[32m- "value": "C",[90m
|
||
[31m+ "key": "A",[90m
|
||
[31m+ "label": "Item A",[90m
|
||
[31m+ "value": "A",[90m
|
||
[2m },[22m
|
||
[32m- ObjectContaining {[90m
|
||
[32m- "isSelected": false,[90m
|
||
[32m- "numberColor": "COLOR_PRIMARY",[90m
|
||
[32m- "titleColor": "COLOR_PRIMARY",[90m
|
||
[31m+ {[90m
|
||
[31m+ "isSelected": true,[90m
|
||
[31m+ "numberColor": "green",[90m
|
||
[31m+ "titleColor": "green",[90m
|
||
[2m },[22m
|
||
[2m ][22m
|
||
|
||
[1m 2nd spy call:
|
||
|
||
[22m[2m [[22m
|
||
[2m {[22m
|
||
[32m- "key": "C",[90m
|
||
[32m- "label": "Item C",[90m
|
||
[32m- "value": "C",[90m
|
||
[31m+ "disabled": true,[90m
|
||
[31m+ "key": "B",[90m
|
||
[31m+ "label": "Item B",[90m
|
||
[31m+ "value": "B",[90m
|
||
[2m },[22m
|
||
[32m- ObjectContaining {[90m
|
||
[31m+ {[90m
|
||
[2m "isSelected": false,[22m
|
||
[32m- "numberColor": "COLOR_PRIMARY",[90m
|
||
[32m- "titleColor": "COLOR_PRIMARY",[90m
|
||
[31m+ "numberColor": "#AFAFAF",[90m
|
||
[31m+ "titleColor": "#AFAFAF",[90m
|
||
[2m },[22m
|
||
[2m ][22m
|
||
|
||
[1m 3rd spy call:
|
||
|
||
[22m[33m@@ -2,11 +2,11 @@[90m
|
||
[2m {[22m
|
||
[2m "key": "C",[22m
|
||
[2m "label": "Item C",[22m
|
||
[2m "value": "C",[22m
|
||
[2m },[22m
|
||
[32m- ObjectContaining {[90m
|
||
[31m+ {[90m
|
||
[2m "isSelected": false,[22m
|
||
[32m- "numberColor": "COLOR_PRIMARY",[90m
|
||
[32m- "titleColor": "COLOR_PRIMARY",[90m
|
||
[31m+ "numberColor": "#FFFFFF",[90m
|
||
[31m+ "titleColor": "#FFFFFF",[90m
|
||
[2m },[22m
|
||
[2m ][22m
|
||
[39m[90m
|
||
|
||
Number of calls: [1m3[22m
|
||
[39m
|
||
× BaseSelectionList > Styling and Colors > should apply secondary color to disabled items (when not selected) 33ms
|
||
→ expected "spy" to be called with arguments: [ { value: 'B', …(3) }, …(1) ][90m
|
||
|
||
Received:
|
||
|
||
[1m 1st spy call:
|
||
|
||
[22m[2m [[22m
|
||
[2m {[22m
|
||
[32m- "disabled": true,[90m
|
||
[32m- "key": "B",[90m
|
||
[32m- "label": "Item B",[90m
|
||
[32m- "value": "B",[90m
|
||
[31m+ "key": "A",[90m
|
||
[31m+ "label": "Item A",[90m
|
||
[31m+ "value": "A",[90m
|
||
[2m },[22m
|
||
[32m- ObjectContaining {[90m
|
||
[32m- "isSelected": false,[90m
|
||
[32m- "numberColor": "COLOR_SECONDARY",[90m
|
||
[32m- "titleColor": "COLOR_SECONDARY",[90m
|
||
[31m+ {[90m
|
||
[31m+ "isSelected": true,[90m
|
||
[31m+ "numberColor": "green",[90m
|
||
[31m+ "titleColor": "green",[90m
|
||
[2m },[22m
|
||
[2m ][22m
|
||
|
||
[1m 2nd spy call:
|
||
|
||
[22m[33m@@ -3,11 +3,11 @@[90m
|
||
[2m "disabled": true,[22m
|
||
[2m "key": "B",[22m
|
||
[2m "label": "Item B",[22m
|
||
[2m "value": "B",[22m
|
||
[2m },[22m
|
||
[32m- ObjectContaining {[90m
|
||
[31m+ {[90m
|
||
[2m "isSelected": false,[22m
|
||
[32m- "numberColor": "COLOR_SECONDARY",[90m
|
||
[32m- "titleColor": "COLOR_SECONDARY",[90m
|
||
[31m+ "numberColor": "#AFAFAF",[90m
|
||
[31m+ "titleColor": "#AFAFAF",[90m
|
||
[2m },[22m
|
||
[2m ][22m
|
||
|
||
[1m 3rd spy call:
|
||
|
||
[22m[2m [[22m
|
||
[2m {[22m
|
||
[32m- "disabled": true,[90m
|
||
[32m- "key": "B",[90m
|
||
[32m- "label": "Item B",[90m
|
||
[32m- "value": "B",[90m
|
||
[31m+ "key": "C",[90m
|
||
[31m+ "label": "Item C",[90m
|
||
[31m+ "value": "C",[90m
|
||
[2m },[22m
|
||
[32m- ObjectContaining {[90m
|
||
[31m+ {[90m
|
||
[2m "isSelected": false,[22m
|
||
[32m- "numberColor": "COLOR_SECONDARY",[90m
|
||
[32m- "titleColor": "COLOR_SECONDARY",[90m
|
||
[31m+ "numberColor": "#FFFFFF",[90m
|
||
[31m+ "titleColor": "#FFFFFF",[90m
|
||
[2m },[22m
|
||
[2m ][22m
|
||
[39m[90m
|
||
|
||
Number of calls: [1m3[22m
|
||
[39m
|
||
× BaseSelectionList > Styling and Colors > should apply success color to disabled items if they are selected 54ms
|
||
→ expected "spy" to be called with arguments: [ { value: 'B', …(3) }, …(1) ][90m
|
||
|
||
Received:
|
||
|
||
[1m 1st spy call:
|
||
|
||
[22m[2m [[22m
|
||
[2m {[22m
|
||
[32m- "disabled": true,[90m
|
||
[32m- "key": "B",[90m
|
||
[32m- "label": "Item B",[90m
|
||
[32m- "value": "B",[90m
|
||
[31m+ "key": "A",[90m
|
||
[31m+ "label": "Item A",[90m
|
||
[31m+ "value": "A",[90m
|
||
[2m },[22m
|
||
[32m- ObjectContaining {[90m
|
||
[31m+ {[90m
|
||
[2m "isSelected": true,[22m
|
||
[32m- "numberColor": "COLOR_FOCUS",[90m
|
||
[32m- "titleColor": "COLOR_FOCUS",[90m
|
||
[31m+ "numberColor": "green",[90m
|
||
[31m+ "titleColor": "green",[90m
|
||
[2m },[22m
|
||
[2m ][22m
|
||
|
||
[1m 2nd spy call:
|
||
|
||
[22m[33m@@ -3,11 +3,11 @@[90m
|
||
[2m "disabled": true,[22m
|
||
[2m "key": "B",[22m
|
||
[2m "label": "Item B",[22m
|
||
[2m "value": "B",[22m
|
||
[2m },[22m
|
||
[32m- ObjectContaining {[90m
|
||
[32m- "isSelected": true,[90m
|
||
[32m- "numberColor": "COLOR_FOCUS",[90m
|
||
[32m- "titleColor": "COLOR_FOCUS",[90m
|
||
[31m+ {[90m
|
||
[31m+ "isSelected": false,[90m
|
||
[31m+ "numberColor": "#AFAFAF",[90m
|
||
[31m+ "titleColor": "#AFAFAF",[90m
|
||
[2m },[22m
|
||
[2m ][22m
|
||
|
||
[1m 3rd spy call:
|
||
|
||
[22m[2m [[22m
|
||
[2m {[22m
|
||
[32m- "disabled": true,[90m
|
||
[32m- "key": "B",[90m
|
||
[32m- "label": "Item B",[90m
|
||
[32m- "value": "B",[90m
|
||
[31m+ "key": "C",[90m
|
||
[31m+ "label": "Item C",[90m
|
||
[31m+ "value": "C",[90m
|
||
[2m },[22m
|
||
[32m- ObjectContaining {[90m
|
||
[32m- "isSelected": true,[90m
|
||
[32m- "numberColor": "COLOR_FOCUS",[90m
|
||
[32m- "titleColor": "COLOR_FOCUS",[90m
|
||
[31m+ {[90m
|
||
[31m+ "isSelected": false,[90m
|
||
[31m+ "numberColor": "#FFFFFF",[90m
|
||
[31m+ "titleColor": "#FFFFFF",[90m
|
||
[2m },[22m
|
||
[2m ][22m
|
||
[39m[90m
|
||
|
||
Number of calls: [1m3[22m
|
||
[39m
|
||
✓ BaseSelectionList > Numbering (showNumbers) > should show numbers by default with correct formatting 33ms
|
||
✓ BaseSelectionList > Numbering (showNumbers) > should hide numbers when showNumbers is false 45ms
|
||
✓ BaseSelectionList > Numbering (showNumbers) > should apply correct padding for alignment in long lists 137ms
|
||
× BaseSelectionList > Numbering (showNumbers) > should apply secondary color to numbers if showNumbers is false (internal logic check) 69ms
|
||
→ expected "spy" to be called with arguments: [ { value: 'A', …(2) }, …(1) ][90m
|
||
|
||
Received:
|
||
|
||
[1m 1st spy call:
|
||
|
||
[22m[33m@@ -2,11 +2,11 @@[90m
|
||
[2m {[22m
|
||
[2m "key": "A",[22m
|
||
[2m "label": "Item A",[22m
|
||
[2m "value": "A",[22m
|
||
[2m },[22m
|
||
[32m- ObjectContaining {[90m
|
||
[31m+ {[90m
|
||
[2m "isSelected": true,[22m
|
||
[32m- "numberColor": "COLOR_SECONDARY",[90m
|
||
[32m- "titleColor": "COLOR_FOCUS",[90m
|
||
[31m+ "numberColor": "#AFAFAF",[90m
|
||
[31m+ "titleColor": "green",[90m
|
||
[2m },[22m
|
||
[2m ][22m
|
||
|
||
[1m 2nd spy call:
|
||
|
||
[22m[2m [[22m
|
||
[2m {[22m
|
||
[32m- "key": "A",[90m
|
||
[32m- "label": "Item A",[90m
|
||
[32m- "value": "A",[90m
|
||
[31m+ "disabled": true,[90m
|
||
[31m+ "key": "B",[90m
|
||
[31m+ "label": "Item B",[90m
|
||
[31m+ "value": "B",[90m
|
||
[2m },[22m
|
||
[32m- ObjectContaining {[90m
|
||
[32m- "isSelected": true,[90m
|
||
[32m- "numberColor": "COLOR_SECONDARY",[90m
|
||
[32m- "titleColor": "COLOR_FOCUS",[90m
|
||
[31m+ {[90m
|
||
[31m+ "isSelected": false,[90m
|
||
[31m+ "numberColor": "#AFAFAF",[90m
|
||
[31m+ "titleColor": "#AFAFAF",[90m
|
||
[2m },[22m
|
||
[2m ][22m
|
||
|
||
[1m 3rd spy call:
|
||
|
||
[22m[2m [[22m
|
||
[2m {[22m
|
||
[32m- "key": "A",[90m
|
||
[32m- "label": "Item A",[90m
|
||
[32m- "value": "A",[90m
|
||
[31m+ "key": "C",[90m
|
||
[31m+ "label": "Item C",[90m
|
||
[31m+ "value": "C",[90m
|
||
[2m },[22m
|
||
[32m- ObjectContaining {[90m
|
||
[32m- "isSelected": true,[90m
|
||
[32m- "numberColor": "COLOR_SECONDARY",[90m
|
||
[32m- "titleColor": "COLOR_FOCUS",[90m
|
||
[31m+ {[90m
|
||
[31m+ "isSelected": false,[90m
|
||
[31m+ "numberColor": "#AFAFAF",[90m
|
||
[31m+ "titleColor": "#FFFFFF",[90m
|
||
[2m },[22m
|
||
[2m ][22m
|
||
[39m[90m
|
||
|
||
Number of calls: [1m3[22m
|
||
[39m
|
||
✓ BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should only show maxItemsToShow items initially 77ms
|
||
× BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should scroll down when activeIndex moves beyond the visible window 47ms
|
||
→ 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.
|
||
× BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should scroll up when activeIndex moves before the visible window 95ms
|
||
→ 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.
|
||
× BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should pin the scroll offset to the end if selection starts near the end 36ms
|
||
→ expected '● 1. Item 1\n 2. Item 2\n 3. Ite…' to contain 'Item 10'
|
||
× BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should handle dynamic scrolling through multiple activeIndex changes 71ms
|
||
→ 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.
|
||
× BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should correctly identify the selected item within the visible window 64ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…}, …(1) ][90m
|
||
|
||
Received:
|
||
|
||
[1m 1st spy call:
|
||
|
||
[22m[2m [[22m
|
||
[32m- ObjectContaining {[90m
|
||
[31m+ {[90m
|
||
[31m+ "key": "Item 1",[90m
|
||
[31m+ "label": "Item 1",[90m
|
||
[2m "value": "Item 1",[22m
|
||
[2m },[22m
|
||
[32m- ObjectContaining {[90m
|
||
[32m- "isSelected": false,[90m
|
||
[31m+ {[90m
|
||
[31m+ "isSelected": true,[90m
|
||
[31m+ "numberColor": "green",[90m
|
||
[31m+ "titleColor": "green",[90m
|
||
[2m },[22m
|
||
[2m ][22m
|
||
|
||
[1m 2nd spy call:
|
||
|
||
[22m[2m [[22m
|
||
[32m- ObjectContaining {[90m
|
||
[32m- "value": "Item 1",[90m
|
||
[31m+ {[90m
|
||
[31m+ "key": "Item 2",[90m
|
||
[31m+ "label": "Item 2",[90m
|
||
[31m+ "value": "Item 2",[90m
|
||
[2m },[22m
|
||
[32m- ObjectContaining {[90m
|
||
[31m+ {[90m
|
||
[2m "isSelected": false,[22m
|
||
[31m+ "numberColor": "#FFFFFF",[90m
|
||
[31m+ "titleColor": "#FFFFFF",[90m
|
||
[2m },[22m
|
||
[2m ][22m
|
||
|
||
[1m 3rd spy call:
|
||
|
||
[22m[2m [[22m
|
||
[32m- ObjectContaining {[90m
|
||
[32m- "value": "Item 1",[90m
|
||
[31m+ {[90m
|
||
[31m+ "key": "Item 3",[90m
|
||
[31m+ "label": "Item 3",[90m
|
||
[31m+ "value": "Item 3",[90m
|
||
[2m },[22m
|
||
[32m- ObjectContaining {[90m
|
||
[31m+ {[90m
|
||
[2m "isSelected": false,[22m
|
||
[31m+ "numberColor": "#FFFFFF",[90m
|
||
[31m+ "titleColor": "#FFFFFF",[90m
|
||
[2m },[22m
|
||
[2m ][22m
|
||
[39m[90m
|
||
|
||
Number of calls: [1m3[22m
|
||
[39m
|
||
× BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should correctly identify the selected item when scrolled (high index) 67ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…}, …(1) ][90m
|
||
|
||
Received:
|
||
|
||
[1m 1st spy call:
|
||
|
||
[22m[2m [[22m
|
||
[32m- ObjectContaining {[90m
|
||
[32m- "value": "Item 6",[90m
|
||
[31m+ {[90m
|
||
[31m+ "key": "Item 1",[90m
|
||
[31m+ "label": "Item 1",[90m
|
||
[31m+ "value": "Item 1",[90m
|
||
[2m },[22m
|
||
[32m- ObjectContaining {[90m
|
||
[31m+ {[90m
|
||
[2m "isSelected": true,[22m
|
||
[31m+ "numberColor": "green",[90m
|
||
[31m+ "titleColor": "green",[90m
|
||
[2m },[22m
|
||
[2m ][22m
|
||
|
||
[1m 2nd spy call:
|
||
|
||
[22m[2m [[22m
|
||
[32m- ObjectContaining {[90m
|
||
[32m- "value": "Item 6",[90m
|
||
[31m+ {[90m
|
||
[31m+ "key": "Item 2",[90m
|
||
[31m+ "label": "Item 2",[90m
|
||
[31m+ "value": "Item 2",[90m
|
||
[2m },[22m
|
||
[32m- ObjectContaining {[90m
|
||
[32m- "isSelected": true,[90m
|
||
[31m+ {[90m
|
||
[31m+ "isSelected": false,[90m
|
||
[31m+ "numberColor": "#FFFFFF",[90m
|
||
[31m+ "titleColor": "#FFFFFF",[90m
|
||
[2m },[22m
|
||
[2m ][22m
|
||
|
||
[1m 3rd spy call:
|
||
|
||
[22m[2m [[22m
|
||
[32m- ObjectContaining {[90m
|
||
[32m- "value": "Item 6",[90m
|
||
[31m+ {[90m
|
||
[31m+ "key": "Item 3",[90m
|
||
[31m+ "label": "Item 3",[90m
|
||
[31m+ "value": "Item 3",[90m
|
||
[2m },[22m
|
||
[32m- ObjectContaining {[90m
|
||
[32m- "isSelected": true,[90m
|
||
[31m+ {[90m
|
||
[31m+ "isSelected": false,[90m
|
||
[31m+ "numberColor": "#FFFFFF",[90m
|
||
[31m+ "titleColor": "#FFFFFF",[90m
|
||
[2m },[22m
|
||
[2m ][22m
|
||
[39m[90m
|
||
|
||
Number of calls: [1m3[22m
|
||
[39m
|
||
× BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should correctly calculate scroll offset during the initial render phase 45ms
|
||
→ expected [ 'Item 1', 'Item 2', 'Item 3' ] to not include 'Item 1'
|
||
✓ BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should handle maxItemsToShow larger than the list length 90ms
|
||
× BaseSelectionList > Mouse Interaction > should register mouse click handler for each item 67ms
|
||
→ expected "useMouseClick" to be called 3 times, but got 0 times
|
||
× BaseSelectionList > Mouse Interaction > should update activeIndex on first click and call onSelect on second click 75ms
|
||
→ Cannot read properties of undefined (reading '1')
|
||
× BaseSelectionList > Mouse Interaction > should not call onSelect when a disabled item is clicked 79ms
|
||
→ Cannot read properties of undefined (reading '1')
|
||
× BaseSelectionList > Mouse Interaction > should pass isActive: isFocused to useMouseClick 41ms
|
||
→ expected "useMouseClick" to be called with arguments: [ Any<Object>, Any<Function>, …(1) ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
✓ BaseSelectionList > Scroll Arrows (showScrollArrows) > should not show arrows by default 40ms
|
||
✓ BaseSelectionList > Scroll Arrows (showScrollArrows) > should show arrows with correct colors when enabled (at the top) 52ms
|
||
✓ BaseSelectionList > Scroll Arrows (showScrollArrows) > should show arrows and correct items when scrolled to the middle 34ms
|
||
✓ BaseSelectionList > Scroll Arrows (showScrollArrows) > should show arrows and correct items when scrolled to the end 42ms
|
||
✓ BaseSelectionList > Scroll Arrows (showScrollArrows) > should not show arrows when list fits entirely 36ms
|
||
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h(node:51579) 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:51579) 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 ❯ src/ui/components/LoadingIndicator.test.tsx (22 tests | 1 failed) 1513ms
|
||
✓ <LoadingIndicator /> > should render blank when streamingState is Idle and no loading phrase or thought 176ms
|
||
✓ <LoadingIndicator /> > should not show cancel and timer when idle even if a phrase exists 128ms
|
||
✓ <LoadingIndicator /> > should render spinner, phrase, and time when streamingState is Responding 55ms
|
||
✓ <LoadingIndicator /> > should render spinner (static), phrase but no time/cancel when streamingState is WaitingForConfirmation 85ms
|
||
✓ <LoadingIndicator /> > should display the currentLoadingPhrase correctly 105ms
|
||
✓ <LoadingIndicator /> > should display the elapsedTime correctly when Responding 86ms
|
||
✓ <LoadingIndicator /> > should display the elapsedTime correctly in human-readable format 42ms
|
||
✓ <LoadingIndicator /> > should render rightContent when provided 30ms
|
||
× <LoadingIndicator /> > should transition correctly between states 56ms
|
||
→ 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.
|
||
✓ <LoadingIndicator /> > should display fallback phrase if thought is empty 94ms
|
||
✓ <LoadingIndicator /> > should display the subject of a thought 38ms
|
||
✓ <LoadingIndicator /> > should NOT prepend "Thinking... " even if the subject does not start with "Thinking" 32ms
|
||
✓ <LoadingIndicator /> > should prioritize thought.subject over currentLoadingPhrase 27ms
|
||
✓ <LoadingIndicator /> > should not display thought indicator for non-thought loading phrases 45ms
|
||
✓ <LoadingIndicator /> > should truncate long primary text instead of wrapping 53ms
|
||
✓ <LoadingIndicator /> > responsive layout > should render on a single line on a wide terminal 65ms
|
||
✓ <LoadingIndicator /> > responsive layout > should render on multiple lines on a narrow terminal 83ms
|
||
✓ <LoadingIndicator /> > responsive layout > should use wide layout at 80 columns 58ms
|
||
✓ <LoadingIndicator /> > responsive layout > should use narrow layout at 79 columns 86ms
|
||
✓ <LoadingIndicator /> > responsive layout > should render witty phrase after cancel and timer hint in wide layout 54ms
|
||
✓ <LoadingIndicator /> > responsive layout > should render witty phrase after cancel and timer hint in narrow layout 55ms
|
||
✓ <LoadingIndicator /> > should use spinnerIcon when provided 51ms
|
||
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h(node:51591) 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:51591) 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 ❯ src/ui/auth/AuthDialog.test.tsx (24 tests | 1 failed) 2337ms
|
||
✓ AuthDialog > Environment Variable Effects on Auth Options > correctly shows/hides COMPUTE_ADC options 'in Cloud Shell' 347ms
|
||
✓ AuthDialog > Environment Variable Effects on Auth Options > correctly shows/hides COMPUTE_ADC options 'with GEMINI_CLI_USE_COMPUTE_ADC' 54ms
|
||
✓ AuthDialog > Environment Variable Effects on Auth Options > correctly shows/hides COMPUTE_ADC options 'by default' 106ms
|
||
✓ AuthDialog > filters auth types when enforcedType is set 60ms
|
||
✓ AuthDialog > sets initial index to 0 when enforcedType is set 74ms
|
||
✓ AuthDialog > Initial Auth Type Selection > selects initial auth type 'from settings' 104ms
|
||
✓ AuthDialog > Initial Auth Type Selection > selects initial auth type 'from GEMINI_DEFAULT_AUTH_TYPE env var' 103ms
|
||
✓ AuthDialog > Initial Auth Type Selection > selects initial auth type 'from GEMINI_API_KEY env var' 52ms
|
||
✓ AuthDialog > Initial Auth Type Selection > selects initial auth type 'defaults to Sign in with Google' 109ms
|
||
✓ AuthDialog > handleAuthSelect > calls onAuthError if validation fails 102ms
|
||
✓ AuthDialog > handleAuthSelect > sets auth context with requiresRestart: true for LOGIN_WITH_GOOGLE 61ms
|
||
✓ AuthDialog > handleAuthSelect > sets auth context with empty object for other auth types 54ms
|
||
✓ AuthDialog > handleAuthSelect > always shows API key dialog even when env var is present 44ms
|
||
✓ AuthDialog > handleAuthSelect > always shows API key dialog even when env var is empty string 117ms
|
||
✓ AuthDialog > handleAuthSelect > shows API key dialog on initial setup if no env var is present 44ms
|
||
✓ AuthDialog > handleAuthSelect > always shows API key dialog on re-auth even if env var is present 56ms
|
||
× AuthDialog > handleAuthSelect > exits process for Sign in with Google when browser is suppressed 76ms
|
||
→ expected "spy" to be called at least once
|
||
✓ AuthDialog > displays authError when provided 260ms
|
||
✓ AuthDialog > useKeypress > 'does nothing on escape if authError i…' 66ms
|
||
✓ AuthDialog > useKeypress > 'calls onAuthError on escape if no aut…' 92ms
|
||
✓ AuthDialog > useKeypress > 'calls setAuthState(Unauthenticated) o…' 100ms
|
||
✓ AuthDialog > Snapshots > renders correctly with default props 73ms
|
||
✓ AuthDialog > Snapshots > renders correctly with auth error 109ms
|
||
✓ AuthDialog > Snapshots > renders correctly with enforced auth type 71ms
|
||
[?25h ❯ src/config/settings.test.ts (101 tests | 73 failed) 1809ms
|
||
× Settings Loading and Merging > loadSettings > should load 'system' settings if only 'system' file exists 89ms
|
||
→ expected "spy" to be called with arguments: [ …(2) ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× Settings Loading and Merging > loadSettings > should load 'user' settings if only 'user' file exists 8ms
|
||
→ expected "spy" to be called with arguments: [ …(2) ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× Settings Loading and Merging > loadSettings > should load 'workspace' settings if only 'workspace' file exists 72ms
|
||
→ expected "spy" to be called with arguments: [ …(2) ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× Settings Loading and Merging > loadSettings > should merge system, user and workspace settings, with system taking precedence over workspace, and workspace over user 43ms
|
||
→ expected {} to deeply equal { ui: { theme: 'system-theme' }, …(3) }
|
||
× Settings Loading and Merging > loadSettings > should merge all settings files with the correct precedence 23ms
|
||
→ expected {} to deeply equal { Object (ui, tools, ...) }
|
||
× Settings Loading and Merging > loadSettings > should use folderTrust from workspace settings when trusted 67ms
|
||
→ expected true to be false // Object.is equality
|
||
✓ Settings Loading and Merging > loadSettings > should use system folderTrust over user setting 8ms
|
||
× Settings Loading and Merging > loadSettings > should not allow user or workspace to override system disableYoloMode 18ms
|
||
→ expected false to be true // Object.is equality
|
||
× Settings Loading and Merging > loadSettings > should handle 'contextFileName in user settings' correctly 7ms
|
||
→ expected undefined to deeply equal 'CUSTOM.md'
|
||
× Settings Loading and Merging > loadSettings > should handle 'contextFileName in workspace settings' correctly 4ms
|
||
→ expected undefined to deeply equal 'PROJECT_SPECIFIC.md'
|
||
× Settings Loading and Merging > loadSettings > should handle 'excludedProjectEnvVars in user settin…' correctly 13ms
|
||
→ expected [ 'DEBUG', 'DEBUG_MODE' ] to deeply equal [ 'DEBUG', 'DEBUG_MODE', …(2) ]
|
||
× Settings Loading and Merging > loadSettings > should handle 'excludedProjectEnvVars in workspace s…' correctly 41ms
|
||
→ expected [ 'DEBUG', 'DEBUG_MODE' ] to deeply equal [ 'DEBUG', 'DEBUG_MODE', …(2) ]
|
||
× Settings Loading and Merging > loadSettings > should merge excludedProjectEnvVars with workspace taking precedence over user 10ms
|
||
→ expected undefined to deeply equal [ 'DEBUG', 'NODE_ENV', 'USER_VAR' ]
|
||
✓ Settings Loading and Merging > loadSettings > should default contextFileName to undefined if not in any settings file 4ms
|
||
× Settings Loading and Merging > loadSettings > should load telemetry setting from 'user' settings 3ms
|
||
→ expected undefined to be true // Object.is equality
|
||
× Settings Loading and Merging > loadSettings > should load telemetry setting from 'workspace' settings 19ms
|
||
→ expected undefined to be false // Object.is equality
|
||
× Settings Loading and Merging > loadSettings > should prioritize workspace telemetry setting over user setting 28ms
|
||
→ expected undefined to be false // Object.is equality
|
||
✓ Settings Loading and Merging > loadSettings > should have telemetry as undefined if not in any settings file 17ms
|
||
× Settings Loading and Merging > loadSettings > should merge MCP servers correctly, with workspace taking precedence 10ms
|
||
→ expected { ui: { theme: 'Default' }, …(1) } to deeply equal { mcpServers: { …(2) } }
|
||
× Settings Loading and Merging > loadSettings > should handle MCP servers when only in 'user' settings 6ms
|
||
→ expected {} to deeply equal { 'user-only-server': { …(2) } }
|
||
× Settings Loading and Merging > loadSettings > should handle MCP servers when only in 'workspace' settings 11ms
|
||
→ expected {} to deeply equal { 'workspace-only-server': { …(2) } }
|
||
✓ Settings Loading and Merging > loadSettings > should have mcpServers as undefined if not in any settings file 76ms
|
||
× Settings Loading and Merging > loadSettings > should merge MCP servers from system, user, and workspace with system taking precedence 35ms
|
||
→ expected {} to deeply equal { …(4) }
|
||
× Settings Loading and Merging > loadSettings > should merge mcp allowed/excluded lists with system taking precedence over workspace 33ms
|
||
→ expected {} to deeply equal { allowed: [ 'system-allowed' ], …(1) }
|
||
✓ Settings Loading and Merging > loadSettings > compressionThreshold settings > 'should be taken from user settings if…' 5ms
|
||
× Settings Loading and Merging > loadSettings > compressionThreshold settings > 'should be taken from workspace settin…' 5ms
|
||
→ expected 0.5 to deeply equal 0.8
|
||
× Settings Loading and Merging > loadSettings > compressionThreshold settings > 'should prioritize workspace settings …' 4ms
|
||
→ expected 0.5 to deeply equal 0.8
|
||
✓ Settings Loading and Merging > loadSettings > compressionThreshold settings > 'should be default if not in any setti…' 29ms
|
||
✓ Settings Loading and Merging > loadSettings > should use user compressionThreshold if workspace does not define it 49ms
|
||
× Settings Loading and Merging > loadSettings > should merge includeDirectories from all scopes 4ms
|
||
→ expected [] to deeply equal [ '/system/defaults/dir', …(4) ]
|
||
× Settings Loading and Merging > loadSettings > should handle JSON parsing errors gracefully 7ms
|
||
→ expected Error: loadSettings should have thrown a … to be an instance of FatalConfigError
|
||
× Settings Loading and Merging > loadSettings > should resolve environment variables in user settings 49ms
|
||
→ expected undefined to be 'user_api_key_from_env' // Object.is equality
|
||
× Settings Loading and Merging > loadSettings > should resolve environment variables in workspace settings 5ms
|
||
→ expected undefined to be 'workspace_endpoint_from_env/api' // Object.is equality
|
||
× Settings Loading and Merging > loadSettings > should correctly resolve and merge env variables from different scopes 7ms
|
||
→ expected undefined to be 'final_value' // Object.is equality
|
||
× Settings Loading and Merging > loadSettings > should correctly merge dnsResolutionOrder with workspace taking precedence 7ms
|
||
→ expected undefined to be 'verbatim' // Object.is equality
|
||
× Settings Loading and Merging > loadSettings > should use user dnsResolutionOrder if workspace is not defined 5ms
|
||
→ expected undefined to be 'verbatim' // Object.is equality
|
||
× Settings Loading and Merging > loadSettings > should leave unresolved environment variables as is 14ms
|
||
→ expected undefined to be '$UNDEFINED_VAR' // Object.is equality
|
||
× Settings Loading and Merging > loadSettings > should resolve multiple environment variables in a single string 8ms
|
||
→ expected undefined to be '/path/valueA/valueB/end' // Object.is equality
|
||
× Settings Loading and Merging > loadSettings > should resolve environment variables in arrays 8ms
|
||
→ expected undefined to deeply equal [ 'item1_env', 'item2_env', 'literal' ]
|
||
× Settings Loading and Merging > loadSettings > should correctly pass through null, boolean, and number types, and handle undefined properties 21ms
|
||
→ expected undefined to be null
|
||
× Settings Loading and Merging > loadSettings > should resolve multiple concatenated environment variables in a single string value 7ms
|
||
→ expected undefined to be 'myhost:9090/api' // Object.is equality
|
||
× Settings Loading and Merging > loadSettings > when GEMINI_CLI_SYSTEM_SETTINGS_PATH is set > should load system settings from the path specified in the environment variable 7ms
|
||
→ expected "spy" to be called with arguments: [ …(2) ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
✓ Settings Loading and Merging > loadSettings > should correctly skip workspace-level loading if workspaceDir is a symlink to home 18ms
|
||
× Settings Loading and Merging > loadSettings > caching > should cache loadSettings results 59ms
|
||
→ expected "spy" to be called 5 times, but got 0 times
|
||
× Settings Loading and Merging > loadSettings > caching > should use separate cache for different workspace directories 34ms
|
||
→ expected "spy" to be called 10 times, but got 0 times
|
||
× Settings Loading and Merging > loadSettings > caching > should clear cache when saveSettings is called for user settings 6ms
|
||
→ expected "spy" to be called 5 times, but got 0 times
|
||
× Settings Loading and Merging > loadSettings > caching > should clear all caches when saveSettings is called for workspace settings 19ms
|
||
→ expected "spy" to be called 10 times, but got 0 times
|
||
✓ Settings Loading and Merging > excludedProjectEnvVars integration > should exclude DEBUG and DEBUG_MODE from project .env files by default 3ms
|
||
× Settings Loading and Merging > excludedProjectEnvVars integration > should respect custom excludedProjectEnvVars from user settings 5ms
|
||
→ expected undefined to deeply equal [ 'NODE_ENV', 'DEBUG' ]
|
||
× Settings Loading and Merging > excludedProjectEnvVars integration > should merge excludedProjectEnvVars with workspace taking precedence 6ms
|
||
→ expected undefined to deeply equal [ 'DEBUG', 'NODE_ENV', 'USER_VAR' ]
|
||
× Settings Loading and Merging > with workspace trust > should merge workspace settings when workspace is trusted 3ms
|
||
→ expected undefined to be true // Object.is equality
|
||
× Settings Loading and Merging > with workspace trust > should NOT merge workspace settings when workspace is not trusted 5ms
|
||
→ expected undefined to be false // Object.is equality
|
||
× Settings Loading and Merging > with workspace trust > should NOT merge workspace settings when workspace trust is undefined 5ms
|
||
→ expected undefined to be false // Object.is equality
|
||
× Settings Loading and Merging > loadEnvironment > sets environment variables from .env files 1ms
|
||
→ expected undefined to deeply equal '1234'
|
||
✓ Settings Loading and Merging > loadEnvironment > does not load env files from untrusted spaces when sandboxed 1ms
|
||
× Settings Loading and Merging > loadEnvironment > does load env files from untrusted spaces when NOT sandboxed 1ms
|
||
→ expected undefined to deeply equal '1234'
|
||
× Settings Loading and Merging > loadEnvironment > does not load env files when trust is undefined and sandboxed 12ms
|
||
→ expected 'AQ.Ab8RN6IwT1s30bPU4hFlfm2uLDRCJYHNlY…' to deeply equal 'test-key'
|
||
× Settings Loading and Merging > loadEnvironment > loads whitelisted env files from untrusted spaces if sandboxing is enabled 18ms
|
||
→ expected 'AQ.Ab8RN6IwT1s30bPU4hFlfm2uLDRCJYHNlY…' to deeply equal 'test-key'
|
||
× Settings Loading and Merging > loadEnvironment > loads whitelisted env files from untrusted spaces if sandboxing is enabled via CLI flag 14ms
|
||
→ expected 'AQ.Ab8RN6IwT1s30bPU4hFlfm2uLDRCJYHNlY…' to deeply equal 'test-key'
|
||
✓ Settings Loading and Merging > migrateDeprecatedSettings > should not do anything if there are no deprecated settings 12ms
|
||
× Settings Loading and Merging > migrateDeprecatedSettings > should migrate general.disableAutoUpdate to general.enableAutoUpdate with inverted value 4ms
|
||
→ expected "setValue" to be called with arguments: [ 'User', 'general', …(1) ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× Settings Loading and Merging > migrateDeprecatedSettings > should migrate tools.approvalMode to general.defaultApprovalMode 5ms
|
||
→ expected "setValue" to be called with arguments: [ 'User', 'general', …(1) ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× Settings Loading and Merging > migrateDeprecatedSettings > should migrate all 4 inverted boolean settings 4ms
|
||
→ expected "setValue" to be called with arguments: [ 'User', 'general', …(1) ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
✓ Settings Loading and Merging > migrateDeprecatedSettings > should migrate enableLoadingPhrases: false to loadingPhrases: off 6ms
|
||
✓ Settings Loading and Merging > migrateDeprecatedSettings > should not migrate enableLoadingPhrases: true to loadingPhrases 15ms
|
||
✓ Settings Loading and Merging > migrateDeprecatedSettings > should not overwrite existing loadingPhrases during migration 30ms
|
||
✓ Settings Loading and Merging > migrateDeprecatedSettings > should remove deprecated settings by default and prioritize new ones 16ms
|
||
✓ Settings Loading and Merging > migrateDeprecatedSettings > should preserve deprecated settings when removeDeprecated is explicitly false 8ms
|
||
× Settings Loading and Merging > migrateDeprecatedSettings > should trigger migration automatically during loadSettings 8ms
|
||
→ expected true to be false // Object.is equality
|
||
× Settings Loading and Merging > migrateDeprecatedSettings > should migrate disableUpdateNag to enableAutoUpdateNotification in memory but not save for system and system defaults settings 4ms
|
||
→ Cannot convert undefined or null to object
|
||
× Settings Loading and Merging > migrateDeprecatedSettings > should migrate experimental agent settings in system scope in memory but not save 3ms
|
||
→ expected undefined to match object { codebase_investigator: { …(1) } }
|
||
× Settings Loading and Merging > migrateDeprecatedSettings > should migrate experimental agent settings to agents overrides 9ms
|
||
→ expected undefined to match object { …(2) }
|
||
× Settings Loading and Merging > saveSettings > should save settings using updateSettingsFilePreservingFormat 3ms
|
||
→ expected "spy" to be called with arguments: [ '/mock/settings.json', …(1) ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× Settings Loading and Merging > saveSettings > should create directory if it does not exist 2ms
|
||
→ expected "spy" to be called with arguments: [ '/mock/new/dir' ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× Settings Loading and Merging > saveSettings > should emit error feedback if saving fails 9ms
|
||
→ expected "spy" to be called with arguments: [ 'error', …(2) ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× Settings Loading and Merging > LoadedSettings and remote admin settings > should prioritize remote admin settings over file-based admin settings 8ms
|
||
→ expected 'Default' to be 'system-theme' // Object.is equality
|
||
× Settings Loading and Merging > LoadedSettings and remote admin settings > should set remote admin settings and recompute merged settings 6ms
|
||
→ expected 'Default' to be 'initial-theme' // Object.is equality
|
||
✓ Settings Loading and Merging > LoadedSettings and remote admin settings > should correctly handle undefined remote admin settings 106ms
|
||
✓ Settings Loading and Merging > LoadedSettings and remote admin settings > should un-nest MCP configuration from remote settings 10ms
|
||
✓ Settings Loading and Merging > LoadedSettings and remote admin settings > should map requiredMcpConfig from remote settings 4ms
|
||
✓ Settings Loading and Merging > LoadedSettings and remote admin settings > should set skills based on unmanagedCapabilitiesEnabled 6ms
|
||
✓ Settings Loading and Merging > LoadedSettings and remote admin settings > should handle completely empty remote admin settings response 5ms
|
||
✓ Settings Loading and Merging > getDefaultsFromSchema > should extract defaults from a schema 2ms
|
||
✓ Settings Loading and Merging > Reactivity & Snapshots > getSnapshot() should return stable reference if no changes occur 2ms
|
||
× Settings Loading and Merging > Reactivity & Snapshots > setValue() should create a new snapshot reference and emit event 62ms
|
||
→ expected "spy" to be called at least once
|
||
× Settings Loading and Merging > Security and Sandbox > sandbox detection > should detect sandbox when -s is a real flag 4ms
|
||
→ expected 'AQ.Ab8RN6IwT1s30bPU4hFlfm2uLDRCJYHNlY…' to be 'secret' // Object.is equality
|
||
× Settings Loading and Merging > Security and Sandbox > sandbox detection > should detect sandbox when --sandbox is a real flag 4ms
|
||
→ expected 'AQ.Ab8RN6IwT1s30bPU4hFlfm2uLDRCJYHNlY…' to be 'secret' // Object.is equality
|
||
× Settings Loading and Merging > Security and Sandbox > sandbox detection > should ignore sandbox flags if they appear after -- 4ms
|
||
→ expected 'AQ.Ab8RN6IwT1s30bPU4hFlfm2uLDRCJYHNlY…' to deeply equal 'secret'
|
||
× Settings Loading and Merging > Security and Sandbox > sandbox detection > should NOT be tricked by positional arguments that look like flags 4ms
|
||
→ expected 'AQ.Ab8RN6IwT1s30bPU4hFlfm2uLDRCJYHNlY…' to deeply equal 'secret'
|
||
× Settings Loading and Merging > Security and Sandbox > env var sanitization > should strictly enforce whitelist in untrusted/sandboxed mode 5ms
|
||
→ expected 'AQ.Ab8RN6IwT1s30bPU4hFlfm2uLDRCJYHNlY…' to be 'secret-key' // Object.is equality
|
||
× Settings Loading and Merging > Security and Sandbox > env var sanitization > should sanitize shell injection characters in whitelisted env vars in untrusted mode 4ms
|
||
→ expected 'AQ.Ab8RN6IwT1s30bPU4hFlfm2uLDRCJYHNlY…' to be 'key-whoami-id-' // Object.is equality
|
||
× Settings Loading and Merging > Security and Sandbox > env var sanitization > should allow . and / in whitelisted env vars but sanitize other characters in untrusted mode 5ms
|
||
→ expected 'AQ.Ab8RN6IwT1s30bPU4hFlfm2uLDRCJYHNlY…' to be 'secret-123/path.to/somewhererm-rf/' // Object.is equality
|
||
× Settings Loading and Merging > Security and Sandbox > env var sanitization > should NOT sanitize variables from trusted sources 5ms
|
||
→ expected undefined to be '$(bar)' // Object.is equality
|
||
× Settings Loading and Merging > Security and Sandbox > env var sanitization > should load environment variables normally when workspace is TRUSTED even if "sandboxed" 5ms
|
||
→ expected 'AQ.Ab8RN6IwT1s30bPU4hFlfm2uLDRCJYHNlY…' to be 'un-sanitized;key!' // Object.is equality
|
||
✓ Settings Loading and Merging > Security and Sandbox > env var sanitization > should sanitize value in sanitizeEnvVar helper 1ms
|
||
× Settings Loading and Merging > Security and Sandbox > Cloud Shell security > should handle Cloud Shell special defaults securely when untrusted 3ms
|
||
→ expected 'aipp-internal-testing' to be 'cloudshell-gca' // Object.is equality
|
||
× Settings Loading and Merging > Security and Sandbox > Cloud Shell security > should sanitize GOOGLE_CLOUD_PROJECT in Cloud Shell when loaded from .env in untrusted mode 23ms
|
||
→ expected 'aipp-internal-testing' to be 'attacker-projectinject' // Object.is equality
|
||
✓ LoadedSettings Isolation and Serializability > setValue Isolation > should isolate state between settings and originalSettings 67ms
|
||
✓ LoadedSettings Isolation and Serializability > setValue Isolation > should not share references between settings and originalSettings (original servers test) 16ms
|
||
✓ LoadedSettings Isolation and Serializability > setValue Serializability > should preserve Map/Set types (via structuredClone) 15ms
|
||
✓ LoadedSettings Isolation and Serializability > setValue Serializability > should handle circular references (structuredClone supports them, but deepMerge may not) 185ms
|
||
❯ src/ui/hooks/usePermissionsModifyTrust.test.ts (13 tests | 13 failed) 2599ms
|
||
× usePermissionsModifyTrust > when targetDirectory is the current workspace > should initialize with the correct trust level 573ms
|
||
→ Cannot read properties of undefined (reading 'currentTrustLevel')
|
||
× usePermissionsModifyTrust > when targetDirectory is the current workspace > should detect inherited trust from parent 275ms
|
||
→ Cannot read properties of undefined (reading 'isInheritedTrustFromParent')
|
||
× usePermissionsModifyTrust > when targetDirectory is the current workspace > should detect inherited trust from IDE 140ms
|
||
→ Cannot read properties of undefined (reading 'isInheritedTrustFromIde')
|
||
× usePermissionsModifyTrust > when targetDirectory is the current workspace > should set needsRestart but not save when trust changes 200ms
|
||
→ Cannot read properties of undefined (reading 'updateTrustLevel')
|
||
× usePermissionsModifyTrust > when targetDirectory is the current workspace > should save immediately if trust does not change 177ms
|
||
→ Cannot read properties of undefined (reading 'updateTrustLevel')
|
||
× usePermissionsModifyTrust > when targetDirectory is the current workspace > should commit the pending trust level change 132ms
|
||
→ Cannot read properties of undefined (reading 'updateTrustLevel')
|
||
× usePermissionsModifyTrust > when targetDirectory is the current workspace > should add warning when setting DO_NOT_TRUST but still trusted by parent 203ms
|
||
→ Cannot read properties of undefined (reading 'updateTrustLevel')
|
||
× usePermissionsModifyTrust > when targetDirectory is the current workspace > should add warning when setting DO_NOT_TRUST but still trusted by IDE 96ms
|
||
→ Cannot read properties of undefined (reading 'updateTrustLevel')
|
||
× usePermissionsModifyTrust > when targetDirectory is not the current workspace > should not detect inherited trust 184ms
|
||
→ Cannot read properties of undefined (reading 'isInheritedTrustFromParent')
|
||
× usePermissionsModifyTrust > when targetDirectory is not the current workspace > should save immediately without needing a restart 176ms
|
||
→ Cannot read properties of undefined (reading 'updateTrustLevel')
|
||
× usePermissionsModifyTrust > when targetDirectory is not the current workspace > should not add a warning when setting DO_NOT_TRUST 126ms
|
||
→ Cannot read properties of undefined (reading 'updateTrustLevel')
|
||
× usePermissionsModifyTrust > should emit feedback when setValue throws in updateTrustLevel 76ms
|
||
→ Cannot read properties of undefined (reading 'updateTrustLevel')
|
||
× usePermissionsModifyTrust > should emit feedback when setValue throws in commitTrustLevelChange 210ms
|
||
→ Cannot read properties of undefined (reading 'updateTrustLevel')
|
||
[?25h ❯ src/ui/components/ShowMoreLines.test.tsx (8 tests | 8 failed) 1858ms
|
||
× ShowMoreLines > renders nothing when: overflow=Set{}, streaming=idle, constrain=true 511ms
|
||
→ expected '\n ERROR useStreamingContext must b…' to be '' // Object.is equality
|
||
× ShowMoreLines > renders nothing when: overflow=Set{ '1' }, streaming=idle, constrain=false 174ms
|
||
→ expected '\n ERROR useStreamingContext must b…' to be '' // Object.is equality
|
||
× ShowMoreLines > renders message in STANDARD mode when overflowing 145ms
|
||
→ expected '\n error usestreamingcontext must b…' to contain 'press ctrl+o to show more lines'
|
||
× ShowMoreLines > renders message in ASB mode when overflowing and state is idle 233ms
|
||
→ expected '\n error usestreamingcontext must b…' to contain 'press ctrl+o to show more lines'
|
||
× ShowMoreLines > renders message in ASB mode when overflowing and state is waiting_for_confirmation 293ms
|
||
→ expected '\n error usestreamingcontext must b…' to contain 'press ctrl+o to show more lines'
|
||
× ShowMoreLines > renders message in ASB mode when overflowing and state is responding 97ms
|
||
→ expected '\n error usestreamingcontext must b…' to contain 'press ctrl+o to show more lines'
|
||
× ShowMoreLines > renders message in ASB mode when isOverflowing prop is true even if internal overflow state is empty 250ms
|
||
→ expected '\n error usestreamingcontext must b…' to contain 'press ctrl+o to show more lines'
|
||
× ShowMoreLines > renders nothing when isOverflowing prop is false even if internal overflow state has IDs 150ms
|
||
→ expected '\n ERROR useStreamingContext must b…' to be '' // Object.is equality
|
||
[?25h ❯ src/ui/contexts/ScrollProvider.test.tsx (12 tests | 11 failed) 2345ms
|
||
× ScrollProvider > Event Handling Status > returns true when scroll event is handled 567ms
|
||
→ expected false to be true // Object.is equality
|
||
✓ ScrollProvider > Event Handling Status > returns false when scroll event is ignored (cannot scroll further) 155ms
|
||
× ScrollProvider > calls scrollTo when clicking scrollbar track if available 197ms
|
||
→ expected "spy" to be called at least once
|
||
× ScrollProvider > calls scrollBy when clicking scrollbar track if scrollTo is not available 188ms
|
||
→ expected "spy" to be called at least once
|
||
× ScrollProvider > batches multiple scroll events into a single update 104ms
|
||
→ expected "spy" to be called 1 times, but got 0 times
|
||
× ScrollProvider > handles mixed direction scroll events in batch 80ms
|
||
→ expected "spy" to be called 1 times, but got 0 times
|
||
× ScrollProvider > respects scroll limits during batching 272ms
|
||
→ expected "spy" to be called 1 times, but got 0 times
|
||
× ScrollProvider > calls scrollTo when dragging scrollbar thumb if available 102ms
|
||
→ expected "spy" to be called at least once
|
||
× ScrollProvider > calls scrollBy when dragging scrollbar thumb if scrollTo is not available 261ms
|
||
→ expected "spy" to be called at least once
|
||
× ScrollProvider > Scroll Acceleration > accelerates scroll for non-Ghostty terminals during rapid scrolling 133ms
|
||
→ expected 0 to be greater than 60
|
||
× ScrollProvider > Scroll Acceleration > does not accelerate for Ghostty terminals even during rapid scrolling 83ms
|
||
→ expected +0 to be 60 // Object.is equality
|
||
× ScrollProvider > Scroll Acceleration > resets acceleration count if scrolling is slow 200ms
|
||
→ expected +0 to be 60 // Object.is equality
|
||
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h(node:51616) 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:51616) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 memory-changed listeners added to [CoreEventEmitter]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
|
||
[?2004h ❯ src/ui/components/HooksDialog.test.tsx (12 tests | 2 failed) 1775ms
|
||
✓ HooksDialog > snapshots > renders empty hooks dialog 326ms
|
||
✓ HooksDialog > snapshots > renders single hook with security warning, source, and tips 113ms
|
||
✓ HooksDialog > snapshots > renders hooks grouped by event name with enabled and disabled status 251ms
|
||
✓ HooksDialog > snapshots > renders hook with all metadata (matcher, sequential, timeout) 101ms
|
||
✓ HooksDialog > snapshots > renders hook using command as name when name is not provided 87ms
|
||
✓ HooksDialog > keyboard interaction > should call onClose when escape key is pressed 95ms
|
||
✓ HooksDialog > scrolling behavior > should not show scroll indicators when hooks fit within maxVisibleHooks 101ms
|
||
✓ HooksDialog > scrolling behavior > should show scroll down indicator when there are more hooks than maxVisibleHooks 83ms
|
||
× HooksDialog > scrolling behavior > should scroll down when down arrow is pressed 164ms
|
||
→ expected '\n╭──────────────────────────────────…' to contain '▲'
|
||
× HooksDialog > scrolling behavior > should scroll up when up arrow is pressed after scrolling down 117ms
|
||
→ expected '\n╭──────────────────────────────────…' to contain '▲'
|
||
✓ HooksDialog > scrolling behavior > should not scroll beyond the end 251ms
|
||
✓ HooksDialog > scrolling behavior > should not scroll above the beginning 82ms
|
||
[?25h[?2004h ❯ src/ui/components/ValidationDialog.test.tsx (8 tests | 3 failed) 852ms
|
||
✓ ValidationDialog > initial render (choosing state) > should render the main message and two options 142ms
|
||
✓ ValidationDialog > initial render (choosing state) > should render learn more URL when provided 153ms
|
||
✓ ValidationDialog > initial render (choosing state) > should call onChoice with cancel when ESCAPE is pressed 109ms
|
||
✓ ValidationDialog > onChoice handling > should call onChoice with change_auth when that option is selected 97ms
|
||
✓ ValidationDialog > onChoice handling > should call onChoice with verify when no validation link is provided 69ms
|
||
× ValidationDialog > onChoice handling > should open browser and transition to waiting state when verify is selected with a link 85ms
|
||
→ expected '╭────────────────────────────────────…' to contain 'Waiting for verification...'
|
||
× ValidationDialog > headless mode > should show URL in message when browser cannot be launched 117ms
|
||
→ expected '╭────────────────────────────────────…' to contain 'Please open this URL in a browser:'
|
||
× ValidationDialog > error state > should show error and options when browser fails to open 77ms
|
||
→ expected '╭────────────────────────────────────…' to contain 'Browser not found'
|
||
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h(node:51626) 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:51626) 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 ❯ src/ui/hooks/useKeypress.test.tsx (22 tests | 20 failed) 962ms
|
||
✓ useKeypress > should not listen if isActive is false 169ms
|
||
× useKeypress > should listen for keypress when active for key 'a' 34ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× useKeypress > should listen for keypress when active for key 'left' 31ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× useKeypress > should listen for keypress when active for key 'right' 31ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× useKeypress > should listen for keypress when active for key 'up' 72ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× useKeypress > should listen for keypress when active for key 'down' 33ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× useKeypress > should listen for keypress when active for key 'tab' 44ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× useKeypress > should set and release raw mode 58ms
|
||
→ expected "spy" to be called with arguments: [ true ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
✓ useKeypress > should stop listening after being unmounted 83ms
|
||
× useKeypress > should correctly identify alt+enter (meta key) 47ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× useKeypress > in 'PASTE_WORKAROUND true' > should process a paste as a single event 30ms
|
||
→ expected "spy" to be called 1 times, but got 0 times
|
||
× useKeypress > in 'PASTE_WORKAROUND true' > should handle keypress interspersed with pastes 24ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× useKeypress > in 'PASTE_WORKAROUND true' > should handle lone pastes 101ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× useKeypress > in 'PASTE_WORKAROUND true' > should handle paste false alarm 13ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× useKeypress > in 'PASTE_WORKAROUND true' > should handle back to back pastes 17ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× useKeypress > in 'PASTE_WORKAROUND true' > should handle pastes split across writes 35ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× useKeypress > in 'PASTE_WORKAROUND false' > should process a paste as a single event 21ms
|
||
→ expected "spy" to be called 1 times, but got 0 times
|
||
× useKeypress > in 'PASTE_WORKAROUND false' > should handle keypress interspersed with pastes 26ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× useKeypress > in 'PASTE_WORKAROUND false' > should handle lone pastes 51ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× useKeypress > in 'PASTE_WORKAROUND false' > should handle paste false alarm 11ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× useKeypress > in 'PASTE_WORKAROUND false' > should handle back to back pastes 18ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× useKeypress > in 'PASTE_WORKAROUND false' > should handle pastes split across writes 11ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
[?25h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/IdeIntegrationNudge.test.tsx (6 tests | 1 failed) 985ms
|
||
✓ IdeIntegrationNudge > renders correctly with default options 229ms
|
||
✓ IdeIntegrationNudge > handles "Yes" selection 236ms
|
||
✓ IdeIntegrationNudge > handles "No" selection 175ms
|
||
✓ IdeIntegrationNudge > handles "Dismiss" selection 138ms
|
||
× IdeIntegrationNudge > handles Escape key press 124ms
|
||
→ expected "spy" to be called with arguments: [ { userSelection: 'no', …(1) } ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
✓ IdeIntegrationNudge > displays correct text and handles selection when extension is pre-installed 82ms
|
||
[?25h[?2004h[?2004h[?2004h[?2004h(node:51630) 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:51630) 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 ❯ src/ui/contexts/MouseContext.test.tsx (18 tests | 17 failed) 835ms
|
||
× MouseContext > should subscribe and unsubscribe a handler 149ms
|
||
→ expected "spy" to be called 1 times, but got 0 times
|
||
✓ MouseContext > should not call handler if not active 37ms
|
||
× MouseContext > should emit SelectionWarning when move event is unhandled and has coordinates 41ms
|
||
→ expected "spy" to be called with arguments: [ 'selection-warning' ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× MouseContext > should not emit SelectionWarning when move event is handled 30ms
|
||
→ expected "spy" to be called at least once
|
||
× MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<0;10;20M'" as 'left-press' 26ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<0;10;20m'" as 'left-release' 24ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<2;10;20M'" as 'right-press' 85ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<1;10;20M'" as 'middle-press' 49ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<64;10;20M'" as 'scroll-up' 36ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<65;10;20M'" as 'scroll-down' 29ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<32;10;20M'" as 'move' 35ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<4;10;20M'" as 'left-press' 38ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<8;10;20M'" as 'left-press' 43ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<20;10;20M'" as 'left-press' 32ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<68;10;20M'" as 'scroll-up' 22ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× MouseContext > should emit a double-click event when two left-presses occur quickly at the same position 31ms
|
||
→ expected "spy" to be called 1 times, but got 0 times
|
||
× MouseContext > should NOT emit a double-click event if clicks are too far apart 68ms
|
||
→ expected "spy" to be called 2 times, but got 0 times
|
||
× MouseContext > should NOT emit a double-click event if too much time passes 50ms
|
||
→ expected "spy" to be called 2 times, but got 0 times
|
||
[?25h ❯ src/nonInteractiveCliAgentSession.test.ts (50 tests | 1 failed) 887ms
|
||
✓ runNonInteractive > should process input and write text output 31ms
|
||
✓ runNonInteractive > should stream the specific stream started by send 7ms
|
||
✓ runNonInteractive > fails fast if the session acknowledges a message send without a stream 7ms
|
||
✓ runNonInteractive > should register activity logger when GEMINI_CLI_ACTIVITY_LOG_TARGET is set 9ms
|
||
✓ runNonInteractive > should not register activity logger when GEMINI_CLI_ACTIVITY_LOG_TARGET is not set 6ms
|
||
✓ runNonInteractive > should handle a single tool call and respond 10ms
|
||
✓ runNonInteractive > should write a single newline between sequential text outputs from the model 17ms
|
||
✓ runNonInteractive > should handle error during tool execution and should send error back to the model 13ms
|
||
✓ runNonInteractive > should exit with error if sendMessageStream throws initially 11ms
|
||
✓ runNonInteractive > should not exit if a tool is not found, and should send error back to model 19ms
|
||
✓ runNonInteractive > should exit when max session turns are exceeded 4ms
|
||
✓ runNonInteractive > should preprocess @include commands before sending to the model 16ms
|
||
✓ runNonInteractive > should process input and write JSON output with stats 12ms
|
||
✓ runNonInteractive > should write JSON output with stats for tool-only commands (no text response) 10ms
|
||
✓ runNonInteractive > should keep only the final post-tool assistant text in JSON output 21ms
|
||
✓ runNonInteractive > should write JSON output with stats for empty response commands 9ms
|
||
✓ runNonInteractive > should handle errors in JSON format 17ms
|
||
✓ runNonInteractive > should handle FatalInputError with custom exit code in JSON format 14ms
|
||
✓ runNonInteractive > should execute a slash command that returns a prompt 25ms
|
||
✓ runNonInteractive > should handle slash commands 11ms
|
||
× runNonInteractive > should handle cancellation (Ctrl+C) 80ms
|
||
→ promise resolved "undefined" instead of rejecting
|
||
✓ runNonInteractive > should honor cancellation that happens before session.send() 7ms
|
||
✓ runNonInteractive > should throw FatalInputError if a command requires confirmation 7ms
|
||
✓ runNonInteractive > should treat an unknown slash command as a regular prompt 11ms
|
||
✓ runNonInteractive > should throw for unhandled command result types 8ms
|
||
✓ runNonInteractive > should pass arguments to the slash command action 14ms
|
||
✓ runNonInteractive > should instantiate CommandService with correct loaders for slash commands 11ms
|
||
✓ runNonInteractive > should allow a normally-excluded tool when --allowed-tools is set 7ms
|
||
✓ runNonInteractive > CoreEvents Integration > subscribes to UserFeedback and drains backlog on start 8ms
|
||
✓ runNonInteractive > CoreEvents Integration > unsubscribes from UserFeedback on finish 9ms
|
||
✓ runNonInteractive > CoreEvents Integration > logs to process.stderr when UserFeedback event is received 28ms
|
||
✓ runNonInteractive > CoreEvents Integration > logs optional error object to process.stderr in debug mode 68ms
|
||
✓ runNonInteractive > should emit appropriate events for streaming JSON output 19ms
|
||
✓ runNonInteractive > should handle EPIPE error gracefully 22ms
|
||
✓ runNonInteractive > should resume chat when resumedSessionData is provided 21ms
|
||
✓ runNonInteractive > should emit appropriate error event in streaming JSON mode: 'loop detected' 20ms
|
||
✓ runNonInteractive > should emit appropriate error event in streaming JSON mode: 'max session turns' 21ms
|
||
✓ runNonInteractive > should log error when tool recording fails 28ms
|
||
✓ runNonInteractive > should stop agent execution immediately when a tool call returns STOP_EXECUTION error 54ms
|
||
✓ runNonInteractive > should write JSON output when a tool call returns STOP_EXECUTION error 19ms
|
||
✓ runNonInteractive > should emit result event when a tool call returns STOP_EXECUTION error in streaming JSON mode 28ms
|
||
✓ runNonInteractive > Agent Execution Events > should handle AgentExecutionStopped event 19ms
|
||
✓ runNonInteractive > Agent Execution Events > should handle AgentExecutionBlocked event 12ms
|
||
✓ runNonInteractive > Output Sanitization > should sanitize ANSI output by default 9ms
|
||
✓ runNonInteractive > Output Sanitization > should allow ANSI output when rawOutput is true 8ms
|
||
✓ runNonInteractive > Output Sanitization > should allow ANSI output when only acceptRawOutputRisk is true 12ms
|
||
✓ runNonInteractive > Output Sanitization > should warn when rawOutput is true and acceptRisk is false 11ms
|
||
✓ runNonInteractive > Output Sanitization > should not warn when rawOutput is true and acceptRisk is true 31ms
|
||
✓ runNonInteractive > Output Sanitization > should emit warning event for loop_detected in streaming JSON mode 8ms
|
||
✓ runNonInteractive > Output Sanitization > should report cancelled tool calls as success in stream-json mode (legacy parity) 14ms
|
||
❯ src/gemini_cleanup.test.tsx (2 tests | 2 failed) 60068ms
|
||
× gemini.tsx main function cleanup > should log error when cleanupExpiredSessions fails 60029ms
|
||
→ Test timed out in 60000ms.
|
||
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
|
||
× gemini.tsx main function cleanup > should register SessionEnd hook exactly once in non-interactive mode 29ms
|
||
→ Cannot read properties of undefined (reading 'merged')
|
||
✓ src/ui/components/MultiFolderTrustDialog.test.tsx (8 tests) 2013ms
|
||
✓ MultiFolderTrustDialog > renders the dialog with the list of folders 594ms
|
||
✓ MultiFolderTrustDialog > shows submitting message after a choice is made 396ms
|
||
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/hooks/useMouse.test.ts (4 tests | 3 failed) 1482ms
|
||
✓ useMouse > should not subscribe when isActive is false 629ms
|
||
× useMouse > should subscribe when isActive is true 205ms
|
||
→ expected "spy" to be called with arguments: [ [Function spy] ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× useMouse > should unsubscribe on unmount 275ms
|
||
→ expected "spy" to be called with arguments: [ [Function spy] ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× useMouse > should unsubscribe when isActive becomes false 371ms
|
||
→ expected "spy" to be called with arguments: [ [Function spy] ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
[?2004h[?25h[?2004h[?2004h[?2004h ❯ src/ui/hooks/useIdeTrustListener.test.tsx (5 tests | 5 failed) 1452ms
|
||
× useIdeTrustListener > should initialize correctly with no trust information 636ms
|
||
→ Cannot read properties of undefined (reading 'resolve')
|
||
× useIdeTrustListener > should NOT set needsRestart when connecting for the first time 420ms
|
||
→ Cannot read properties of undefined (reading 'resolve')
|
||
× useIdeTrustListener > should set needsRestart when IDE trust changes 155ms
|
||
→ Cannot read properties of undefined (reading 'resolve')
|
||
× useIdeTrustListener > should set needsRestart when IDE disconnects 131ms
|
||
→ Cannot read properties of undefined (reading 'resolve')
|
||
× useIdeTrustListener > should NOT set needsRestart if trust value does not change 107ms
|
||
→ Cannot read properties of undefined (reading 'resolve')
|
||
[?25h[?2004h(node:51647) 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:51647) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 memory-changed listeners added to [CoreEventEmitter]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
|
||
[?2004h ❯ src/ui/components/Notifications.test.tsx (12 tests | 1 failed) 1396ms
|
||
✓ Notifications > renders nothing when no notifications 306ms
|
||
✓ Notifications > renders startup warnings: [object Object] 247ms
|
||
✓ Notifications > renders startup warnings: [object Object],[object Object] 235ms
|
||
✓ Notifications > increments show count for low priority warnings 46ms
|
||
✓ Notifications > filters out low priority warnings that exceeded max show count 47ms
|
||
× Notifications > dismisses warnings on keypress 90ms
|
||
→ expected '\n⚠ High priority 1\n' not to contain 'High priority 1'
|
||
✓ Notifications > renders init error 158ms
|
||
✓ Notifications > does not render init error when streaming 23ms
|
||
✓ Notifications > renders update notification 77ms
|
||
✓ Notifications > renders screen reader nudge when enabled and not seen (no legacy file) 79ms
|
||
✓ Notifications > migrates legacy screen reader nudge file 64ms
|
||
✓ Notifications > does not render screen reader nudge when already seen in persistent state 22ms
|
||
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/components/shared/EnumSelector.test.tsx (9 tests | 1 failed) 1739ms
|
||
✓ <EnumSelector /> > renders with string options and matches snapshot 687ms
|
||
✓ <EnumSelector /> > renders with numeric options and matches snapshot 61ms
|
||
✓ <EnumSelector /> > renders inactive state and matches snapshot 54ms
|
||
✓ <EnumSelector /> > renders with single option and matches snapshot 66ms
|
||
✓ <EnumSelector /> > renders nothing when no options are provided 45ms
|
||
✓ <EnumSelector /> > handles currentValue not found in options 250ms
|
||
× <EnumSelector /> > updates when currentValue changes externally 315ms
|
||
→ 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.
|
||
✓ <EnumSelector /> > shows navigation arrows when multiple options available 155ms
|
||
✓ <EnumSelector /> > hides navigation arrows when single option available 100ms
|
||
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/components/UserIdentity.test.tsx (8 tests | 2 failed) 3244ms
|
||
× <UserIdentity /> > should render login message and auth indicator 1937ms
|
||
→ expected 'Signed in with Google /auth\n' to contain 'Signed in with Google: test@example.c…'
|
||
× <UserIdentity /> > should render the user email on the very first frame (regression test) 495ms
|
||
→ expected 'Signed in with Google /auth' to contain 'test@example.com'
|
||
✓ <UserIdentity /> > should render login message if email is missing 241ms
|
||
✓ <UserIdentity /> > should render plan name and upgrade indicator 282ms
|
||
✓ <UserIdentity /> > should not render if authType is missing 98ms
|
||
✓ <UserIdentity /> > should render non-Google auth message 70ms
|
||
✓ <UserIdentity /> > should render specific tier name when provided 65ms
|
||
✓ <UserIdentity /> > should not render /upgrade indicator for ultra tiers 51ms
|
||
[?25h ❯ src/ui/hooks/useAlternateBuffer.test.ts (5 tests | 3 failed) 1445ms
|
||
× useAlternateBuffer > should return false when config.getUseAlternateBuffer returns false 898ms
|
||
→ expected undefined to be false // Object.is equality
|
||
× useAlternateBuffer > should return true when config.getUseAlternateBuffer returns true 252ms
|
||
→ expected undefined to be true // Object.is equality
|
||
× useAlternateBuffer > should return the immutable config value, not react to settings changes 292ms
|
||
→ expected undefined to be true // Object.is equality
|
||
✓ isAlternateBufferEnabled > should return true when config.getUseAlternateBuffer returns true 1ms
|
||
✓ isAlternateBufferEnabled > should return false when config.getUseAlternateBuffer returns false 0ms
|
||
[?25h ❯ src/ui/contexts/ScrollProvider.drag.test.tsx (6 tests | 6 failed) 1874ms
|
||
× ScrollProvider Drag > drags the scrollbar thumb 962ms
|
||
→ expected "spy" to be called with arguments: [ 10 ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× ScrollProvider Drag > jumps to position and starts drag when clicking track below thumb 135ms
|
||
→ expected "spy" to be called with arguments: [ 50 ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× ScrollProvider Drag > jumps to position when clicking track above thumb 316ms
|
||
→ expected "spy" to be called with arguments: [ -30 ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× ScrollProvider Drag > jumps to top when clicking very top of track 131ms
|
||
→ expected "spy" to be called with arguments: [ -50 ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× ScrollProvider Drag > jumps to bottom when clicking very bottom of track 186ms
|
||
→ expected "spy" to be called with arguments: [ 90 ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× ScrollProvider Drag > uses scrollTo with 0 duration if provided 140ms
|
||
→ expected "spy" to be called with arguments: [ 50 ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
[?25h ❯ src/ui/utils/clipboardUtils.test.ts (44 tests | 10 failed) 893ms
|
||
✓ clipboardUtils > clipboardHasImage (Linux) > should return true when wl-paste shows image type (Wayland) 32ms
|
||
✓ clipboardUtils > clipboardHasImage (Linux) > should return true when xclip shows image type (X11) 14ms
|
||
✓ clipboardUtils > clipboardHasImage (Linux) > should return false if tool fails 8ms
|
||
✓ clipboardUtils > clipboardHasImage (Linux) > should return false if no image type is found 30ms
|
||
✓ clipboardUtils > clipboardHasImage (Linux) > should return false if tool not found 26ms
|
||
✓ clipboardUtils > saveClipboardImage (Linux) > should save image using wl-paste if detected 55ms
|
||
✓ clipboardUtils > saveClipboardImage (Linux) > should return null if wl-paste fails 16ms
|
||
✓ clipboardUtils > saveClipboardImage (Linux) > should save image using xclip if detected 18ms
|
||
✓ clipboardUtils > saveClipboardImage (Linux) > should return null if tool is not yet detected 9ms
|
||
✓ clipboardUtils > cleanupOldClipboardImages > should not throw errors 61ms
|
||
✓ clipboardUtils > cleanupOldClipboardImages > should complete without errors on valid directory 126ms
|
||
✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape empty string 15ms
|
||
✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape single path no spaces 14ms
|
||
✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape simple space-separated paths 7ms
|
||
✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape three paths 18ms
|
||
✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape escaped spaces 22ms
|
||
✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape multiple paths with escaped spaces 21ms
|
||
✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape multiple escaped spaces 9ms
|
||
✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape consecutive spaces 8ms
|
||
✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape trailing/leading whitespace 16ms
|
||
✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape whitespace only 7ms
|
||
✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape quoted path with spaces 8ms
|
||
✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape mixed quoted and unquoted 19ms
|
||
✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape quoted with escaped quotes 49ms
|
||
✓ clipboardUtils > splitDragAndDropPaths > in windows > should split double quoted path 13ms
|
||
✓ clipboardUtils > splitDragAndDropPaths > in windows > should split multiple double quoted paths 11ms
|
||
✓ clipboardUtils > splitDragAndDropPaths > in windows > should split unquoted path 17ms
|
||
✓ clipboardUtils > splitDragAndDropPaths > in windows > should split mixed quoted and unquoted 8ms
|
||
✓ clipboardUtils > splitDragAndDropPaths > in windows > should split single quoted path 19ms
|
||
✓ clipboardUtils > splitDragAndDropPaths > in windows > should split mixed single and double quoted 9ms
|
||
✓ clipboardUtils > parsePastedPaths > should return null for empty string 8ms
|
||
× clipboardUtils > parsePastedPaths > should add @ prefix to single valid path 34ms
|
||
→ expected null to be '@/path/to/file.txt ' // Object.is equality
|
||
✓ clipboardUtils > parsePastedPaths > should return null for single invalid path 17ms
|
||
× clipboardUtils > parsePastedPaths > should add @ prefix to all valid paths 12ms
|
||
→ expected null to be '@/path/to/file1.txt @/path/to/file2.t…' // Object.is equality
|
||
✓ clipboardUtils > parsePastedPaths > should return null if any path is invalid 4ms
|
||
✓ clipboardUtils > parsePastedPaths > should return null if no paths are valid 6ms
|
||
× clipboardUtils > parsePastedPaths > in posix > should handle paths with escaped spaces 8ms
|
||
→ expected null to be '@/path/to/my\ file.txt @/other/path.t…' // Object.is equality
|
||
× clipboardUtils > parsePastedPaths > in posix > should unescape paths before validation 14ms
|
||
→ expected [] to deeply equal [ '/my\ file.txt /other.txt', …(2) ]
|
||
× clipboardUtils > parsePastedPaths > in posix > should handle single path with unescaped spaces from copy-paste 5ms
|
||
→ expected null to be '@/path/to/my\ file.txt ' // Object.is equality
|
||
× clipboardUtils > parsePastedPaths > in posix > should handle single-quoted with escaped quote 5ms
|
||
→ expected null to be '@/usr/test/my\ file\ with\ \\'single\…' // Object.is equality
|
||
× clipboardUtils > parsePastedPaths > in windows > should handle Windows path 10ms
|
||
→ expected null to be '@C:\Users\file.txt ' // Object.is equality
|
||
× clipboardUtils > parsePastedPaths > in windows > should handle Windows path with unescaped spaces 62ms
|
||
→ expected null to be '@"C:\My Documents\file.txt" ' // Object.is equality
|
||
× clipboardUtils > parsePastedPaths > in windows > should handle multiple Windows paths 12ms
|
||
→ expected null to be '@C:\file1.txt @D:\file2.txt ' // Object.is equality
|
||
× clipboardUtils > parsePastedPaths > in windows > should handle Windows UNC path 8ms
|
||
→ expected null to be '@\\server\share\file.txt ' // Object.is equality
|
||
❯ src/ui/components/ShowMoreLinesLayout.test.tsx (2 tests | 2 failed) 920ms
|
||
× ShowMoreLines layout and padding > renders with single padding (paddingX=1, marginBottom=1) 512ms
|
||
→ expected [ '', …(39) ] to deeply equal [ 'Top', …(4) ]
|
||
× ShowMoreLines layout and padding > renders in Standard mode as well 405ms
|
||
→ expected [ '', …(39) ] to deeply equal [ 'Top', …(4) ]
|
||
[?25h ❯ src/nonInteractiveCli.test.ts (45 tests | 1 failed) 885ms
|
||
✓ runNonInteractive > should process input and write text output 14ms
|
||
✓ runNonInteractive > should register activity logger when GEMINI_CLI_ACTIVITY_LOG_TARGET is set 4ms
|
||
✓ runNonInteractive > should not register activity logger when GEMINI_CLI_ACTIVITY_LOG_TARGET is not set 3ms
|
||
✓ runNonInteractive > should handle a single tool call and respond 6ms
|
||
✓ runNonInteractive > should write a single newline between sequential text outputs from the model 6ms
|
||
✓ runNonInteractive > should handle error during tool execution and should send error back to the model 28ms
|
||
✓ runNonInteractive > should exit with error if sendMessageStream throws initially 49ms
|
||
✓ runNonInteractive > should not exit if a tool is not found, and should send error back to model 5ms
|
||
✓ runNonInteractive > should exit when max session turns are exceeded 11ms
|
||
✓ runNonInteractive > should preprocess @include commands before sending to the model 4ms
|
||
✓ runNonInteractive > should process input and write JSON output with stats 10ms
|
||
✓ runNonInteractive > should write JSON output with stats for tool-only commands (no text response) 5ms
|
||
✓ runNonInteractive > should write JSON output with stats for empty response commands 4ms
|
||
✓ runNonInteractive > should handle errors in JSON format 90ms
|
||
✓ runNonInteractive > should handle FatalInputError with custom exit code in JSON format 7ms
|
||
✓ runNonInteractive > should execute a slash command that returns a prompt 21ms
|
||
✓ runNonInteractive > should handle slash commands 6ms
|
||
× runNonInteractive > should handle cancellation (Ctrl+C) 99ms
|
||
→ expected false to be true // Object.is equality
|
||
✓ runNonInteractive > should throw FatalInputError if a command requires confirmation 7ms
|
||
✓ runNonInteractive > should treat an unknown slash command as a regular prompt 7ms
|
||
✓ runNonInteractive > should throw for unhandled command result types 9ms
|
||
✓ runNonInteractive > should pass arguments to the slash command action 8ms
|
||
✓ runNonInteractive > should instantiate CommandService with correct loaders for slash commands 6ms
|
||
✓ runNonInteractive > should allow a normally-excluded tool when --allowed-tools is set 16ms
|
||
✓ runNonInteractive > CoreEvents Integration > subscribes to UserFeedback and drains backlog on start 10ms
|
||
✓ runNonInteractive > CoreEvents Integration > unsubscribes from UserFeedback on finish 5ms
|
||
✓ runNonInteractive > CoreEvents Integration > logs to process.stderr when UserFeedback event is received 7ms
|
||
✓ runNonInteractive > CoreEvents Integration > logs optional error object to process.stderr in debug mode 7ms
|
||
✓ runNonInteractive > should emit appropriate events for streaming JSON output 39ms
|
||
✓ runNonInteractive > should handle EPIPE error gracefully 27ms
|
||
✓ runNonInteractive > should resume chat when resumedSessionData is provided 41ms
|
||
✓ runNonInteractive > should emit appropriate error event in streaming JSON mode: 'loop detected' 11ms
|
||
✓ runNonInteractive > should emit appropriate error event in streaming JSON mode: 'max session turns' 20ms
|
||
✓ runNonInteractive > should log error when tool recording fails 30ms
|
||
✓ runNonInteractive > should stop agent execution immediately when a tool call returns STOP_EXECUTION error 15ms
|
||
✓ runNonInteractive > should write JSON output when a tool call returns STOP_EXECUTION error 6ms
|
||
✓ runNonInteractive > should emit result event when a tool call returns STOP_EXECUTION error in streaming JSON mode 48ms
|
||
✓ runNonInteractive > Agent Execution Events > should handle AgentExecutionStopped event 27ms
|
||
✓ runNonInteractive > Agent Execution Events > should handle AgentExecutionBlocked event 11ms
|
||
✓ runNonInteractive > Output Sanitization > should sanitize ANSI output by default 25ms
|
||
✓ runNonInteractive > Output Sanitization > should allow ANSI output when rawOutput is true 9ms
|
||
✓ runNonInteractive > Output Sanitization > should allow ANSI output when only acceptRawOutputRisk is true 7ms
|
||
✓ runNonInteractive > Output Sanitization > should warn when rawOutput is true and acceptRisk is false 63ms
|
||
✓ runNonInteractive > Output Sanitization > should not warn when rawOutput is true and acceptRisk is true 18ms
|
||
✓ runNonInteractive > Output Sanitization > should report cancelled tool calls as success in stream-json mode (legacy parity) 12ms
|
||
[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/components/shared/RadioButtonSelect.test.tsx (5 tests | 5 failed) 667ms
|
||
× RadioButtonSelect > Prop forwarding to BaseSelectionList > should forward all props correctly when provided 317ms
|
||
→ expected "spy" to be called 1 times, but got 0 times
|
||
× RadioButtonSelect > Prop forwarding to BaseSelectionList > should use default props if not provided 100ms
|
||
→ expected "spy" to be called with arguments: [ ObjectContaining{…}, undefined ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× RadioButtonSelect > renderItem implementation > should render the standard label display with correct color and truncation 107ms
|
||
→ BaseSelectionList was not called. Ensure RadioButtonSelect is rendered before calling extractRenderItem.
|
||
× RadioButtonSelect > renderItem implementation > should render the special theme display when theme props are present 65ms
|
||
→ BaseSelectionList was not called. Ensure RadioButtonSelect is rendered before calling extractRenderItem.
|
||
× RadioButtonSelect > renderItem implementation > should fall back to standard display if only one theme prop is present 75ms
|
||
→ BaseSelectionList was not called. Ensure RadioButtonSelect is rendered before calling extractRenderItem.
|
||
[?25h ✓ src/test-utils/render.test.tsx (6 tests) 658ms
|
||
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/hooks/useFocus.test.tsx (7 tests | 7 failed) 631ms
|
||
× useFocus > should initialize with focus and enable focus reporting 232ms
|
||
→ expected "spy" to be called with arguments: [ '\u001b[?1004h' ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× useFocus > should set isFocused to false when a focus-out event is received 150ms
|
||
→ expected true to be false // Object.is equality
|
||
× useFocus > should set isFocused to true when a focus-in event is received 21ms
|
||
→ expected true to be false // Object.is equality
|
||
× useFocus > should clean up and disable focus reporting on unmount 63ms
|
||
→ expected 0 to be greater than or equal to 1
|
||
× useFocus > should handle multiple focus events correctly 61ms
|
||
→ expected true to be false // Object.is equality
|
||
× useFocus > restores focus on keypress after focus is lost 63ms
|
||
→ expected true to be false // Object.is equality
|
||
× useFocus > tracks whether any focus event has been received 38ms
|
||
→ expected false to be true // Object.is equality
|
||
[?25h ❯ src/ui/hooks/useMouseClick.test.ts (2 tests | 2 failed) 897ms
|
||
× useMouseClick > should call handler with relative coordinates when click is inside bounds 643ms
|
||
→ expected "spy" to be called at least once
|
||
× useMouseClick > should not call handler when click is outside bounds 225ms
|
||
→ Cannot read properties of undefined (reading '0')
|
||
[?25h ❯ src/ui/auth/LoginWithGoogleRestartDialog.test.tsx (4 tests | 2 failed) 588ms
|
||
✓ LoginWithGoogleRestartDialog > renders correctly 389ms
|
||
✓ LoginWithGoogleRestartDialog > calls onDismiss when escape is pressed 35ms
|
||
× LoginWithGoogleRestartDialog > calls runExitCleanup and process.exit when r is pressed 49ms
|
||
→ expected "spy" to be called 1 times, but got 0 times
|
||
× LoginWithGoogleRestartDialog > calls runExitCleanup and process.exit when R is pressed 113ms
|
||
→ expected "spy" to be called 1 times, but got 0 times
|
||
[?25h ❯ src/ui/contexts/ToolActionsContext.test.tsx (8 tests | 2 failed) 337ms
|
||
✓ ToolActionsContext > publishes to MessageBus for tools with correlationId 87ms
|
||
✓ ToolActionsContext > handles cancel by calling confirm with Cancel outcome 59ms
|
||
× ToolActionsContext > resolves IDE diffs for edit tools when in IDE mode 70ms
|
||
→ Cannot read properties of undefined (reading 'resolve')
|
||
× ToolActionsContext > updates isDiffingEnabled when IdeClient status changes 30ms
|
||
→ Cannot read properties of undefined (reading 'resolve')
|
||
✓ ToolActionsContext > calls local onConfirm for tools without correlationId 25ms
|
||
✓ ToolActionsContext > toggleAllExpansion > expands all when none are expanded 26ms
|
||
✓ ToolActionsContext > toggleAllExpansion > expands all when some are expanded 18ms
|
||
✓ ToolActionsContext > toggleAllExpansion > collapses all when all are expanded 19ms
|
||
[?25h ❯ src/utils/commentJson.test.ts (12 tests | 1 failed) 95ms
|
||
✓ commentJson > updateSettingsFilePreservingFormat > should preserve comments when updating settings 18ms
|
||
✓ commentJson > updateSettingsFilePreservingFormat > should handle nested object updates 6ms
|
||
✓ commentJson > updateSettingsFilePreservingFormat > should add new fields while preserving existing structure 6ms
|
||
✓ commentJson > updateSettingsFilePreservingFormat > should create file if it does not exist 5ms
|
||
✓ commentJson > updateSettingsFilePreservingFormat > should handle complex real-world scenario 10ms
|
||
× commentJson > updateSettingsFilePreservingFormat > should handle corrupted JSON files gracefully 11ms
|
||
→ expected "spy" to be called with arguments: [ 'error', …(2) ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
✓ commentJson > updateSettingsFilePreservingFormat > should handle array updates while preserving comments 7ms
|
||
✓ commentJson > updateSettingsFilePreservingFormat > should sync nested objects, removing omitted fields 5ms
|
||
✓ commentJson > updateSettingsFilePreservingFormat > should handle mcpServers field deletion properly 8ms
|
||
✓ commentJson > updateSettingsFilePreservingFormat > preserves sibling-level commented-out blocks when removing another key 6ms
|
||
✓ commentJson > updateSettingsFilePreservingFormat > should handle type conversion from object to array 5ms
|
||
✓ commentJson > updateSettingsFilePreservingFormat > should remove both nested and non-nested objects when omitted 7ms
|
||
❯ src/ui/utils/clipboardUtils.windows.test.ts (1 test | 1 failed) 214ms
|
||
× saveClipboardImage Windows Path Escaping > should escape single quotes in path for PowerShell script 212ms
|
||
→ expected "spy" to be called at least once
|
||
❯ src/utils/installationInfo.test.ts (18 tests | 16 failed) 353ms
|
||
✓ getInstallationInfo > should detect running as a standalone binary 7ms
|
||
✓ getInstallationInfo > should return UNKNOWN when cliPath is not available 2ms
|
||
× getInstallationInfo > should return UNKNOWN and log error if realpathSync fails 87ms
|
||
→ expected "log" to be called with arguments: [ Error: realpath failed ][90m
|
||
|
||
Received:
|
||
|
||
[1m 1st log call:
|
||
|
||
[22m[2m [[22m
|
||
[2m Error {[22m
|
||
[32m- "message": "realpath failed",[90m
|
||
[31m+ "message": "ENOENT: no such file or directory, lstat '/path'",[90m
|
||
[31m+ "errno": -2,[90m
|
||
[31m+ "code": "ENOENT",[90m
|
||
[31m+ "syscall": "lstat",[90m
|
||
[31m+ "path": "/path",[90m
|
||
[2m },[22m
|
||
[2m ][22m
|
||
[39m[90m
|
||
|
||
Number of calls: [1m1[22m
|
||
[39m
|
||
× getInstallationInfo > should detect running from a local git clone 5ms
|
||
→ expected undefined to be 'Running from a local git clone. Pleas…' // Object.is equality
|
||
× getInstallationInfo > should detect running via npx 92ms
|
||
→ expected 'unknown' to be 'npx' // Object.is equality
|
||
× getInstallationInfo > should detect running via pnpx 27ms
|
||
→ expected 'unknown' to be 'pnpx' // Object.is equality
|
||
× getInstallationInfo > should detect running via bunx 7ms
|
||
→ expected 'unknown' to be 'bunx' // Object.is equality
|
||
× getInstallationInfo > should detect Homebrew installation via execSync 15ms
|
||
→ expected "spy" to be called with arguments: [ StringContaining{…}, Anything ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× getInstallationInfo > should fall through if brew command fails 3ms
|
||
→ expected "spy" to be called with arguments: [ StringContaining{…}, Anything ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
× getInstallationInfo > should detect global pnpm installation 5ms
|
||
→ expected 'unknown' to be 'pnpm' // Object.is equality
|
||
× getInstallationInfo > should detect global yarn installation 4ms
|
||
→ expected 'unknown' to be 'yarn' // Object.is equality
|
||
× getInstallationInfo > should detect global bun installation 3ms
|
||
→ expected 'unknown' to be 'bun' // Object.is equality
|
||
× getInstallationInfo > should detect local installation and identify yarn from lockfile 2ms
|
||
→ expected 'unknown' to be 'yarn' // Object.is equality
|
||
× getInstallationInfo > should detect local installation and identify pnpm from lockfile 5ms
|
||
→ expected 'unknown' to be 'pnpm' // Object.is equality
|
||
× getInstallationInfo > should detect local installation and identify bun from lockfile 5ms
|
||
→ expected 'unknown' to be 'bun' // Object.is equality
|
||
× getInstallationInfo > should default to local npm installation if no lockfile is found 2ms
|
||
→ expected 'unknown' to be 'npm' // Object.is equality
|
||
× getInstallationInfo > should default to global npm installation for unrecognized paths 73ms
|
||
→ expected 'unknown' to be 'npm' // Object.is equality
|
||
× getInstallationInfo > should NOT detect Homebrew if gemini-cli is installed in brew but running from npm location 6ms
|
||
→ expected 'unknown' to be 'npm' // Object.is equality
|
||
[8m[?u]11;?\[>q[>4;?m[c[2K
|
||
[0m[>1u[?2004h[8m[?u]11;?\[>q[>4;?m[c[2K
|
||
[0m[8m[?u]11;?\[>q[>4;?m[c[2K
|
||
[0m[8m[?u]11;?\[>q[>4;?m[c[2K
|
||
[0m[>1u[?2004h[8m[?u]11;?\[>q[>4;?m[c[2K
|
||
[0m[>1u[?2004h[8m[?u]11;?\[>q[>4;?m[c[2K
|
||
[0m[?2004h[8m[?u]11;?\[>q[>4;?m[c[2K
|
||
[0m[>1u[?2004h[8m[?u]11;?\[>q[>4;?m[c[2K
|
||
[0m[>4;2m[?2004h[8m[?u]11;?\[>q[>4;?m[c[2K
|
||
[0m[?2004h[8m[?u]11;?\[>q[>4;?m[c[2K
|
||
[0m[>1u[?2004h[8m[?u]11;?\[>q[>4;?m[c[2K
|
||
[0m[>4;2m[?2004h[8m[?u]11;?\[>q[>4;?m[c[2K
|
||
[0m[>4;2m[?2004h[8m[?u]11;?\[>q[>4;?m[c[2K
|
||
[0m[>4;2m[?2004h[8m[?u]11;?\[>q[>4;?m[c[2K
|
||
[0m[?2004h[8m[?u]11;?\[>q[>4;?m[c[2K
|
||
[0m ❯ src/ui/utils/terminalCapabilityManager.test.ts (30 tests | 6 failed) 217ms
|
||
✓ TerminalCapabilityManager > should detect Kitty support when u response is received 14ms
|
||
✓ TerminalCapabilityManager > should detect Background Color 4ms
|
||
✓ TerminalCapabilityManager > should detect Terminal Name 7ms
|
||
✓ TerminalCapabilityManager > should complete early if sentinel (DA1) is found 9ms
|
||
✓ TerminalCapabilityManager > should timeout if no DA1 (c) is received 24ms
|
||
✓ TerminalCapabilityManager > should not detect Kitty if only DA1 (c) is received 14ms
|
||
✓ TerminalCapabilityManager > should handle split chunks 48ms
|
||
× TerminalCapabilityManager > modifyOtherKeys detection > should detect modifyOtherKeys support (level 2) 21ms
|
||
→ expected "spy" to be called at least once
|
||
✓ TerminalCapabilityManager > modifyOtherKeys detection > should not enable modifyOtherKeys for level 0 6ms
|
||
× TerminalCapabilityManager > modifyOtherKeys detection > should prefer Kitty over modifyOtherKeys 3ms
|
||
→ expected "spy" to be called at least once
|
||
× TerminalCapabilityManager > modifyOtherKeys detection > should enable modifyOtherKeys when Kitty not supported 3ms
|
||
→ expected "spy" to be called at least once
|
||
× TerminalCapabilityManager > modifyOtherKeys detection > should handle split modifyOtherKeys response chunks 4ms
|
||
→ expected "spy" to be called at least once
|
||
× TerminalCapabilityManager > modifyOtherKeys detection > should detect modifyOtherKeys with other capabilities 7ms
|
||
→ expected "spy" to be called at least once
|
||
✓ TerminalCapabilityManager > modifyOtherKeys detection > should not enable modifyOtherKeys without explicit response 1ms
|
||
× TerminalCapabilityManager > modifyOtherKeys detection > should wrap queries in hidden/clear sequence 6ms
|
||
→ expected "spy" to be called with arguments: [ Anything, StringMatching{…} ][90m
|
||
|
||
Number of calls: [1m0[22m
|
||
[39m
|
||
✓ TerminalCapabilityManager > isGhosttyTerminal > should return true for 'Ghostty (terminal name)' 3ms
|
||
✓ TerminalCapabilityManager > isGhosttyTerminal > should return true for 'ghostty (TERM_PROGRAM)' 2ms
|
||
✓ TerminalCapabilityManager > isGhosttyTerminal > should return true for 'xterm-ghostty (TERM)' 1ms
|
||
✓ TerminalCapabilityManager > isGhosttyTerminal > should return false for 'iTerm.app (TERM_PROGRAM)' 3ms
|
||
✓ TerminalCapabilityManager > isGhosttyTerminal > should return false for 'undefined env' 1ms
|
||
✓ TerminalCapabilityManager > supportsOsc9Notifications > should return true for 'WezTerm (terminal name)' 2ms
|
||
✓ TerminalCapabilityManager > supportsOsc9Notifications > should return true for 'iTerm.app (terminal name)' 0ms
|
||
✓ TerminalCapabilityManager > supportsOsc9Notifications > should return true for 'ghostty (terminal name)' 1ms
|
||
✓ TerminalCapabilityManager > supportsOsc9Notifications > should return true for 'kitty (terminal name)' 1ms
|
||
✓ TerminalCapabilityManager > supportsOsc9Notifications > should return false for 'some-other-term (terminal name)' 2ms
|
||
✓ TerminalCapabilityManager > supportsOsc9Notifications > should return true for 'iTerm.app (TERM_PROGRAM)' 12ms
|
||
✓ TerminalCapabilityManager > supportsOsc9Notifications > should return false for 'vscode (TERM_PROGRAM)' 2ms
|
||
✓ TerminalCapabilityManager > supportsOsc9Notifications > should return true for 'xterm-kitty (TERM)' 0ms
|
||
✓ TerminalCapabilityManager > supportsOsc9Notifications > should return false for 'xterm-256color (TERM)' 1ms
|
||
✓ TerminalCapabilityManager > supportsOsc9Notifications > should return false for 'Windows Terminal (WT_SESSION)' 10ms
|
||
[<u[>4;0m[?2004l[?1000l[?1002l[?1003l[?1006l ❯ src/config/settings_validation_warning.test.ts (3 tests | 3 failed) 77ms
|
||
× Settings Validation Warning > should emit a warning and NOT throw when settings are invalid 47ms
|
||
→ expected false to be true // Object.is equality
|
||
× Settings Validation Warning > should throw a fatal error when settings file is not a valid JSON object 16ms
|
||
→ expected [Function] to throw an error
|
||
× Settings Validation Warning > should throw a fatal error when settings file contains invalid JSON 12ms
|
||
→ expected [Function] to throw an error
|
||
❯ src/config/settings_repro.test.ts (1 test | 1 failed) 88ms
|
||
× Settings Repro > should handle the problematic settings.json without crashing 87ms
|
||
→ expected 0.5 to be 0.8 // Object.is equality
|
||
❯ src/utils/persistentState.test.ts (5 tests | 5 failed) 120ms
|
||
× PersistentState > should load state from file if it exists 82ms
|
||
→ [vitest] No "PersistentState" export is defined on the "../utils/persistentState.js" mock. Did you forget to return it from "vi.mock"?
|
||
If you need to partially mock a module, you can use "importOriginal" helper inside:
|
||
|
||
× PersistentState > should return undefined if key does not exist 9ms
|
||
→ [vitest] No "PersistentState" export is defined on the "../utils/persistentState.js" mock. Did you forget to return it from "vi.mock"?
|
||
If you need to partially mock a module, you can use "importOriginal" helper inside:
|
||
|
||
× PersistentState > should save state to file 22ms
|
||
→ [vitest] No "PersistentState" export is defined on the "../utils/persistentState.js" mock. Did you forget to return it from "vi.mock"?
|
||
If you need to partially mock a module, you can use "importOriginal" helper inside:
|
||
|
||
× PersistentState > should handle load errors and start fresh 4ms
|
||
→ [vitest] No "PersistentState" export is defined on the "../utils/persistentState.js" mock. Did you forget to return it from "vi.mock"?
|
||
If you need to partially mock a module, you can use "importOriginal" helper inside:
|
||
|
||
× PersistentState > should handle save errors 1ms
|
||
→ [vitest] No "PersistentState" export is defined on the "../utils/persistentState.js" mock. Did you forget to return it from "vi.mock"?
|
||
If you need to partially mock a module, you can use "importOriginal" helper inside:
|
||
|
||
❯ src/utils/processUtils.test.ts (1 test | 1 failed) 14ms
|
||
× processUtils > should wait for updates, run cleanup, and exit with the relaunch code 12ms
|
||
→ expected "spy" to be called 1 times, but got 0 times
|
||
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h(node:51941) 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:51941) 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(node:51947) 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:51947) 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 ✓ src/ui/hooks/useSlashCompletion.test.ts (28 tests) 10028ms
|
||
✓ useSlashCompletion > Top-Level Commands > should suggest all top-level commands for the root slash 1101ms
|
||
✓ useSlashCompletion > Top-Level Commands > should show the same selectable auto/checkpoint menu for /chat and /resume 2068ms
|
||
✓ useSlashCompletion > Top-Level Commands > should not provide suggestions for a fully typed command that has no sub-commands or argument completion 1037ms
|
||
✓ useSlashCompletion > Top-Level Commands > should not suggest hidden commands 1048ms
|
||
✓ useSlashCompletion > Sub-Commands > should suggest sub-commands for a parent command 1020ms
|
||
✓ useSlashCompletion > Sub-Commands > should suggest all sub-commands when the query ends with the parent command and a space 1020ms
|
||
✓ useSlashCompletion > Command Kind Information > should include commandKind for MCP commands in suggestions 1095ms
|
||
✓ useSlashCompletion > Command Kind Information > should include commandKind for sub-commands 1017ms
|
||
[?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[?2004h1 MCP server is not allowlisted by your administrator. To enable it, please request an update to the settings at: https://goo.gle/manage-gemini-cli[?2004h1 MCP server is not allowlisted by your administrator. To enable it, please request an update to the settings at: https://goo.gle/manage-gemini-cli[?2004h[?2004h2 MCP servers are not allowlisted by your administrator. To enable them, please request an update to the settings at: https://goo.gle/manage-gemini-cli[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h]0;◇ Ready (cli) [?2004h]0;◇ Ready (cli) [?2004h[?2004h[?2004h]0;◇ Ready (cli) [?2004h[?2004hError: The --prompt-interactive flag cannot be used when input is piped from stdin.
|
||
[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/AskUserDialog.test.tsx (42 tests) 12497ms
|
||
✓ AskUserDialog > renders question and options 542ms
|
||
✓ AskUserDialog > Submission: 'Single Select' > submits correct values for Single Select 329ms
|
||
✓ AskUserDialog > Submission: 'Multi-select' > submits correct values for Multi-select 549ms
|
||
✓ AskUserDialog > Submission: 'All of the above' > submits correct values for All of the above 665ms
|
||
✓ AskUserDialog > Submission: 'Text Input' > submits correct values for Text Input 359ms
|
||
✓ AskUserDialog > verifies "All of the above" visual state with snapshot 336ms
|
||
✓ AskUserDialog > handles custom option in single select with inline typing 643ms
|
||
✓ AskUserDialog > supports multi-line input for "Other" option in choice questions 525ms
|
||
✓ AskUserDialog > navigates to custom option when typing unbound characters (Type-to-Jump) 369ms
|
||
✓ AskUserDialog > navigates between questions with arrow keys 310ms
|
||
✓ AskUserDialog > preserves answers when navigating back 558ms
|
||
✓ AskUserDialog > shows warning for unanswered questions on Review tab 366ms
|
||
✓ AskUserDialog > Text type questions > preserves text answer when navigating between questions 589ms
|
||
✓ AskUserDialog > Text type questions > handles mixed text and choice questions 563ms
|
||
✓ AskUserDialog > Text type questions > allows immediate arrow navigation after switching away from text input 378ms
|
||
✓ AskUserDialog > Choice question placeholder > supports "Other" option for yesno questions 1477ms
|
||
✓ AskUserDialog > expands paste placeholders in multi-select custom option via Done 464ms
|
||
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h]0;Gemini CLI (root) [?7l[?7h]0;Gemini CLI (root) [?7l[?7h]0;Gemini CLI (root) [?7l[?7h[?2004h]0;Gemini CLI (root) [?7l[?7h]0;Gemini CLI (root) [?7l[?7h]0;Gemini CLI (root) [?7l[?7h[?2004h[?7h ✓ src/gemini.test.tsx (38 tests) 11320ms
|
||
✓ gemini.tsx main function kitty protocol > should call setRawMode and detectCapabilities when isInteractive is true 8368ms
|
||
✓ gemini.tsx main function exit codes > should validate and refresh auth in non-interactive mode when no auth type is selected but env var is present 563ms
|
||
✓ project hooks loading based on trust > should load project hooks when workspace is trusted 537ms
|
||
✓ project hooks loading based on trust > should NOT load project hooks when workspace is not trusted 540ms
|
||
[?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/components/SettingsDialog.test.tsx (59 tests | 1 failed) 24774ms
|
||
✓ SettingsDialog > Initial Rendering > should render the settings dialog with default state 541ms
|
||
✓ SettingsDialog > Initial Rendering > should accept availableTerminalHeight prop without errors 174ms
|
||
✓ SettingsDialog > Initial Rendering > should render settings list with visual indicators 417ms
|
||
✓ SettingsDialog > Initial Rendering > should use almost full height of the window but no more when the window height is 25 rows 176ms
|
||
✓ SettingsDialog > Setting Descriptions > should render descriptions for settings that have them 168ms
|
||
✓ SettingsDialog > Settings Navigation > should navigate with 'arrow keys' 365ms
|
||
✓ SettingsDialog > Settings Navigation > should navigate with 'emacs keys (Ctrl+P/N)' 373ms
|
||
✓ SettingsDialog > Settings Navigation > should allow j and k characters to be typed in search without triggering navigation 548ms
|
||
✓ SettingsDialog > Settings Navigation > wraps around when at the top of the list 489ms
|
||
✓ SettingsDialog > Settings Toggling > should toggle setting with Enter key 257ms
|
||
✓ SettingsDialog > Settings Toggling > enum values > 'toggles to next value' 315ms
|
||
✓ SettingsDialog > Settings Toggling > enum values > 'loops back to first value when at end' 165ms
|
||
✓ SettingsDialog > Settings Toggling > should handle vim mode setting specially 413ms
|
||
✓ SettingsDialog > Scope Selection > should switch between scopes 147ms
|
||
✓ SettingsDialog > Scope Selection > should reset to settings focus when scope is selected 170ms
|
||
✓ SettingsDialog > Restart Prompt > should show restart prompt for restart-required settings 260ms
|
||
✓ SettingsDialog > Restart Prompt > should handle restart request when r is pressed 432ms
|
||
✓ SettingsDialog > Escape Key Behavior > should call onSelect with undefined when Escape is pressed 194ms
|
||
✓ SettingsDialog > Settings Persistence > should persist settings across scope changes 451ms
|
||
✓ SettingsDialog > Settings Persistence > should show different values for different scopes 188ms
|
||
✓ SettingsDialog > Complex State Management > should track modified settings correctly 643ms
|
||
✓ SettingsDialog > Complex State Management > should handle scrolling when there are many settings 150ms
|
||
✓ SettingsDialog > Specific Settings Behavior > should show correct display values for settings with different states 186ms
|
||
✓ SettingsDialog > Specific Settings Behavior > should handle immediate settings save for non-restart-required settings 341ms
|
||
✓ SettingsDialog > Specific Settings Behavior > should show restart prompt for restart-required settings 156ms
|
||
✓ SettingsDialog > Specific Settings Behavior > should clear restart prompt when switching scopes 211ms
|
||
✓ SettingsDialog > Settings Display Values > should show correct values for inherited settings 407ms
|
||
✓ SettingsDialog > Settings Display Values > should show override indicator for overridden settings 131ms
|
||
✓ SettingsDialog > Race Condition Regression Tests > should 'not reset sibling settings when toggl…' 287ms
|
||
✓ SettingsDialog > Race Condition Regression Tests > should 'preserve multiple sibling settings in…' 295ms
|
||
✓ SettingsDialog > Keyboard Shortcuts Edge Cases > should handle rapid key presses gracefully 161ms
|
||
✓ SettingsDialog > Keyboard Shortcuts Edge Cases > should handle 'Ctrl+C' to reset current setting to default 264ms
|
||
✓ SettingsDialog > Keyboard Shortcuts Edge Cases > should handle 'Ctrl+L' to reset current setting to default 505ms
|
||
✓ SettingsDialog > Keyboard Shortcuts Edge Cases > should handle navigation when only one setting exists 269ms
|
||
✓ SettingsDialog > Keyboard Shortcuts Edge Cases > should properly handle Tab navigation between sections 137ms
|
||
✓ SettingsDialog > Error Recovery > should handle malformed settings gracefully 283ms
|
||
✓ SettingsDialog > Error Recovery > should handle missing setting definitions gracefully 141ms
|
||
✓ SettingsDialog > Complex User Interactions > should handle complete user workflow: navigate, toggle, change scope, exit 369ms
|
||
✓ SettingsDialog > Complex User Interactions > should allow changing multiple settings without losing pending changes 613ms
|
||
✓ SettingsDialog > Complex User Interactions > should maintain state consistency during complex interactions 794ms
|
||
✓ SettingsDialog > Complex User Interactions > should handle restart workflow correctly 664ms
|
||
✓ SettingsDialog > Restart and Search Conflict Regression > should prioritize restart request over search text box when showRestartPrompt is true 563ms
|
||
✓ SettingsDialog > Restart and Search Conflict Regression > should hide search box when showRestartPrompt is true 328ms
|
||
✓ SettingsDialog > String Settings Editing > should allow editing and committing a string setting 850ms
|
||
✓ SettingsDialog > Array Settings Editing > should parse comma-separated input as string arrays 1030ms
|
||
✓ SettingsDialog > Array Settings Editing > should parse JSON array input for allowedExtensions 2038ms
|
||
✓ SettingsDialog > Search Functionality > should display text entered in search 371ms
|
||
✓ SettingsDialog > Search Functionality > should show search query and filter settings as user types 471ms
|
||
✓ SettingsDialog > Search Functionality > should exit search settings when Escape is pressed 348ms
|
||
✓ SettingsDialog > Search Functionality > should handle backspace to modify search query 1026ms
|
||
✓ SettingsDialog > Search Functionality > should display nothing when search yields no results 753ms
|
||
✓ SettingsDialog > Snapshot Tests > should render 'default state' correctly 672ms
|
||
✓ SettingsDialog > Snapshot Tests > should render 'various boolean settings enabled' correctly 644ms
|
||
✓ SettingsDialog > Snapshot Tests > should render 'mixed boolean and number settings' correctly 289ms
|
||
× SettingsDialog > Snapshot Tests > should render 'focused on scope selector' correctly 383ms
|
||
→ Snapshot `SettingsDialog > Snapshot Tests > should render 'focused on scope selector' correctly 1` mismatched
|
||
✓ SettingsDialog > Snapshot Tests > should render 'accessibility settings enabled' correctly 614ms
|
||
✓ SettingsDialog > Snapshot Tests > should render 'file filtering settings configured' correctly 432ms
|
||
✓ SettingsDialog > Snapshot Tests > should render 'tools and security settings' correctly 390ms
|
||
✓ SettingsDialog > Snapshot Tests > should render 'all boolean settings disabled' correctly 302ms
|
||
[?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 ✓ src/ui/components/ExitPlanModeDialog.test.tsx (28 tests) 17518ms
|
||
✓ ExitPlanModeDialog > useAlternateBuffer: true > renders correctly with plan content 694ms
|
||
✓ ExitPlanModeDialog > useAlternateBuffer: true > calls onApprove with AUTO_EDIT when first option is selected 526ms
|
||
✓ ExitPlanModeDialog > useAlternateBuffer: true > calls onApprove with DEFAULT when second option is selected 551ms
|
||
✓ ExitPlanModeDialog > useAlternateBuffer: true > calls onFeedback when feedback is typed and submitted 1406ms
|
||
✓ ExitPlanModeDialog > useAlternateBuffer: true > clears feedback text when Ctrl+C is pressed while editing 1482ms
|
||
✓ ExitPlanModeDialog > useAlternateBuffer: true > bubbles up Ctrl+C when feedback is empty while editing 1014ms
|
||
✓ ExitPlanModeDialog > useAlternateBuffer: true > allows arrow navigation while typing feedback to change selection 807ms
|
||
✓ ExitPlanModeDialog > useAlternateBuffer: true > automatically submits feedback when Ctrl+G is used to edit the plan 761ms
|
||
✓ ExitPlanModeDialog > useAlternateBuffer: false > calls onApprove with AUTO_EDIT when first option is selected 387ms
|
||
✓ ExitPlanModeDialog > useAlternateBuffer: false > calls onApprove with DEFAULT when second option is selected 946ms
|
||
✓ ExitPlanModeDialog > useAlternateBuffer: false > calls onFeedback when feedback is typed and submitted 1404ms
|
||
✓ ExitPlanModeDialog > useAlternateBuffer: false > handles long plan content appropriately 316ms
|
||
✓ ExitPlanModeDialog > useAlternateBuffer: false > allows number key quick selection 356ms
|
||
✓ ExitPlanModeDialog > useAlternateBuffer: false > clears feedback text when Ctrl+C is pressed while editing 2083ms
|
||
✓ ExitPlanModeDialog > useAlternateBuffer: false > bubbles up Ctrl+C when feedback is empty while editing 1069ms
|
||
✓ ExitPlanModeDialog > useAlternateBuffer: false > allows arrow navigation while typing feedback to change selection 1243ms
|
||
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/config/config.test.ts (217 tests | 1 skipped) 28716ms
|
||
✓ loadCliConfig > Proxy configuration > should leave proxy to empty by default 458ms
|
||
✓ Approval mode tool exclusion logic > should not exclude interactive tools in interactive mode regardless of approval mode 627ms
|
||
✓ loadCliConfig approval mode > should set DEFAULT approval mode when --approval-mode=default 537ms
|
||
✓ Output format > should accept stream-json as a valid output format 327ms
|
||
✓ loadCliConfig secureModeEnabled > should throw an error if approval-mode=yolo is attempted when secureModeEnabled is true 346ms
|
||
✓ loadCliConfig mcpEnabled > should disable MCP when mcpEnabled is false 412ms
|
||
✓ loadCliConfig mcpEnabled > extension plan settings > should NOT use plan directory from active extension when user has specified one 304ms
|
||
[?2004h ✓ src/ui/AppContainer.test.tsx (107 tests) 22117ms
|
||
✓ AppContainer State Management > State Initialization > handles debug mode state 672ms
|
||
✓ AppContainer State Management > Error Handling > handles config methods that might throw 337ms
|
||
✓ AppContainer State Management > Keyboard Input Handling (CTRL+C / CTRL+D) > CTRL+D > should NOT quit if buffer is not empty 529ms
|
||
✓ AppContainer State Management > Keyboard Input Handling (CTRL+C / CTRL+D) > Focus Handling (Tab / Shift+Tab) > should unfocus shell input on Shift+Tab 305ms
|
||
✓ AppContainer State Management > Keyboard Input Handling (CTRL+C / CTRL+D) > Focus Handling (Tab / Shift+Tab) > should focus background shell on Tab when already visible (not toggle it off) 390ms
|
||
✓ AppContainer State Management > Keyboard Input Handling (CTRL+C / CTRL+D) > Background Shell Toggling (CTRL+B) > should show and focus background shell on Ctrl+B if hidden 341ms
|
||
✓ AppContainer State Management > Shortcuts Help Visibility > dismisses shortcuts help when a registered hotkey is pressed 347ms
|
||
✓ AppContainer State Management > Copy Mode (F9) > 'Alternate Buffer Mode' > should toggle mouse back on when F9 is pressed again 516ms
|
||
✓ AppContainer State Management > Copy Mode (F9) > 'Alternate Buffer Mode' > should have higher priority than other priority listeners when enabled 362ms
|
||
✓ AppContainer State Management > CoreEvents Integration > subscribes to UserFeedback and drains backlog on mount 315ms
|
||
✓ AppContainer State Management > CoreEvents Integration > adds history item when UserFeedback event is received 382ms
|
||
✓ AppContainer State Management > CoreEvents Integration > handles consent request events 338ms
|
||
✓ AppContainer State Management > onCancelSubmit Behavior > restores the prompt when onCancelSubmit is called with shouldRestorePrompt=true (or undefined) 362ms
|
||
✓ AppContainer State Management > onCancelSubmit Behavior > input history is independent from conversation history (survives /clear) 324ms
|
||
✓ AppContainer State Management > Overflow Hint Handling > toggles expansion state and resets the hint timer when Ctrl+O is pressed in Standard Mode 432ms
|
||
✓ AppContainer State Management > Overflow Hint Handling > toggles Ctrl+O multiple times and verifies the hint disappears exactly after the last toggle 793ms
|
||
✓ AppContainer State Management > Permission Handling > shows permission dialog when checkPermissions returns paths 632ms
|
||
✓ AppContainer State Management > Plan Mode Availability > should NOT allow plan mode when streaming 324ms
|
||
[?25h ✓ src/config/extension-manager.test.ts (15 tests) 4498ms
|
||
✓ ExtensionManager > symlink handling > preserves symlinks in installMetadata.source when linking 768ms
|
||
✓ ExtensionManager > symlink handling > works with the new install command logic (preserves symlink but trusts real path) 436ms
|
||
✓ ExtensionManager > symlink handling > enforces allowedExtensions using the real path 379ms
|
||
✓ ExtensionManager > Extension Renaming > should support renaming an extension during update 596ms
|
||
✓ ExtensionManager > Extension Renaming > should carry over enablement status when renaming 540ms
|
||
✓ ExtensionManager > Extension Renaming > should prevent renaming if the new name conflicts with an existing extension 306ms
|
||
✓ ExtensionManager > extension integrity > should store integrity data during installation 404ms
|
||
[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/shared/ScrollableList.test.tsx (7 tests) 4582ms
|
||
✓ ScrollableList Demo Behavior > should scroll to bottom when new items are added and stop when scrolled up 1870ms
|
||
✓ ScrollableList Demo Behavior > should display sticky header when scrolled past the item 381ms
|
||
✓ ScrollableList Demo Behavior > Keyboard Navigation > should handle scroll keys correctly 2017ms
|
||
[?25h ✓ src/config/extension-manager-hydration.test.ts (4 tests) 2397ms
|
||
✓ ExtensionManager hydration > should hydrate skill body with extension settings 835ms
|
||
✓ ExtensionManager hydration > should hydrate agent system prompt with extension settings 492ms
|
||
✓ ExtensionManager hydration > should hydrate hooks with extension settings 484ms
|
||
✓ ExtensionManager hydration > should pick up new settings after restartExtension 583ms
|
||
✓ src/ui/hooks/vim.test.tsx (144 tests) 8392ms
|
||
[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h(node:58568) 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:58568) 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[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/shared/text-buffer.test.ts (225 tests) 4610ms
|
||
✓ useTextBuffer > Input Sanitization > should sanitize large text (>5000 chars) and strip unsafe characters 489ms
|
||
✓ useTextBuffer > Input Sanitization > should sanitize large ANSI text (>5000 chars) and strip escape codes 538ms
|
||
[?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[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useGeminiStream.test.tsx (79 tests) 5480ms
|
||
[?25h[?2004h(node:58573) 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:58573) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 memory-changed listeners added to [CoreEventEmitter]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
|
||
✓ src/ui/components/FooterConfigDialog.test.tsx (8 tests) 6794ms
|
||
✓ <FooterConfigDialog /> > renders correctly with default settings 622ms
|
||
✓ <FooterConfigDialog /> > toggles an item when enter is pressed 630ms
|
||
✓ <FooterConfigDialog /> > reorders items with arrow keys 324ms
|
||
✓ <FooterConfigDialog /> > highlights the active item in the preview 1256ms
|
||
✓ <FooterConfigDialog /> > shows an empty preview when all items are deselected 1331ms
|
||
✓ <FooterConfigDialog /> > updates the preview when Show footer labels is toggled off 2068ms
|
||
✓ src/ui/components/SkillInboxDialog.test.tsx (11 tests) 3497ms
|
||
✓ SkillInboxDialog > disables the project destination when the workspace is untrusted 1016ms
|
||
✓ SkillInboxDialog > patch support > shows patches alongside skills with section headers 453ms
|
||
✓ SkillInboxDialog > patch support > shows diff preview when a patch is selected 460ms
|
||
[?25h[?25h[?1006l[?1002l[?2004h[?1006l[?1002l[?1006l[?1002l[?2004h ✓ src/config/extension-manager-agents.test.ts (2 tests) 1349ms
|
||
✓ ExtensionManager agents loading > should load agents from an extension 874ms
|
||
✓ ExtensionManager agents loading > should log errors but continue if an agent fails to load 473ms
|
||
[?1006l[?1002l ✓ src/test-utils/AppRig.test.tsx (2 tests) 5448ms
|
||
✓ AppRig > should handle deterministic tool turns with breakpoints 4044ms
|
||
✓ AppRig > should render the app and handle a simple message 1401ms
|
||
[?25h[?1006l[?1002l[?2004h ✓ src/config/extension-manager-skills.test.ts (3 tests) 3077ms
|
||
✓ ExtensionManager skills validation > should emit a warning during install if skills directory is not empty but no skills are loaded 882ms
|
||
✓ ExtensionManager skills validation > should emit a warning during load if skills directory is not empty but no skills are loaded 670ms
|
||
✓ ExtensionManager skills validation > should succeed if skills are correctly loaded 1522ms
|
||
[?1006l[?1002l ✓ src/integration-tests/modelSteering.test.tsx (1 test) 6992ms
|
||
✓ Model Steering Integration > should steer the model using a hint during a tool turn 6989ms
|
||
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useExecutionLifecycle.test.tsx (36 tests) 4157ms
|
||
✓ useExecutionLifecycle > should initiate command execution and set pending state 387ms
|
||
✓ useExecutionLifecycle > UI Streaming and Throttling > should show binary progress messages correctly 431ms
|
||
✓ useExecutionLifecycle > Background Shell Management > should hide background shell when waiting for confirmation and restore after delay 529ms
|
||
✓ useExecutionLifecycle > Background Shell Management > should auto-hide background shell when foreground shell starts and restore when it ends 444ms
|
||
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h(node:58696) 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:58696) 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/ui/components/messages/DenseToolMessage.test.tsx (25 tests) 6140ms
|
||
✓ DenseToolMessage > explicitly renders the filename in the header for FileDiff results 969ms
|
||
✓ DenseToolMessage > renders correctly for file diff results with stats 313ms
|
||
✓ DenseToolMessage > renders correctly for Edit tool using confirmationDetails 1633ms
|
||
✓ DenseToolMessage > Toggleable Diff View (Alternate Buffer) > shows diff content when expanded via ToolActionsContext 321ms
|
||
[?25h[?2004h[?2004h ❯ src/ui/components/ThemeDialog.test.tsx (10 tests | 1 failed) 8023ms
|
||
✓ ThemeDialog Snapshots > should render correctly in theme selection mode (isDevelopment: true) 4186ms
|
||
✓ ThemeDialog Snapshots > should render correctly in theme selection mode (isDevelopment: false) 646ms
|
||
× ThemeDialog Snapshots > should render correctly in scope selector mode 506ms
|
||
→ Snapshot `ThemeDialog Snapshots > should render correctly in scope selector mode 1` mismatched
|
||
✓ ThemeDialog Snapshots > should call onCancel when ESC is pressed 449ms
|
||
✓ ThemeDialog Snapshots > should call onSelect when a theme is selected 427ms
|
||
✓ Initial Theme Selection > should default to a light theme when terminal background is light and no theme is set 255ms
|
||
✓ Initial Theme Selection > should default to a dark theme when terminal background is dark and no theme is set 517ms
|
||
✓ Initial Theme Selection > should use the theme from settings even if terminal background suggests a different theme type 303ms
|
||
✓ Hint Visibility > should show hint when theme background matches terminal background 357ms
|
||
✓ Hint Visibility > should not show hint when theme background does not match terminal background 366ms
|
||
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h(node:58844) 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:58844) 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 ✓ src/ui/components/messages/DiffRenderer.test.tsx (26 tests) 7662ms
|
||
✓ <OverflowProvider><DiffRenderer /></OverflowProvider> > with useAlternateBuffer = true > should call colorizeCode with correct language for new file with known extension 783ms
|
||
✓ <OverflowProvider><DiffRenderer /></OverflowProvider> > with useAlternateBuffer = true > should call colorizeCode with null language for new file with unknown extension 2577ms
|
||
✓ <OverflowProvider><DiffRenderer /></OverflowProvider> > with useAlternateBuffer = true > should correctly render a diff with multiple hunks and a gap indicator > with terminalWidth 80 and height 6 393ms
|
||
✓ <OverflowProvider><DiffRenderer /></OverflowProvider> > with useAlternateBuffer = false > should correctly render a diff with multiple hunks and a gap indicator > with terminalWidth 80 and height 6 325ms
|
||
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h(node:58892) 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:58892) 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 ❯ src/ui/components/messages/ToolConfirmationMessage.test.tsx (27 tests | 1 failed) 6898ms
|
||
✓ ToolConfirmationMessage > should not display urls if prompt and url are the same 794ms
|
||
✓ ToolConfirmationMessage > should display urls if prompt and url are different 442ms
|
||
✓ ToolConfirmationMessage > should display WarningMessage for deceptive URLs in info type 228ms
|
||
✓ ToolConfirmationMessage > should display WarningMessage for deceptive URLs in exec type commands 208ms
|
||
✓ ToolConfirmationMessage > should exclude shell delimiters from extracted URLs in exec type commands 182ms
|
||
✓ ToolConfirmationMessage > should aggregate multiple deceptive URLs into a single WarningMessage 237ms
|
||
✓ ToolConfirmationMessage > should display multiple commands for exec type when provided 124ms
|
||
✓ ToolConfirmationMessage > should render multiline shell scripts with correct newlines and syntax highlighting 265ms
|
||
✓ ToolConfirmationMessage > with folder trust > 'for edit confirmations' > should show "allow always" when folder is trusted 126ms
|
||
✓ ToolConfirmationMessage > with folder trust > 'for edit confirmations' > should NOT show "allow always" when folder is untrusted 183ms
|
||
✓ ToolConfirmationMessage > with folder trust > 'for exec confirmations' > should show "allow always" when folder is trusted 66ms
|
||
✓ ToolConfirmationMessage > with folder trust > 'for exec confirmations' > should NOT show "allow always" when folder is untrusted 236ms
|
||
✓ ToolConfirmationMessage > with folder trust > 'for info confirmations' > should show "allow always" when folder is trusted 79ms
|
||
✓ ToolConfirmationMessage > with folder trust > 'for info confirmations' > should NOT show "allow always" when folder is untrusted 111ms
|
||
✓ ToolConfirmationMessage > with folder trust > 'for mcp confirmations' > should show "allow always" when folder is trusted 78ms
|
||
✓ ToolConfirmationMessage > with folder trust > 'for mcp confirmations' > should NOT show "allow always" when folder is untrusted 55ms
|
||
✓ ToolConfirmationMessage > enablePermanentToolApproval setting > should NOT show "Allow for all future sessions" when setting is false (default) 32ms
|
||
✓ ToolConfirmationMessage > enablePermanentToolApproval setting > should show "Allow for all future sessions" when trusted 43ms
|
||
✓ ToolConfirmationMessage > Modify with external editor option > should show "Modify with external editor" when NOT in IDE mode 266ms
|
||
✓ ToolConfirmationMessage > Modify with external editor option > should show "Modify with external editor" when in IDE mode but diffing is NOT enabled 252ms
|
||
✓ ToolConfirmationMessage > Modify with external editor option > should NOT show "Modify with external editor" when in IDE mode AND diffing is enabled 82ms
|
||
✓ ToolConfirmationMessage > should strip BiDi characters from MCP tool and server names 215ms
|
||
✓ ToolConfirmationMessage > should show MCP tool details expand hint for MCP confirmations 108ms
|
||
✓ ToolConfirmationMessage > should omit empty MCP invocation arguments from details 293ms
|
||
× ToolConfirmationMessage > height allocation and layout > should expand to available height for large exec commands 859ms
|
||
→ Snapshot `ToolConfirmationMessage > height allocation and layout > should expand to available height for large exec commands 1` mismatched
|
||
✓ ToolConfirmationMessage > height allocation and layout > should expand to available height for large edit diffs 1088ms
|
||
✓ ToolConfirmationMessage > ESCAPE key behavior > should call confirm(Cancel) asynchronously via useEffect when ESC is pressed 220ms
|
||
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/components/shared/performance.test.ts (3 tests | 1 failed) 7520ms
|
||
✓ text-buffer performance > should handle pasting large amounts of text efficiently 679ms
|
||
× text-buffer performance > should handle character-by-character insertion in a large buffer efficiently 6833ms
|
||
→ expected 6227 to be less than 5000
|
||
✓ text-buffer performance > should highlight many lines efficiently 6ms
|
||
[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/Composer.test.tsx (58 tests) 8794ms
|
||
✓ Composer > Footer Display Settings > renders Footer by default when hideFooter is false 560ms
|
||
✓ Composer > Loading Indicator > renders LoadingIndicator with thought when streaming 373ms
|
||
✓ Composer > Loading Indicator > renders LoadingIndicator when embedded shell is focused but background shell is visible 589ms
|
||
✓ Composer > Context and Status Display > shows StatusDisplay and ApprovalModeIndicator in normal state 313ms
|
||
✓ Composer > Input and Indicators > does not render InputPrompt when input is inactive 424ms
|
||
✓ Composer > Input and Indicators > shows ApprovalModeIndicator when approval mode is autoEdit and shell mode is inactive 319ms
|
||
✓ Composer > Input and Indicators > shows ShellModeIndicator when shell mode is active 353ms
|
||
✓ Composer > Input and Indicators > shows minimal mode badge "'yolo'" when clean UI details are hidden 529ms
|
||
✓ Composer > Error Details Display > shows DetailedMessagesDisplay when showErrorDetails is true 338ms
|
||
[?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 ✓ src/ui/components/messages/ToolGroupMessage.test.tsx (38 tests) 4717ms
|
||
✓ <ToolGroupMessage /> > Golden Snapshots > renders single successful tool call 918ms
|
||
[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h(node:58945) 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:58945) 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(node:58948) 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:58948) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 memory-changed listeners added to [CoreEventEmitter]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
|
||
[?2004h[?2004h ✓ src/ui/components/AgentConfigDialog.test.tsx (12 tests) 4929ms
|
||
✓ AgentConfigDialog > rendering > should render the dialog with title 1042ms
|
||
✓ AgentConfigDialog > rendering > should render all configuration fields 300ms
|
||
✓ AgentConfigDialog > rendering > should render help text 311ms
|
||
✓ AgentConfigDialog > keyboard navigation > should close dialog on Escape 415ms
|
||
✓ AgentConfigDialog > keyboard navigation > should navigate down with arrow key 307ms
|
||
✓ AgentConfigDialog > keyboard navigation > should switch focus with Tab 654ms
|
||
✓ AgentConfigDialog > boolean toggle > should toggle enabled field on Enter 389ms
|
||
✓ AgentConfigDialog > default values > should show values from agent definition as defaults 396ms
|
||
✓ AgentConfigDialog > existing overrides > should show existing override values with * indicator 347ms
|
||
✓ AgentConfigDialog > existing overrides > should respond to availableTerminalHeight and truncate list 314ms
|
||
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/HistoryItemDisplay.test.tsx (24 tests) 6087ms
|
||
✓ <HistoryItemDisplay /> > renders UserMessage for "user" type 690ms
|
||
✓ <HistoryItemDisplay /> > gemini items (alternateBuffer=true) > should render a truncated gemini item 673ms
|
||
✓ <HistoryItemDisplay /> > gemini items (alternateBuffer=true) > should render a full gemini item when using availableTerminalHeightGemini 389ms
|
||
✓ <HistoryItemDisplay /> > gemini items (alternateBuffer=true) > should render a full gemini_content item when using availableTerminalHeightGemini 471ms
|
||
✓ <HistoryItemDisplay /> > gemini items (alternateBuffer=false) > should render a full gemini item when using availableTerminalHeightGemini 511ms
|
||
✓ <HistoryItemDisplay /> > gemini items (alternateBuffer=false) > should render a truncated gemini_content item 643ms
|
||
✓ <HistoryItemDisplay /> > gemini items (alternateBuffer=false) > should render a full gemini_content item when using availableTerminalHeightGemini 438ms
|
||
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h(node:58965) 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:58965) 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 ✓ src/ui/utils/MarkdownDisplay.test.tsx (30 tests) 5212ms
|
||
✓ <MarkdownDisplay /> > with 'Windows' line endings > renders headers with correct levels 326ms
|
||
✓ <MarkdownDisplay /> > with 'Windows' line endings > renders a fenced code block without a language 1236ms
|
||
✓ <MarkdownDisplay /> > with 'Windows' line endings > correctly parses a mix of markdown elements 430ms
|
||
[?25h ✓ src/ui/hooks/useAtCompletion.test.ts (18 tests) 2070ms
|
||
✓ useAtCompletion > File Search Logic > should perform a recursive search for an empty pattern 539ms
|
||
[?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(node:58990) 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:58990) 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 ✓ src/ui/components/messages/ShellToolMessage.test.tsx (16 tests) 4467ms
|
||
✓ <ShellToolMessage /> > interactive shell focus > clicks inside the shell area sets focus for SHELL_COMMAND_NAME 632ms
|
||
✓ <ShellToolMessage /> > Height Constraints > respects availableTerminalHeight when it is smaller than ACTIVE_SHELL_MAX_LINES 303ms
|
||
✓ <ShellToolMessage /> > Height Constraints > uses full availableTerminalHeight when focused in alternate buffer mode 610ms
|
||
✓ <ShellToolMessage /> > Height Constraints > fully expands in standard mode when availableTerminalHeight is undefined 436ms
|
||
✓ <ShellToolMessage /> > Height Constraints > fully expands in alternate buffer mode when constrainHeight is false and isExpandable is true 664ms
|
||
✓ src/ui/components/messages/ToolResultDisplay.test.tsx (14 tests) 3008ms
|
||
✓ ToolResultDisplay > uses ScrollableList for ANSI output in alternate buffer mode 541ms
|
||
✓ ToolResultDisplay > truncates very long string results 371ms
|
||
✓ ToolResultDisplay > stays scrolled to the bottom when lines are incrementally added 680ms
|
||
[?25h[?25h[?2004h[?2004h[?2004h(node:59001) 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:59001) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 memory-changed listeners added to [CoreEventEmitter]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
|
||
[?2004h[?2004h ✓ src/ui/hooks/slashCommandProcessor.test.tsx (33 tests) 2066ms
|
||
✓ useSlashCommandProcessor > Console Clear Safety > should not call console.clear if alternate buffer is active 315ms
|
||
[?25h[?2004h[?2004h[?2004h ✓ src/ui/components/RewindViewer.test.tsx (15 tests) 4212ms
|
||
✓ RewindViewer > Screen Reader Accessibility > renders the rewind viewer with conversation items 484ms
|
||
✓ RewindViewer > Navigation > handles 'up' navigation 343ms
|
||
✓ RewindViewer > Navigation > handles cyclic navigation 303ms
|
||
✓ RewindViewer > Interaction Selection > 'confirms on Enter' 496ms
|
||
✓ RewindViewer > Interaction Selection > 'cancels on Escape' 302ms
|
||
✓ RewindViewer > Content Filtering > 'removes reference markers' 320ms
|
||
✓ RewindViewer > Content Filtering > 'uses displayContent if present and do…' 324ms
|
||
✓ RewindViewer > updates content when conversation changes (background update) 310ms
|
||
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h(node:59009) 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:59009) 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 ✓ src/ui/components/messages/ToolMessage.test.tsx (25 tests) 3465ms
|
||
✓ <ToolMessage /> > renders basic tool information 710ms
|
||
✓ <ToolMessage /> > JSON rendering > pretty printing 10kb JSON completes in <50ms 543ms
|
||
[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h(node:59021) 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:59021) 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 ✓ src/ui/components/shared/SearchableList.test.tsx (8 tests) 3634ms
|
||
✓ SearchableList > should render all items initially 1150ms
|
||
✓ SearchableList > should reset selection to top when items change if resetSelectionOnItemsChange is true 707ms
|
||
✓ SearchableList > should filter items based on search query 509ms
|
||
✓ SearchableList > should show "No items found." when no items match 434ms
|
||
✓ SearchableList > should handle close with Esc 349ms
|
||
[?25h[?2004h |