import React from 'react'; import { describe, expect, mock, test } from 'bun:test'; import { renderToStaticMarkup } from 'react-dom/server'; import { I18nProvider } from '@/lib/i18n'; type MockDialogProps = React.PropsWithChildren<{ open?: boolean; className?: string }>; mock.module('@/components/ui/dialog', () => ({ Dialog: ({ children, open = true }: MockDialogProps) => (open ? <>{children} : null), DialogContent: ({ children }: MockDialogProps) =>
{children}
, DialogDescription: ({ children }: MockDialogProps) =>

{children}

, DialogFooter: ({ children }: MockDialogProps) =>
{children}
, DialogHeader: ({ children }: MockDialogProps) =>
{children}
, DialogTitle: ({ children }: MockDialogProps) =>

{children}

, })); const { SaveProjectPlanDialog } = await import('./SaveProjectPlanDialog'); describe('SaveProjectPlanDialog', () => { test('associates the title label with the title input', () => { const markup = renderToStaticMarkup( {}} initialTitle="Implementation plan" sourceText="Plan content" onSave={() => {}} /> , ); const labelMatch = markup.match(/]*for="([^"]+)"[^>]*>/); if (!labelMatch) { throw new Error('Expected a label associated with the title input'); } const [, titleInputId] = labelMatch; expect(markup).toContain(`id="${titleInputId}"`); }); });