mirror of
https://github.com/qingchencloud/clawpanel.git
synced 2026-08-06 22:24:13 +08:00
33 lines
1.3 KiB
JavaScript
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 })
|
|
}
|
|
})
|