Files
clawpanel/tests/hermes-model-sync-runtime.test.js
2026-07-14 23:25:42 -07:00

33 lines
1.3 KiB
JavaScript

import test from 'node:test'
import assert from 'node:assert/strict'
import fs from 'node:fs'
import os from 'node:os'
import path from 'node:path'
import { syncHermesProviderFilesAt } from '../scripts/dev-api.js'
test('Hermes 模型同步仅在事务回读成功后返回 verified', () => {
const home = fs.mkdtempSync(path.join(os.tmpdir(), 'clawpanel-hermes-sync-'))
try {
const oldEnv = 'KEEP=value\n'
const oldConfig = 'model:\n default: old-model\nlogging:\n level: INFO\n'
fs.writeFileSync(path.join(home, '.env'), oldEnv)
fs.writeFileSync(path.join(home, 'config.yaml'), oldConfig)
const result = syncHermesProviderFilesAt(home, {
provider: 'custom',
apiKey: 'sk-test-only',
baseUrl: 'https://example.com/v1',
model: 'gpt-test',
setDefault: true,
})
assert.equal(result.verified, true)
assert.equal(result.providerId, 'custom')
assert.match(fs.readFileSync(path.join(home, '.env'), 'utf8'), /OPENAI_API_KEY=sk-test-only/)
assert.match(fs.readFileSync(path.join(home, 'config.yaml'), 'utf8'), /default: gpt-test/)
assert.equal(fs.readFileSync(path.join(home, '.env.bak'), 'utf8'), oldEnv)
assert.equal(fs.readFileSync(path.join(home, 'config.yaml.bak'), 'utf8'), oldConfig)
} finally {
fs.rmSync(home, { recursive: true, force: true })
}
})