builder / lib /vfs /__tests__ /pull-connections.test.ts
Leon4gr45's picture
Upload folder using huggingface_hub (part 3)
94193b5 verified
Raw
History Blame Contribute Delete
1.93 kB
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
const pullConnections = vi.fn();
const pushConnection = vi.fn().mockResolvedValue({ success: true });
vi.mock('@/lib/vfs/sync-manager', () => ({
getSyncManager: () => ({ pullConnections, pushConnection }),
}));
const getCustomProviders = vi.fn(() => ({}));
const setCustomProviders = vi.fn();
vi.mock('@/lib/llm/providers/custom-providers', () => ({
getCustomProviders: () => getCustomProviders(),
setCustomProviders: (m: unknown) => setCustomProviders(m),
}));
beforeEach(() => { pullConnections.mockReset(); pushConnection.mockReset(); getCustomProviders.mockReturnValue({}); setCustomProviders.mockReset(); });
afterEach(() => { vi.unstubAllEnvs(); });
describe('pullConnectionsIntoCache', () => {
it('does nothing outside server mode', async () => {
vi.stubEnv('NEXT_PUBLIC_SERVER_MODE', 'false');
const { pullConnectionsIntoCache } = await import('@/lib/vfs/auto-sync');
await pullConnectionsIntoCache();
expect(pullConnections).not.toHaveBeenCalled();
expect(setCustomProviders).not.toHaveBeenCalled();
});
it('writes pulled records into the cache without re-pushing (no pull->push loop)', async () => {
vi.stubEnv('NEXT_PUBLIC_SERVER_MODE', 'true');
pullConnections.mockResolvedValue({ success: true, connections: [
{ id: 'opencode-go', name: 'Opencode Go', baseUrl: 'https://opencode.ai/zen/go/v1', format: 'openai', apiKeyRequired: true },
]});
const { pullConnectionsIntoCache } = await import('@/lib/vfs/auto-sync');
await pullConnectionsIntoCache();
expect(setCustomProviders).toHaveBeenCalledTimes(1);
const written = setCustomProviders.mock.calls[0][0];
expect(written['opencode-go']).toMatchObject({ id: 'opencode-go', baseUrl: 'https://opencode.ai/zen/go/v1' });
expect(pushConnection).not.toHaveBeenCalled(); // crucial: pull must not trigger a push
});
});