feat(ui): Put "Allow for all future sessions" behind a setting off by default. (#15322)

This commit is contained in:
Jacob Richman
2025-12-19 09:25:23 -08:00
committed by GitHub
parent 2e229d3bb6
commit 419464a8c2
8 changed files with 216 additions and 39 deletions
@@ -10,7 +10,10 @@ import type {
ToolCallConfirmationDetails,
Config,
} from '@google/gemini-cli-core';
import { renderWithProviders } from '../../../test-utils/render.js';
import {
renderWithProviders,
createMockSettings,
} from '../../../test-utils/render.js';
describe('ToolConfirmationMessage', () => {
const mockConfig = {
@@ -159,4 +162,63 @@ describe('ToolConfirmationMessage', () => {
});
});
});
describe('enablePermanentToolApproval setting', () => {
const editConfirmationDetails: ToolCallConfirmationDetails = {
type: 'edit',
title: 'Confirm Edit',
fileName: 'test.txt',
filePath: '/test.txt',
fileDiff: '...diff...',
originalContent: 'a',
newContent: 'b',
onConfirm: vi.fn(),
};
it('should NOT show "Allow for all future sessions" when setting is false (default)', () => {
const mockConfig = {
isTrustedFolder: () => true,
getIdeMode: () => false,
} as unknown as Config;
const { lastFrame } = renderWithProviders(
<ToolConfirmationMessage
confirmationDetails={editConfirmationDetails}
config={mockConfig}
availableTerminalHeight={30}
terminalWidth={80}
/>,
{
settings: createMockSettings({
security: { enablePermanentToolApproval: false },
}),
},
);
expect(lastFrame()).not.toContain('Allow for all future sessions');
});
it('should show "Allow for all future sessions" when setting is true', () => {
const mockConfig = {
isTrustedFolder: () => true,
getIdeMode: () => false,
} as unknown as Config;
const { lastFrame } = renderWithProviders(
<ToolConfirmationMessage
confirmationDetails={editConfirmationDetails}
config={mockConfig}
availableTerminalHeight={30}
terminalWidth={80}
/>,
{
settings: createMockSettings({
security: { enablePermanentToolApproval: true },
}),
},
);
expect(lastFrame()).toContain('Allow for all future sessions');
});
});
});