项目文件夹

文件
2026-07-13 12:22:50 +08:00

77 行
2.8 KiB
TypeScript

import {makeAutoObservable, observable} from 'mobx';
import {ServerConfig} from '../../src/utils/types';
import {ReasoningCapability} from '../../src/utils/reasoningCapability';
import {RemoteModelInfo} from '../../src/api/openai';
class MockServerStore {
servers: ServerConfig[] = [];
serverModels: Map<string, RemoteModelInfo[]> = observable.map();
userSelectedModels: Array<{serverId: string; remoteModelId: string}> = [];
remoteReasoning: Record<string, ReasoningCapability> = {};
isLoading = false;
error: string | null = null;
privacyNoticeAcknowledged = false;
addServer: jest.Mock;
updateServer: jest.Mock;
removeServer: jest.Mock;
setApiKey: jest.Mock;
getApiKey: jest.Mock;
removeApiKey: jest.Mock;
fetchModelsForServer: jest.Mock;
fetchAllRemoteModels: jest.Mock;
testServerConnection: jest.Mock;
acknowledgePrivacyNotice: jest.Mock;
addUserSelectedModel: jest.Mock;
removeUserSelectedModel: jest.Mock;
removeServerIfOrphaned: jest.Mock;
getModelsNotYetAdded: jest.Mock;
getUserSelectedModelsForServer: jest.Mock;
recordRemoteReasoningObserved: jest.Mock;
setRemoteReasoningOverride: jest.Mock;
constructor() {
makeAutoObservable(this, {
addServer: false,
updateServer: false,
removeServer: false,
setApiKey: false,
getApiKey: false,
removeApiKey: false,
fetchModelsForServer: false,
fetchAllRemoteModels: false,
testServerConnection: false,
acknowledgePrivacyNotice: false,
addUserSelectedModel: false,
removeUserSelectedModel: false,
removeServerIfOrphaned: false,
getModelsNotYetAdded: false,
getUserSelectedModelsForServer: false,
recordRemoteReasoningObserved: false,
setRemoteReasoningOverride: false,
});
this.addServer = jest.fn().mockReturnValue('mock-server-id');
this.updateServer = jest.fn();
this.removeServer = jest.fn();
this.setApiKey = jest.fn().mockResolvedValue(undefined);
this.getApiKey = jest.fn().mockResolvedValue(undefined);
this.removeApiKey = jest.fn().mockResolvedValue(undefined);
this.fetchModelsForServer = jest.fn().mockResolvedValue(undefined);
this.fetchAllRemoteModels = jest.fn().mockResolvedValue(undefined);
this.testServerConnection = jest
.fn()
.mockResolvedValue({ok: true, modelCount: 3});
this.acknowledgePrivacyNotice = jest.fn();
this.addUserSelectedModel = jest.fn();
this.removeUserSelectedModel = jest.fn();
this.removeServerIfOrphaned = jest.fn();
this.getModelsNotYetAdded = jest.fn().mockReturnValue([]);
this.getUserSelectedModelsForServer = jest.fn().mockReturnValue([]);
this.recordRemoteReasoningObserved = jest.fn();
this.setRemoteReasoningOverride = jest.fn();
}
}
export const mockServerStore = new MockServerStore();