fix(ui): simplify credential aliases and usage filters

Use plain model name and alias inputs for credential aliases, discard unsaved credential settings on close, and replace usage filters with select-only menus.
This commit is contained in:
lzt404 committed 2026-10-06 14:26:09 +08:00
1 parent 88d58529f1
commit 072d771b3b
13 files changed
+414 -201

No files matched your search

+1 -1
View File
@@ -12,7 +12,7 @@ const renderAdvanced = (name: string, advanced: Record<string, unknown>, provide
describe('credential settings interaction', () => {
it('lets a Codex credential edit aliases directly and hides Claude cloaking', () => {
const html = renderAdvanced('codex-cbb7bd85-user-team.json', {});
expect(html).toContain('Add alias');
expect(html).toContain('Add model');
expect(html).toContain('Credential timezone');
expect(html).toContain('Asia/Shanghai');
expect(html).not.toContain('Request cloaking');
+11 -8
View File
@@ -5,16 +5,19 @@ import { I18nProvider } from '../src/i18n';
const html = renderToStaticMarkup(
<I18nProvider>
<CredentialAdvancedFields name="codex-user.json" advanced={{ model_aliases: [{ name: 'gpt-5', alias: '' }] }}
models={[{ name: 'gpt-5', displayName: 'GPT 5' }]} onChange={() => {}} />
<CredentialAdvancedFields name="codex-user.json" advanced={{ model_aliases: [{ name: 'gpt-5', alias: 'public-gpt' }] }} onChange={() => {}} />
</I18nProvider>,
);
describe('credential alias model picker', () => {
it('uses the searchable model picker for both model fields', () => {
expect(html.match(/role="combobox"/g)).toHaveLength(2);
describe('credential alias editor', () => {
it('uses plain inputs for the upstream model and client alias', () => {
expect(html).not.toContain('role="combobox"');
expect(html).toContain('aria-label="Model name"');
expect(html).toContain('aria-label="Model alias"');
expect(html).toContain('value="gpt-5"');
expect(html).toContain('Search or enter a model');
expect(html).not.toContain('<textarea');
expect(html).toContain('value="public-gpt"');
expect(html).toContain('aria-label="Expand"');
expect(html).not.toContain('Display name');
expect(html).not.toContain('Search or enter a model');
});
});
});