File size: 1,321 Bytes
4e23b01 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | import { mkdtemp, rm } from 'node:fs/promises';
import { tmpdir } from 'node:os';
import { join } from 'node:path';
import { IModelCatalog } from '@moonshot-ai/agent-core-v2';
import type { TestProject } from 'vitest/node';
import { startServer } from '../src/start';
import { fakeModelCatalog } from './helpers/fakeModelCatalog';
import { fixedTokenAuth } from './helpers/fixedAuth';
import { TEST_HOST_IDENTITY } from './helpers/hostIdentity';
export const SHARED_SERVER_TOKEN = 'test-token';
export default async function globalSetup(project: TestProject): Promise<() => Promise<void>> {
process.env['KIMI_CODE_SEARCH_WORKER'] = 'false';
process.env['KIMI_CODE_PERSISTENCE_MINIDB_READMODEL'] = 'false';
const home = await mkdtemp(join(tmpdir(), 'kimi-kap-server-shared-home-'));
const server = await startServer({
hostIdentity: TEST_HOST_IDENTITY,
host: '127.0.0.1',
port: 0,
homeDir: home,
logLevel: 'silent',
authTokenService: fixedTokenAuth(SHARED_SERVER_TOKEN),
seeds: [[IModelCatalog, fakeModelCatalog()]],
});
project.provide('sharedServer', {
base: `http://127.0.0.1:${server.port}`,
token: SHARED_SERVER_TOKEN,
});
return async () => {
await server.close();
await rm(home, { recursive: true, force: true, maxRetries: 5, retryDelay: 50 });
};
}
|