Download packages/klient/test/e2e/legacy/log.ts from SaylorTwift/kimi-code: direct link, hf CLI and curl.
- Browser
- Download file 1.48 kB
-
https://huggingface.co/SaylorTwift/kimi-code/resolve/main/packages/klient/test/e2e/legacy/log.ts
- Command line
-
hf download hf://SaylorTwift/kimi-code/packages/klient/test/e2e/legacy/log.ts
-
curl -L -o log.ts https://huggingface.co/SaylorTwift/kimi-code/resolve/main/packages/klient/test/e2e/legacy/log.ts
1.48 kB
| import { onTestFailed, onTestFinished } from 'vitest'; | |
| import { recordReportEvent, setActiveReportCase } from '../harness/report.js'; | |
| export function createCaseLogger(caseName: string): (label: string, value?: unknown) => void { | |
| setActiveReportCase(caseName); | |
| let failed = false; | |
| onTestFailed((error) => { | |
| failed = true; | |
| recordReportEvent({ | |
| kind: 'test-result', | |
| caseName, | |
| state: 'failed', | |
| error: errorForLog(error), | |
| }); | |
| }); | |
| onTestFinished(() => { | |
| if (failed) return; | |
| recordReportEvent({ | |
| kind: 'test-result', | |
| caseName, | |
| state: 'passed', | |
| }); | |
| }); | |
| return (label, value) => { | |
| recordReportEvent({ kind: 'log', caseName, label, value }); | |
| const prefix = `[server-e2e] ${caseName} :: ${label}`; | |
| if (value === undefined) { | |
| writeLogLine(prefix); | |
| return; | |
| } | |
| writeLogLine(`${prefix}\n${stringifyForLog(value)}`); | |
| }; | |
| } | |
| export function errorForLog(error: unknown): unknown { | |
| if (error instanceof Error) { | |
| return { | |
| name: error.name, | |
| message: error.message, | |
| ...objectFields(error), | |
| }; | |
| } | |
| return error; | |
| } | |
| function objectFields(value: object): Record<string, unknown> { | |
| return Object.fromEntries( | |
| Object.entries(value).filter(([, field]) => field !== undefined), | |
| ); | |
| } | |
| function stringifyForLog(value: unknown): string { | |
| return JSON.stringify(value, null, 2); | |
| } | |
| function writeLogLine(line: string): void { | |
| process.stdout.write(`${line}\n`); | |
| } | |