Files
ccs/tests/unit/targets/droid-reasoning-runtime.test.ts
T

38 lines
1.4 KiB
TypeScript

import { describe, expect, it } from 'bun:test';
import {
DroidReasoningFlagError,
resolveDroidReasoningRuntime,
} from '../../../src/targets/droid-reasoning-runtime';
describe('droid-reasoning-runtime', () => {
it('extracts --thinking and strips CCS reasoning flags from args', () => {
const runtime = resolveDroidReasoningRuntime(['--thinking', 'high', '--verbose'], undefined);
expect(runtime.reasoningOverride).toBe('high');
expect(runtime.sourceFlag).toBe('--thinking');
expect(runtime.argsWithoutReasoningFlags).toEqual(['--verbose']);
});
it('extracts --effort alias and strips inline value', () => {
const runtime = resolveDroidReasoningRuntime(['--effort=xhigh', '--help'], undefined);
expect(runtime.reasoningOverride).toBe('xhigh');
expect(runtime.sourceFlag).toBe('--effort');
expect(runtime.argsWithoutReasoningFlags).toEqual(['--help']);
});
it('uses CCS_THINKING env fallback when no flag is provided', () => {
const runtime = resolveDroidReasoningRuntime(['--verbose'], 'medium');
expect(runtime.reasoningOverride).toBe('medium');
expect(runtime.sourceFlag).toBeUndefined();
expect(runtime.argsWithoutReasoningFlags).toEqual(['--verbose']);
});
it('throws on missing reasoning flag value', () => {
expect(() => resolveDroidReasoningRuntime(['--thinking'], undefined)).toThrow(
DroidReasoningFlagError
);
});
});