open-design/apps/web/tests/components/NewProjectPanel.test.ts
kami 4f76e836ae
feat(audio): add ElevenLabs audio support (#1384)
* docs: add ElevenLabs audio support design

* docs: add ElevenLabs audio implementation plan

* feat(daemon): add ElevenLabs speech renderer

* feat(daemon): add ElevenLabs sound effects renderer

* fix(daemon): preserve ElevenLabs sfx durations

* feat(web): expose ElevenLabs media providers

* feat(daemon): document ElevenLabs audio contract

* feat(audio): add ElevenLabs voice selection

* chore: ignore superpowers scratch docs

* fix(daemon): cache ElevenLabs voice options

* fix(audio): expand ElevenLabs voice and SFX selection

* fix(audio): align ElevenLabs SFX controls

* fix(audio): tighten ElevenLabs SFX prompt budget

* fix(audio): preflight ElevenLabs SFX prompt length

* fix(audio): surface ElevenLabs lookup failures

* fix(audio): sanitize ElevenLabs prompt errors
2026-05-13 15:53:41 +08:00

23 lines
1.1 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import { supportedModels } from '../../src/components/NewProjectPanel';
import { AUDIO_MODELS_BY_KIND, IMAGE_MODELS } from '../../src/media/models';
describe('NewProjectPanel image provider visibility', () => {
it('shows Nano Banana in supported image models', () => {
const models = supportedModels('image', IMAGE_MODELS);
expect(models.some((model) => model.provider === 'nanobanana')).toBe(true);
expect(models.some((model) => model.id === 'gemini-3.1-flash-image-preview')).toBe(true);
});
it('shows ElevenLabs speech models in supported audio models', () => {
const models = supportedModels('audio', AUDIO_MODELS_BY_KIND.speech);
expect(models.some((model) => model.provider === 'elevenlabs')).toBe(true);
expect(models.some((model) => model.id === 'elevenlabs-v3')).toBe(true);
});
it('shows ElevenLabs sound effects models in supported audio models', () => {
const models = supportedModels('audio', AUDIO_MODELS_BY_KIND.sfx);
expect(models.some((model) => model.id === 'elevenlabs-sfx')).toBe(true);
});
});