mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-10-20 09:09:35 +02:00
25 lines
1.0 KiB
TypeScript
25 lines
1.0 KiB
TypeScript
/**
|
|||
|
|
* @fileoverview copilotConfig on the session create body: `model` and `resumeSessionId` follow a flag
|
||
|
|
* (`--model`, `--resume`), so a value that starts with `-` would be read as its own flag and get
|
||
|
|
* around the allowAll clamp. Both need a leading letter or digit.
|
||
|
|
*/
|
||
|
|
|
||
|
|
import { describe, it, expect } from 'vitest';
|
||
|
|
import { CreateSessionSchema } from '../src/web/schemas.js';
|
||
|
|
|
||
|
|
const parse = (copilotConfig: unknown) =>
|
||
|
|
CreateSessionSchema.safeParse({ workingDir: '/tmp', mode: 'copilot', copilotConfig });
|
||
|
|
|
||
|
|
describe('copilotConfig schema', () => {
|
||
|
|
it.each(['--yolo', '-n', '--allow-all-tools', '.hidden', '/etc/passwd'])('rejects model %s', (model) => {
|
||
|
|
expect(parse({ model }).success).toBe(false);
|
||
|
|
});
|
||
|
|
|
||
|
|
it.each(['--yolo', '-n', '--allow-all-tools'])('rejects resumeSessionId %s', (resumeSessionId) => {
|
||
|
|
expect(parse({ resumeSessionId }).success).toBe(false);
|
||
|
|
});
|
||
|
|
|
||
|
|
it.each(['auto', 'claude-sonnet-5.5', 'openai/gpt-5'])('accepts model %s', (model) => {
|
||
|
|
expect(parse({ model }).success).toBe(true);
|
||
|
|
});
|
||
|
|
});
|