mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-05-12 21:03:05 -07:00
Fix privacy screen for legacy tier users (#14522)
This commit is contained in:
committed by
GitHub
parent
5f60281d25
commit
ae8694b303
@@ -7,11 +7,7 @@
|
|||||||
import { describe, it, expect, beforeEach, vi } from 'vitest';
|
import { describe, it, expect, beforeEach, vi } from 'vitest';
|
||||||
import { act } from 'react';
|
import { act } from 'react';
|
||||||
import { render } from '../../test-utils/render.js';
|
import { render } from '../../test-utils/render.js';
|
||||||
import type {
|
import type { Config, CodeAssistServer } from '@google/gemini-cli-core';
|
||||||
Config,
|
|
||||||
CodeAssistServer,
|
|
||||||
LoadCodeAssistResponse,
|
|
||||||
} from '@google/gemini-cli-core';
|
|
||||||
import { UserTierId, getCodeAssistServer } from '@google/gemini-cli-core';
|
import { UserTierId, getCodeAssistServer } from '@google/gemini-cli-core';
|
||||||
import { usePrivacySettings } from './usePrivacySettings.js';
|
import { usePrivacySettings } from './usePrivacySettings.js';
|
||||||
import { waitFor } from '../../test-utils/async.js';
|
import { waitFor } from '../../test-utils/async.js';
|
||||||
@@ -65,10 +61,7 @@ describe('usePrivacySettings', () => {
|
|||||||
// Mock paid tier response
|
// Mock paid tier response
|
||||||
vi.mocked(getCodeAssistServer).mockReturnValue({
|
vi.mocked(getCodeAssistServer).mockReturnValue({
|
||||||
projectId: 'test-project-id',
|
projectId: 'test-project-id',
|
||||||
loadCodeAssist: () =>
|
userTier: UserTierId.STANDARD,
|
||||||
({
|
|
||||||
currentTier: { id: UserTierId.STANDARD },
|
|
||||||
}) as unknown as LoadCodeAssistResponse,
|
|
||||||
} as unknown as CodeAssistServer);
|
} as unknown as CodeAssistServer);
|
||||||
|
|
||||||
const { result } = renderPrivacySettingsHook();
|
const { result } = renderPrivacySettingsHook();
|
||||||
@@ -84,10 +77,7 @@ describe('usePrivacySettings', () => {
|
|||||||
|
|
||||||
it('should throw error when CodeAssistServer has no projectId', async () => {
|
it('should throw error when CodeAssistServer has no projectId', async () => {
|
||||||
vi.mocked(getCodeAssistServer).mockReturnValue({
|
vi.mocked(getCodeAssistServer).mockReturnValue({
|
||||||
loadCodeAssist: () =>
|
userTier: UserTierId.FREE,
|
||||||
({
|
|
||||||
currentTier: { id: UserTierId.FREE },
|
|
||||||
}) as unknown as LoadCodeAssistResponse,
|
|
||||||
} as unknown as CodeAssistServer);
|
} as unknown as CodeAssistServer);
|
||||||
|
|
||||||
const { result } = renderPrivacySettingsHook();
|
const { result } = renderPrivacySettingsHook();
|
||||||
@@ -110,10 +100,7 @@ describe('usePrivacySettings', () => {
|
|||||||
setCodeAssistGlobalUserSetting: vi.fn().mockResolvedValue({
|
setCodeAssistGlobalUserSetting: vi.fn().mockResolvedValue({
|
||||||
freeTierDataCollectionOptin: false,
|
freeTierDataCollectionOptin: false,
|
||||||
}),
|
}),
|
||||||
loadCodeAssist: () =>
|
userTier: UserTierId.FREE,
|
||||||
({
|
|
||||||
currentTier: { id: UserTierId.FREE },
|
|
||||||
}) as unknown as LoadCodeAssistResponse,
|
|
||||||
} as unknown as CodeAssistServer;
|
} as unknown as CodeAssistServer;
|
||||||
vi.mocked(getCodeAssistServer).mockReturnValue(mockCodeAssistServer);
|
vi.mocked(getCodeAssistServer).mockReturnValue(mockCodeAssistServer);
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,10 @@ export const usePrivacySettings = (config: Config) => {
|
|||||||
});
|
});
|
||||||
try {
|
try {
|
||||||
const server = getCodeAssistServerOrFail(config);
|
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) {
|
if (tier !== UserTierId.FREE) {
|
||||||
// We don't need to fetch opt-out info since non-free tier
|
// We don't need to fetch opt-out info since non-free tier
|
||||||
// data gathering is already worked out some other way.
|
// data gathering is already worked out some other way.
|
||||||
@@ -94,22 +97,6 @@ function getCodeAssistServerOrFail(config: Config): CodeAssistServer {
|
|||||||
return server;
|
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(
|
async function getRemoteDataCollectionOptIn(
|
||||||
server: CodeAssistServer,
|
server: CodeAssistServer,
|
||||||
): Promise<boolean> {
|
): Promise<boolean> {
|
||||||
|
|||||||
Reference in New Issue
Block a user