mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-05-13 05:12:55 -07:00
fix(auto-update): suppress npx nag for transient installs (#10276)
Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>
This commit is contained in:
@@ -123,6 +123,24 @@ describe('handleAutoUpdate', () => {
|
|||||||
expect(mockSpawn).not.toHaveBeenCalled();
|
expect(mockSpawn).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it.each([
|
||||||
|
PackageManager.NPX,
|
||||||
|
PackageManager.PNPX,
|
||||||
|
PackageManager.BUNX,
|
||||||
|
])('should suppress update notifications when running via %s', (packageManager) => {
|
||||||
|
mockGetInstallationInfo.mockReturnValue({
|
||||||
|
updateCommand: undefined,
|
||||||
|
updateMessage: `Running via ${packageManager}, update not applicable.`,
|
||||||
|
isGlobal: false,
|
||||||
|
packageManager,
|
||||||
|
});
|
||||||
|
|
||||||
|
handleAutoUpdate(mockUpdateInfo, mockSettings, '/root', mockSpawn);
|
||||||
|
|
||||||
|
expect(mockUpdateEventEmitter.emit).not.toHaveBeenCalled();
|
||||||
|
expect(mockSpawn).not.toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
|
||||||
it('should emit "update-received" but not update if no update command is found', () => {
|
it('should emit "update-received" but not update if no update command is found', () => {
|
||||||
mockGetInstallationInfo.mockReturnValue({
|
mockGetInstallationInfo.mockReturnValue({
|
||||||
updateCommand: undefined,
|
updateCommand: undefined,
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
import type { UpdateObject } from '../ui/utils/updateCheck.js';
|
import type { UpdateObject } from '../ui/utils/updateCheck.js';
|
||||||
import type { LoadedSettings } from '../config/settings.js';
|
import type { LoadedSettings } from '../config/settings.js';
|
||||||
import { getInstallationInfo } from './installationInfo.js';
|
import { getInstallationInfo, PackageManager } from './installationInfo.js';
|
||||||
import { updateEventEmitter } from './updateEventEmitter.js';
|
import { updateEventEmitter } from './updateEventEmitter.js';
|
||||||
import type { HistoryItem } from '../ui/types.js';
|
import type { HistoryItem } from '../ui/types.js';
|
||||||
import { MessageType } from '../ui/types.js';
|
import { MessageType } from '../ui/types.js';
|
||||||
@@ -32,6 +32,16 @@ export function handleAutoUpdate(
|
|||||||
settings.merged.general?.disableAutoUpdate ?? false,
|
settings.merged.general?.disableAutoUpdate ?? false,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (
|
||||||
|
[
|
||||||
|
PackageManager.NPX,
|
||||||
|
PackageManager.PNPX,
|
||||||
|
PackageManager.BUNX
|
||||||
|
].includes(installationInfo.packageManager)
|
||||||
|
) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
let combinedMessage = info.message;
|
let combinedMessage = info.message;
|
||||||
if (installationInfo.updateMessage) {
|
if (installationInfo.updateMessage) {
|
||||||
combinedMessage += `\n${installationInfo.updateMessage}`;
|
combinedMessage += `\n${installationInfo.updateMessage}`;
|
||||||
|
|||||||
Reference in New Issue
Block a user