mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-15 16:41:11 -07:00
refactor(cli): finalize event-driven transition and remove interaction bridge (#18569)
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
|
||||
import { describe, it, expect } from 'vitest';
|
||||
import type {
|
||||
ToolCallConfirmationDetails,
|
||||
SerializableConfirmationDetails,
|
||||
ToolEditConfirmationDetails,
|
||||
} from '@google/gemini-cli-core';
|
||||
import {
|
||||
@@ -366,13 +366,12 @@ describe('textUtils', () => {
|
||||
|
||||
describe('toolConfirmationDetails case study', () => {
|
||||
it('should sanitize command and rootCommand for exec type', () => {
|
||||
const details: ToolCallConfirmationDetails = {
|
||||
const details: SerializableConfirmationDetails = {
|
||||
title: '\u001b[34mfake-title\u001b[0m',
|
||||
type: 'exec',
|
||||
command: '\u001b[31mmls -l\u001b[0m',
|
||||
rootCommand: '\u001b[32msudo apt-get update\u001b[0m',
|
||||
rootCommands: ['sudo'],
|
||||
onConfirm: async () => {},
|
||||
};
|
||||
|
||||
const sanitized = escapeAnsiCtrlCodes(details);
|
||||
@@ -387,14 +386,13 @@ describe('textUtils', () => {
|
||||
});
|
||||
|
||||
it('should sanitize properties for edit type', () => {
|
||||
const details: ToolCallConfirmationDetails = {
|
||||
const details: SerializableConfirmationDetails = {
|
||||
type: 'edit',
|
||||
title: '\u001b[34mEdit File\u001b[0m',
|
||||
fileName: '\u001b[31mfile.txt\u001b[0m',
|
||||
filePath: '/path/to/\u001b[32mfile.txt\u001b[0m',
|
||||
fileDiff:
|
||||
'diff --git a/file.txt b/file.txt\n--- a/\u001b[33mfile.txt\u001b[0m\n+++ b/file.txt',
|
||||
onConfirm: async () => {},
|
||||
} as unknown as ToolEditConfirmationDetails;
|
||||
|
||||
const sanitized = escapeAnsiCtrlCodes(details);
|
||||
@@ -412,13 +410,12 @@ describe('textUtils', () => {
|
||||
});
|
||||
|
||||
it('should sanitize properties for mcp type', () => {
|
||||
const details: ToolCallConfirmationDetails = {
|
||||
const details: SerializableConfirmationDetails = {
|
||||
type: 'mcp',
|
||||
title: '\u001b[34mCloud Run\u001b[0m',
|
||||
serverName: '\u001b[31mmy-server\u001b[0m',
|
||||
toolName: '\u001b[32mdeploy\u001b[0m',
|
||||
toolDisplayName: '\u001b[33mDeploy Service\u001b[0m',
|
||||
onConfirm: async () => {},
|
||||
};
|
||||
|
||||
const sanitized = escapeAnsiCtrlCodes(details);
|
||||
@@ -434,12 +431,11 @@ describe('textUtils', () => {
|
||||
});
|
||||
|
||||
it('should sanitize properties for info type', () => {
|
||||
const details: ToolCallConfirmationDetails = {
|
||||
const details: SerializableConfirmationDetails = {
|
||||
type: 'info',
|
||||
title: '\u001b[34mWeb Search\u001b[0m',
|
||||
prompt: '\u001b[31mSearch for cats\u001b[0m',
|
||||
urls: ['https://\u001b[32mgoogle.com\u001b[0m'],
|
||||
onConfirm: async () => {},
|
||||
};
|
||||
|
||||
const sanitized = escapeAnsiCtrlCodes(details);
|
||||
@@ -457,12 +453,11 @@ describe('textUtils', () => {
|
||||
});
|
||||
|
||||
it('should not change the object if no sanitization is needed', () => {
|
||||
const details: ToolCallConfirmationDetails = {
|
||||
const details: SerializableConfirmationDetails = {
|
||||
type: 'info',
|
||||
title: 'Web Search',
|
||||
prompt: 'Search for cats',
|
||||
urls: ['https://google.com'],
|
||||
onConfirm: async () => {},
|
||||
};
|
||||
|
||||
const sanitized = escapeAnsiCtrlCodes(details);
|
||||
|
||||
Reference in New Issue
Block a user