- Removed OpenAI and related dependencies from package.json and package-lock.json. - Simplified LLM verification logic to focus on OpenCode server. - Updated tests to reflect changes in LLM provider handling. - Added CI and CD workflows for automated processes in Gitea.
52 lines
1.6 KiB
JavaScript
52 lines
1.6 KiB
JavaScript
import { describe, it, beforeEach, afterEach } from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
import { getLLMConfig, getOpenCodeHttpsAgent } from './config.js';
|
|
|
|
const ENV_KEYS = [
|
|
'OPENCODE_BASE_URL', 'OPENCODE_MODEL', 'OPENCODE_PROVIDER',
|
|
];
|
|
|
|
let saved = {};
|
|
beforeEach(() => {
|
|
saved = {};
|
|
for (const k of ENV_KEYS) { saved[k] = process.env[k]; delete process.env[k]; }
|
|
});
|
|
afterEach(() => {
|
|
for (const k of ENV_KEYS) {
|
|
if (saved[k] === undefined) delete process.env[k];
|
|
else process.env[k] = saved[k];
|
|
}
|
|
});
|
|
|
|
describe('getLLMConfig', () => {
|
|
it('returns null provider when no env vars set', () => {
|
|
const cfg = getLLMConfig();
|
|
assert.equal(cfg.provider, null);
|
|
assert.deepEqual(cfg.apiKeys, []);
|
|
});
|
|
|
|
it('detects opencode server with defaults', () => {
|
|
process.env.OPENCODE_BASE_URL = 'http://opencode.local:4096';
|
|
const cfg = getLLMConfig();
|
|
assert.equal(cfg.provider, 'opencode');
|
|
assert.deepEqual(cfg.apiKeys, ['opencode']);
|
|
assert.equal(cfg.baseURL, 'http://opencode.local:4096');
|
|
assert.equal(cfg.model, 'gemini-2.5-flash');
|
|
});
|
|
|
|
it('detects opencode server with custom model', () => {
|
|
process.env.OPENCODE_BASE_URL = 'http://opencode.local:4096';
|
|
process.env.OPENCODE_MODEL = 'google/gemini-2.5-pro';
|
|
const cfg = getLLMConfig();
|
|
assert.equal(cfg.provider, 'opencode');
|
|
assert.equal(cfg.baseURL, 'http://opencode.local:4096');
|
|
assert.equal(cfg.model, 'google/gemini-2.5-pro');
|
|
});
|
|
|
|
it('uses an insecure HTTPS agent for OpenCode', () => {
|
|
const agent = getOpenCodeHttpsAgent();
|
|
assert.equal(agent.options.rejectUnauthorized, false);
|
|
});
|
|
|
|
});
|