refactor(core,cli): useAlternateBuffer read from config (#20346)

Co-authored-by: Jacob Richman <jacob314@gmail.com>
This commit is contained in:
Pyush Sinha
2026-02-27 07:55:02 -08:00
committed by GitHub
parent 25ade7bcb7
commit d7320f5425
15 changed files with 164 additions and 41 deletions

View File

@@ -4,29 +4,11 @@
* SPDX-License-Identifier: Apache-2.0
*/
import { describe, it, expect, vi } from 'vitest';
import { describe, it, expect } from 'vitest';
import { calculateMainAreaWidth } from './ui-sizing.js';
import { type LoadedSettings } from '../../config/settings.js';
// Mock dependencies
const mocks = vi.hoisted(() => ({
isAlternateBufferEnabled: vi.fn(),
}));
vi.mock('../hooks/useAlternateBuffer.js', () => ({
isAlternateBufferEnabled: mocks.isAlternateBufferEnabled,
}));
import type { Config } from '@google/gemini-cli-core';
describe('ui-sizing', () => {
const createSettings = (useFullWidth?: boolean): LoadedSettings =>
({
merged: {
ui: {
useFullWidth,
},
},
}) as unknown as LoadedSettings;
describe('calculateMainAreaWidth', () => {
it.each([
// expected, width, altBuffer
@@ -37,10 +19,10 @@ describe('ui-sizing', () => {
])(
'should return %i when width=%i and altBuffer=%s',
(expected, width, altBuffer) => {
mocks.isAlternateBufferEnabled.mockReturnValue(altBuffer);
const settings = createSettings();
expect(calculateMainAreaWidth(width, settings)).toBe(expected);
const mockConfig = {
getUseAlternateBuffer: () => altBuffer,
} as unknown as Config;
expect(calculateMainAreaWidth(width, mockConfig)).toBe(expected);
},
);
});

View File

@@ -4,14 +4,14 @@
* SPDX-License-Identifier: Apache-2.0
*/
import { type LoadedSettings } from '../../config/settings.js';
import type { Config } from '@google/gemini-cli-core';
import { isAlternateBufferEnabled } from '../hooks/useAlternateBuffer.js';
export const calculateMainAreaWidth = (
terminalWidth: number,
settings: LoadedSettings,
config: Config,
): number => {
if (isAlternateBufferEnabled(settings)) {
if (isAlternateBufferEnabled(config)) {
return terminalWidth - 1;
}
return terminalWidth;