import { beforeEach, describe, expect, it, vi } from 'vitest' import { mockDesktopApi } from '../setup' import { useAiProviderStore } from '../../src/stores/aiProviderStore' describe('AI provider store secret boundary', () => { beforeEach(() => { vi.clearAllMocks() useAiProviderStore.setState({ providers: [], activeProviderId: '', isLoaded: true, catalogProviders: [], catalogUpdatedAt: null, }) }) it('saves API keys through Rust and never writes them to normal settings', async () => { const providerId = await useAiProviderStore.getState().addPreset('deepseek') const provider = useAiProviderStore.getState().providers.find((item) => item.id === providerId)! await useAiProviderStore.getState().saveProvider(provider, 'sk-very-secret') expect(mockDesktopApi.aiProviderSaveKey).toHaveBeenCalledWith(providerId, 'sk-very-secret') const settingsPayloads = vi.mocked(mockDesktopApi.settingsSet).mock.calls.map((call) => call[1]) expect(JSON.stringify(settingsPayloads)).not.toContain('sk-very-secret') }) })