feat(cli): Display user identity (auth, email, tier) on startup (#17591)

Co-authored-by: Keith Guerin <keithguerin@gmail.com>
Co-authored-by: Yuna Seol <yunaseol@google.com>
This commit is contained in:
Yuna Seol
2026-01-29 00:07:52 -05:00
committed by GitHub
parent 6d36219e55
commit 7f066fd3a7
5 changed files with 287 additions and 2 deletions
+31
View File
@@ -24,6 +24,7 @@ import {
import type { ContentGeneratorConfig } from '../core/contentGenerator.js';
import {
AuthType,
createContentGenerator,
createContentGeneratorConfig,
} from '../core/contentGenerator.js';
import { GeminiClient } from '../core/client.js';
@@ -197,6 +198,7 @@ import { getCodeAssistServer } from '../code_assist/codeAssist.js';
import { getExperiments } from '../code_assist/experiments/experiments.js';
import type { CodeAssistServer } from '../code_assist/server.js';
import { ContextManager } from '../services/contextManager.js';
import { UserTierId } from 'src/code_assist/types.js';
vi.mock('../core/baseLlmClient.js');
vi.mock('../core/tokenLimits.js', () => ({
@@ -2061,6 +2063,35 @@ describe('Config Quota & Preview Model Access', () => {
});
});
describe('getUserTier and getUserTierName', () => {
it('should return undefined if contentGenerator is not initialized', () => {
const config = new Config(baseParams);
expect(config.getUserTier()).toBeUndefined();
expect(config.getUserTierName()).toBeUndefined();
});
it('should return values from contentGenerator after refreshAuth', async () => {
const config = new Config(baseParams);
const mockTier = UserTierId.STANDARD;
const mockTierName = 'Standard Tier';
vi.mocked(createContentGeneratorConfig).mockResolvedValue({
authType: AuthType.USE_GEMINI,
} as ContentGeneratorConfig);
vi.mocked(createContentGenerator).mockResolvedValue({
userTier: mockTier,
userTierName: mockTierName,
} as unknown as CodeAssistServer);
await config.refreshAuth(AuthType.USE_GEMINI);
expect(config.getUserTier()).toBe(mockTier);
// TODO(#1275): User tier name is disabled until re-enabled.
expect(config.getUserTierName()).toBeUndefined();
});
});
describe('setPreviewFeatures', () => {
it('should reset model to default auto if disabling preview features while using a preview model', () => {
config.setPreviewFeatures(true);