agent-ecosystem/test/shared/utils/providerBackend.test.ts

30 lines
1.5 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import {
formatProviderBackendLabel,
migrateProviderBackendId,
} from '../../../src/shared/utils/providerBackend';
describe('providerBackend utils', () => {
it('does not let Codex backends leak into Anthropic selections', () => {
expect(migrateProviderBackendId('anthropic', 'codex-native')).toBeUndefined();
expect(formatProviderBackendLabel('anthropic', 'codex-native')).toBeUndefined();
});
it('keeps Codex native defaults and legacy backend migration scoped to Codex', () => {
expect(migrateProviderBackendId('codex', undefined)).toBe('codex-native');
expect(migrateProviderBackendId('codex', 'api')).toBe('codex-native');
expect(migrateProviderBackendId('codex', 'adapter')).toBe('codex-native');
expect(migrateProviderBackendId('codex', 'opencode-cli')).toBeUndefined();
});
it('keeps Gemini and OpenCode backend ids provider-specific', () => {
expect(migrateProviderBackendId('gemini', 'api')).toBe('api');
expect(migrateProviderBackendId('gemini', 'cli-sdk')).toBe('cli-sdk');
expect(migrateProviderBackendId('gemini', 'codex-native')).toBeUndefined();
expect(migrateProviderBackendId('opencode', 'opencode-cli')).toBe('opencode-cli');
expect(migrateProviderBackendId('opencode', 'adapter')).toBe('adapter');
expect(migrateProviderBackendId('opencode', 'codex-native')).toBeUndefined();
expect(migrateProviderBackendId(undefined, 'codex-native')).toBeUndefined();
});
});