@@ -473,6 +473,46 @@ suite('DeepnoteDataConverter', () => {
473473 const outputData = JSON . parse ( new TextDecoder ( ) . decode ( outputs [ 0 ] . items [ 0 ] . data ) ) ;
474474 assert . deepStrictEqual ( outputData , sqlMetadata ) ;
475475 } ) ;
476+
477+ test ( 'converts text/markdown output' , ( ) => {
478+ const markdownContent = '## Result\n\nThis is **formatted** output.' ;
479+
480+ const deepnoteOutputs : DeepnoteOutput [ ] = [
481+ {
482+ output_type : 'execute_result' ,
483+ execution_count : 1 ,
484+ data : {
485+ 'text/markdown' : markdownContent ,
486+ 'text/plain' : 'Result\n\nThis is formatted output.'
487+ }
488+ }
489+ ] ;
490+
491+ const blocks : DeepnoteBlock [ ] = [
492+ {
493+ blockGroup : 'test-group' ,
494+ id : 'block1' ,
495+ type : 'code' ,
496+ content : 'display_markdown()' ,
497+ sortingKey : 'a0' ,
498+ outputs : deepnoteOutputs
499+ }
500+ ] ;
501+
502+ const cells = converter . convertBlocksToCells ( blocks ) ;
503+ const outputs = cells [ 0 ] . outputs ! ;
504+
505+ assert . strictEqual ( outputs . length , 1 ) ;
506+ assert . strictEqual ( outputs [ 0 ] . items . length , 2 ) ;
507+
508+ const markdownItem = outputs [ 0 ] . items . find ( ( item ) => item . mime === 'text/markdown' ) ;
509+ const plainItem = outputs [ 0 ] . items . find ( ( item ) => item . mime === 'text/plain' ) ;
510+
511+ assert . ok ( markdownItem , 'Should have text/markdown item' ) ;
512+ assert . ok ( plainItem , 'Should have text/plain item' ) ;
513+ assert . strictEqual ( new TextDecoder ( ) . decode ( markdownItem ! . data ) , markdownContent ) ;
514+ assert . strictEqual ( new TextDecoder ( ) . decode ( plainItem ! . data ) , 'Result\n\nThis is formatted output.' ) ;
515+ } ) ;
476516 } ) ;
477517
478518 suite ( 'round trip conversion' , ( ) => {
0 commit comments