import { renderToStaticMarkup } from 'react-dom/server'; import { describe, expect, it, vi } from 'vitest'; import { buildDesignSystemCreateSelection, defaultDesignSystemSelection, NewProjectPanel, } from '../../src/components/NewProjectPanel'; import type { DesignSystemSummary, SkillSummary } from '../../src/types'; const skills: SkillSummary[] = [ { id: 'prototype-skill', name: 'Prototype', description: 'Build prototypes', mode: 'prototype', surface: 'web', previewType: 'html', designSystemRequired: true, defaultFor: ['prototype'], triggers: [], upstream: null, hasBody: true, examplePrompt: 'Build a prototype.', }, ]; const designSystems: DesignSystemSummary[] = [ { id: 'clay', title: 'Clay', summary: 'Friendly tactile product UI.', category: 'Product', swatches: ['#f4efe7', '#25211d'], }, ]; describe('NewProjectPanel design system defaults', () => { it('uses the configured default design system when it exists in the catalog', () => { expect(defaultDesignSystemSelection('clay', designSystems)).toEqual(['clay']); expect(defaultDesignSystemSelection('missing', designSystems)).toEqual([]); expect(defaultDesignSystemSelection(null, designSystems)).toEqual([]); }); it('shows the configured default design system as the active project selection', () => { const markup = renderToStaticMarkup( , ); expect(markup).toContain('Clay'); expect(markup).toContain('Default'); expect(markup).not.toContain('Freeform'); }); it('keeps media project creation from inheriting a hidden design system pick', () => { expect(buildDesignSystemCreateSelection(true, ['clay', 'bmw'])).toEqual({ primary: 'clay', inspirations: ['bmw'], }); expect(buildDesignSystemCreateSelection(false, ['clay', 'bmw'])).toEqual({ primary: null, inspirations: [], }); }); });