项目文件夹

文件
wehub-resource-sync 98e40dac97
CLI Smoke Test / smoke-test-linux (20) (push) Has been cancelled
CLI Smoke Test / smoke-test-linux (24) (push) Has been cancelled
CLI Smoke Test / smoke-test-windows (20) (push) Has been cancelled
CLI Smoke Test / smoke-test-windows (24) (push) Has been cancelled
Expo App TypeScript typecheck / typecheck (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:40:49 +08:00

88 行
2.6 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import { resolveMessageModeMeta } from './messageMeta';
describe('resolveMessageModeMeta', () => {
it('omits agent mode metadata when nothing was explicitly overridden', () => {
const meta = resolveMessageModeMeta({
permissionMode: null,
modelMode: null,
effortLevel: null,
metadata: { flavor: 'codex' },
} as any);
expect(meta).toEqual({});
});
it('sends explicit per-session overrides', () => {
const meta = resolveMessageModeMeta({
permissionMode: 'read-only',
modelMode: 'gpt-5.4',
effortLevel: 'high',
metadata: { flavor: 'codex' },
} as any);
expect(meta).toEqual({
permissionMode: 'read-only',
model: 'gpt-5.4',
effort: 'high',
});
});
it('sends settings-level overrides when session has no override', () => {
const meta = resolveMessageModeMeta({
permissionMode: null,
modelMode: null,
effortLevel: null,
metadata: { flavor: 'claude' },
} as any, {
agentDefaultOverrides: {
claude: {
permissionMode: 'bypassPermissions',
modelMode: 'opus',
effortLevel: 'medium',
},
},
} as any);
expect(meta).toEqual({
permissionMode: 'bypassPermissions',
model: 'opus',
effort: 'medium',
});
});
it('lets session overrides beat settings-level overrides', () => {
const meta = resolveMessageModeMeta({
permissionMode: 'default',
modelMode: 'gpt-5.4',
effortLevel: 'xhigh',
metadata: { flavor: 'codex' },
} as any, {
agentDefaultOverrides: {
codex: {
permissionMode: 'yolo',
modelMode: 'gpt-5.5',
effortLevel: 'medium',
},
},
} as any);
expect(meta).toEqual({
permissionMode: 'default',
model: 'gpt-5.4',
effort: 'xhigh',
});
});
it('treats an explicit default model as a reset override', () => {
const meta = resolveMessageModeMeta({
permissionMode: null,
modelMode: 'default',
effortLevel: null,
metadata: { flavor: 'claude' },
} as any);
expect(meta).toEqual({ model: null });
});
});