This commit is contained in:
Oleg Maslov
2026-09-02 10:14:22 +02:00
parent 0c3e2ead3b
commit b20b138fe4
771 changed files with 161561 additions and 9027 deletions

View File

@@ -169,6 +169,75 @@ describe('WaggleConfig', () => {
});
});
describe('embedding config', () => {
const envNames = [
'EMBEDDING_PROVIDER',
'EMBEDDING_MODEL',
'OLLAMA_HOST',
'OLLAMA_EMBED_MODEL',
] as const;
const originalEnv = new Map<string, string | undefined>();
beforeEach(() => {
originalEnv.clear();
for (const name of envNames) {
originalEnv.set(name, process.env[name]);
delete process.env[name];
}
});
afterEach(() => {
for (const name of envNames) {
const value = originalEnv.get(name);
if (value === undefined) delete process.env[name];
else process.env[name] = value;
}
});
it.each(['', ' '])('treats blank provider override %j as unset', override => {
process.env.EMBEDDING_PROVIDER = override;
const config = new WaggleConfig(makeTempDir());
expect(config.getEmbeddingConfig().provider).toBe('auto');
config.setEmbeddingProvider('inprocess');
expect(config.getEmbeddingConfig().provider).toBe('inprocess');
});
it('trims a valid provider override and keeps it authoritative', () => {
process.env.EMBEDDING_PROVIDER = ' inprocess ';
const config = new WaggleConfig(makeTempDir());
config.setEmbeddingProvider('ollama');
expect(config.getEmbeddingConfig().provider).toBe('inprocess');
});
it('treats blank embedding model and Ollama overrides as unset', () => {
const configDir = makeTempDir();
fs.writeFileSync(path.join(configDir, 'config.json'), JSON.stringify({
defaultModel: 'claude-sonnet-4-6',
providers: {},
embedding: {
provider: 'auto',
inprocessModel: 'persisted-inprocess-model',
ollamaUrl: 'http://127.0.0.1:11434',
ollamaModel: 'persisted-ollama-model',
},
}));
process.env.EMBEDDING_MODEL = ' ';
process.env.OLLAMA_HOST = '';
process.env.OLLAMA_EMBED_MODEL = ' ';
expect(new WaggleConfig(configDir).getEmbeddingConfig()).toMatchObject({
inprocess: { model: 'persisted-inprocess-model' },
ollama: {
baseUrl: 'http://127.0.0.1:11434',
model: 'persisted-ollama-model',
},
});
});
});
describe('Model Pilot config fields', () => {
let tmpDir: string;