mirror of
https://github.com/deepseek-ai/deepseek-harness.git
synced 2026-09-14 04:01:35 +00:00
29 lines
1.2 KiB
TypeScript
29 lines
1.2 KiB
TypeScript
/** Session objects owned by a client test's explicitly started Gateway assembly. */
|
|
import { onTestFinished } from 'vitest'
|
|
import type { RemoteMock } from '@deepseek-ai/dsh-remote-mock'
|
|
import type { TestClient } from '@deepseek-ai/dsh-client-test-runtime/src/assembly/index.ts'
|
|
import type { SessionId } from '@deepseek-ai/dsh-session/types'
|
|
import { Session, type SessionOptions } from '../../src/client/sessions/session.ts'
|
|
import { sessionWorld } from './session.client.ts'
|
|
|
|
/**
|
|
* Create a Session after installing its default Remote responses.
|
|
* @param mock - this case's Remote responses.
|
|
* @param start - the fixture's lazy client startup.
|
|
* @param sessionId - Session identity.
|
|
* @param options - addressed child and parent availability, when applicable.
|
|
* @returns the Session, disposed at the end of the case.
|
|
*/
|
|
export async function sessionBench(
|
|
mock: RemoteMock,
|
|
start: () => Promise<TestClient>,
|
|
sessionId: SessionId,
|
|
options: SessionOptions = {},
|
|
): Promise<Session> {
|
|
mock.load(sessionWorld)
|
|
const client = await start()
|
|
const session = new Session(sessionId, client.ctx.remote, options)
|
|
onTestFinished(() => session.dispose())
|
|
return session
|
|
}
|