Fix privacy screen for legacy tier users (#14522)

This commit is contained in:
Tommaso Sciortino
2025-12-04 13:24:00 -08:00
committed by GitHub
parent 5f60281d25
commit ae8694b303
2 changed files with 8 additions and 34 deletions

View File

@@ -7,11 +7,7 @@
import { describe, it, expect, beforeEach, vi } from 'vitest';
import { act } from 'react';
import { render } from '../../test-utils/render.js';
import type {
Config,
CodeAssistServer,
LoadCodeAssistResponse,
} from '@google/gemini-cli-core';
import type { Config, CodeAssistServer } from '@google/gemini-cli-core';
import { UserTierId, getCodeAssistServer } from '@google/gemini-cli-core';
import { usePrivacySettings } from './usePrivacySettings.js';
import { waitFor } from '../../test-utils/async.js';
@@ -65,10 +61,7 @@ describe('usePrivacySettings', () => {
// Mock paid tier response
vi.mocked(getCodeAssistServer).mockReturnValue({
projectId: 'test-project-id',
loadCodeAssist: () =>
({
currentTier: { id: UserTierId.STANDARD },
}) as unknown as LoadCodeAssistResponse,
userTier: UserTierId.STANDARD,
} as unknown as CodeAssistServer);
const { result } = renderPrivacySettingsHook();
@@ -84,10 +77,7 @@ describe('usePrivacySettings', () => {
it('should throw error when CodeAssistServer has no projectId', async () => {
vi.mocked(getCodeAssistServer).mockReturnValue({
loadCodeAssist: () =>
({
currentTier: { id: UserTierId.FREE },
}) as unknown as LoadCodeAssistResponse,
userTier: UserTierId.FREE,
} as unknown as CodeAssistServer);
const { result } = renderPrivacySettingsHook();
@@ -110,10 +100,7 @@ describe('usePrivacySettings', () => {
setCodeAssistGlobalUserSetting: vi.fn().mockResolvedValue({
freeTierDataCollectionOptin: false,
}),
loadCodeAssist: () =>
({
currentTier: { id: UserTierId.FREE },
}) as unknown as LoadCodeAssistResponse,
userTier: UserTierId.FREE,
} as unknown as CodeAssistServer;
vi.mocked(getCodeAssistServer).mockReturnValue(mockCodeAssistServer);

View File

@@ -31,7 +31,10 @@ export const usePrivacySettings = (config: Config) => {
});
try {
const server = getCodeAssistServerOrFail(config);
const tier = await getTier(server);
const tier = server.userTier;
if (tier === undefined) {
throw new Error('Could not determine user tier.');
}
if (tier !== UserTierId.FREE) {
// We don't need to fetch opt-out info since non-free tier
// data gathering is already worked out some other way.
@@ -94,22 +97,6 @@ function getCodeAssistServerOrFail(config: Config): CodeAssistServer {
return server;
}
async function getTier(server: CodeAssistServer): Promise<UserTierId> {
const loadRes = await server.loadCodeAssist({
cloudaicompanionProject: server.projectId,
metadata: {
ideType: 'IDE_UNSPECIFIED',
platform: 'PLATFORM_UNSPECIFIED',
pluginType: 'GEMINI',
duetProject: server.projectId,
},
});
if (!loadRes.currentTier) {
throw new Error('User does not have a current tier');
}
return loadRes.currentTier.id;
}
async function getRemoteDataCollectionOptIn(
server: CodeAssistServer,
): Promise<boolean> {