Download packages/cli/src/ui/utils/pendingAttentionNotification.test.ts from SaylorTwift/gemini-cli: direct link, hf CLI and curl.
- Browser
- Download file 2.96 kB
-
https://huggingface.co/SaylorTwift/gemini-cli/resolve/main/packages/cli/src/ui/utils/pendingAttentionNotification.test.ts
- Command line
-
hf download hf://SaylorTwift/gemini-cli/packages/cli/src/ui/utils/pendingAttentionNotification.test.ts
-
curl -L -o pendingAttentionNotification.test.ts https://huggingface.co/SaylorTwift/gemini-cli/resolve/main/packages/cli/src/ui/utils/pendingAttentionNotification.test.ts
2.96 kB
| /** | |
| * @license | |
| * Copyright 2026 Google LLC | |
| * SPDX-License-Identifier: Apache-2.0 | |
| */ | |
| import { describe, expect, it } from 'vitest'; | |
| import { CoreToolCallStatus } from '@google/gemini-cli-core'; | |
| import { getPendingAttentionNotification } from './pendingAttentionNotification.js'; | |
| describe('getPendingAttentionNotification', () => { | |
| it('returns tool confirmation notification for awaiting tool approvals', () => { | |
| const notification = getPendingAttentionNotification( | |
| [ | |
| { | |
| type: 'tool_group', | |
| tools: [ | |
| { | |
| callId: 'tool-1', | |
| status: CoreToolCallStatus.AwaitingApproval, | |
| description: 'Run command', | |
| confirmationDetails: { | |
| type: 'exec', | |
| title: 'Run shell command', | |
| command: 'ls', | |
| rootCommand: 'ls', | |
| rootCommands: ['ls'], | |
| }, | |
| }, | |
| ], | |
| } as never, | |
| ], | |
| null, | |
| null, | |
| null, | |
| false, | |
| false, | |
| ); | |
| expect(notification?.key).toBe('tool_confirmation:tool-1'); | |
| expect(notification?.event.type).toBe('attention'); | |
| }); | |
| it('returns ask-user notification for ask_user confirmations', () => { | |
| const notification = getPendingAttentionNotification( | |
| [ | |
| { | |
| type: 'tool_group', | |
| tools: [ | |
| { | |
| callId: 'ask-user-1', | |
| status: CoreToolCallStatus.AwaitingApproval, | |
| description: 'Ask user', | |
| confirmationDetails: { | |
| type: 'ask_user', | |
| questions: [ | |
| { | |
| header: 'Need approval?', | |
| question: 'Proceed?', | |
| options: [], | |
| id: 'q1', | |
| }, | |
| ], | |
| }, | |
| }, | |
| ], | |
| } as never, | |
| ], | |
| null, | |
| null, | |
| null, | |
| false, | |
| false, | |
| ); | |
| expect(notification?.key).toBe('ask_user:ask-user-1'); | |
| expect(notification?.event).toEqual({ | |
| type: 'attention', | |
| heading: 'Answer requested by agent', | |
| detail: 'Need approval?', | |
| }); | |
| }); | |
| it('uses request content in command/auth keys', () => { | |
| const commandNotification = getPendingAttentionNotification( | |
| [], | |
| { | |
| prompt: 'Approve command?', | |
| onConfirm: () => {}, | |
| }, | |
| null, | |
| null, | |
| false, | |
| false, | |
| ); | |
| const authNotification = getPendingAttentionNotification( | |
| [], | |
| null, | |
| { | |
| prompt: 'Authorize sign-in?', | |
| onConfirm: () => {}, | |
| }, | |
| null, | |
| false, | |
| false, | |
| ); | |
| expect(commandNotification?.key).toContain('command_confirmation:'); | |
| expect(commandNotification?.key).toContain('Approve command?'); | |
| expect(authNotification?.key).toContain('auth_consent:'); | |
| expect(authNotification?.key).toContain('Authorize sign-in?'); | |
| }); | |
| }); | |