mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-09-30 20:49:41 +02:00
46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
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();
|
|
});
|
|
});
|