@@ -183,10 +183,14 @@ describe('Markdown Components', () => {
183183 code
184184 </ Code >
185185 ) ;
186- const code = container . querySelector ( 'code' ) ;
187- expect ( code ) . toBeTruthy ( ) ;
188- expect ( code ?. className ) . not . toContain ( 'rounded' ) ;
189- expect ( code ?. className ) . not . toContain ( 'bg-muted' ) ;
186+ // Block code renders a CodeBlock component, not a plain code element
187+ const codeBlock = container . querySelector ( '[class*="my-4"]' ) ;
188+ expect ( codeBlock ) . toBeTruthy ( ) ;
189+ expect ( codeBlock ?. className ) . toContain ( 'my-4' ) ;
190+ expect ( codeBlock ?. className ) . toContain ( 'h-auto' ) ;
191+ expect ( codeBlock ?. className ) . toContain ( 'rounded-lg' ) ;
192+ expect ( codeBlock ?. className ) . toContain ( 'border' ) ;
193+ expect ( codeBlock ?. className ) . toContain ( 'p-4' ) ;
190194 } ) ;
191195
192196 it ( 'should render pre with code block' , ( ) => {
@@ -195,24 +199,32 @@ describe('Markdown Components', () => {
195199 children : 'const x = 1;' ,
196200 } ) ;
197201 const { container } = render ( < Pre node = { null as any } > { codeElement } </ Pre > ) ;
198- // The pre component renders a CodeBlock, not a pre element
199- const codeBlock = container . querySelector ( '[class*="my-4"]' ) ;
200- expect ( codeBlock ) . toBeTruthy ( ) ;
201- expect ( codeBlock ?. className ) . toContain ( 'my-4' ) ;
202- expect ( codeBlock ?. className ) . toContain ( 'h-auto ') ;
202+ // The pre component now just returns its children
203+ // The code element should be present as a child
204+ const code = container . querySelector ( 'code' ) ;
205+ expect ( code ) . toBeTruthy ( ) ;
206+ expect ( code ?. textContent ) . toBe ( 'const x = 1; ') ;
203207 } ) ;
204208
205209 it ( 'should extract language from code className' , ( ) => {
206- const Pre = components . pre ! ;
207- const codeElement = React . createElement ( 'code' , {
208- children : 'const x = 1;' ,
209- className : 'language-javascript' ,
210- } ) ;
211- const nodeWithClassName = {
212- properties : { className : 'language-javascript' }
213- } ;
214- const { container } = render ( < Pre node = { nodeWithClassName as any } > { codeElement } </ Pre > ) ;
215- // The pre component renders a CodeBlock with the extracted language
210+ const Code = components . code ! ;
211+ // Test the code component directly since it handles language extraction
212+ const { container } = render (
213+ < Code
214+ node = {
215+ {
216+ position : {
217+ start : { line : 1 , column : 1 } ,
218+ end : { line : 2 , column : 10 } ,
219+ } ,
220+ } as any
221+ }
222+ className = "language-javascript"
223+ >
224+ const x = 1;
225+ </ Code >
226+ ) ;
227+ // Code component with multi-line position renders a CodeBlock
216228 const codeBlock = container . querySelector ( '[class*="my-4"]' ) ;
217229 expect ( codeBlock ) . toBeTruthy ( ) ;
218230 } ) ;
@@ -222,10 +234,8 @@ describe('Markdown Components', () => {
222234 const { container } = render (
223235 < Pre node = { null as any } > plain text code</ Pre >
224236 ) ;
225- // The pre component renders a CodeBlock which processes code asynchronously
226- const codeBlock = container . querySelector ( '[class*="my-4"]' ) ;
227- expect ( codeBlock ) . toBeTruthy ( ) ;
228- // The CodeBlock component exists but text is rendered asynchronously
237+ // The pre component now just returns its children directly
238+ expect ( container . textContent ) . toBe ( 'plain text code' ) ;
229239 } ) ;
230240 } ) ;
231241
0 commit comments