mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-10-08 08:29:42 +02:00
feat: add Gemini run mode
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
import { CreateSessionSchema, QuickStartSchema } from '../src/web/schemas.js';
|
||||
|
||||
describe('Gemini mode schemas', () => {
|
||||
it('accepts Gemini session creation config', () => {
|
||||
const parsed = CreateSessionSchema.parse({
|
||||
workingDir: '/tmp',
|
||||
mode: 'gemini',
|
||||
geminiConfig: {
|
||||
model: 'gemini-2.5-pro',
|
||||
approvalMode: 'yolo',
|
||||
},
|
||||
});
|
||||
|
||||
expect(parsed.mode).toBe('gemini');
|
||||
expect(parsed.geminiConfig).toEqual({
|
||||
model: 'gemini-2.5-pro',
|
||||
approvalMode: 'yolo',
|
||||
});
|
||||
});
|
||||
|
||||
it('accepts Gemini quick-start config', () => {
|
||||
const parsed = QuickStartSchema.parse({
|
||||
caseName: 'gemini-case',
|
||||
mode: 'gemini',
|
||||
geminiConfig: {
|
||||
model: 'gemini-2.5-flash',
|
||||
approvalMode: 'auto_edit',
|
||||
},
|
||||
});
|
||||
|
||||
expect(parsed.mode).toBe('gemini');
|
||||
expect(parsed.geminiConfig?.model).toBe('gemini-2.5-flash');
|
||||
});
|
||||
|
||||
it('rejects unsafe Gemini model strings', () => {
|
||||
expect(() =>
|
||||
CreateSessionSchema.parse({
|
||||
workingDir: '/tmp',
|
||||
mode: 'gemini',
|
||||
geminiConfig: { model: 'gemini; rm -rf /' },
|
||||
})
|
||||
).toThrow();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user