@@ -3,7 +3,7 @@ import {builders} from 'prosemirror-test-builder';
33import { createMarkupChecker } from '../../../../tests/sameMarkup' ;
44import { ExtensionsManager } from '../../../core' ;
55import { BaseNode , BaseSpecsPreset } from '../../base/specs' ;
6- import { blockquoteNodeName , italicMarkName } from '../../markdown/specs' ;
6+ import { BlockquoteSpecs , blockquoteNodeName , italicMarkName } from '../../markdown/specs' ;
77
88import { TabsNode , YfmTabsSpecs } from './YfmTabsSpecs' ;
99
@@ -19,10 +19,11 @@ afterEach(() => {
1919} ) ;
2020
2121const { schema, parser, serializer} = new ExtensionsManager ( {
22- extensions : ( builder ) => builder . use ( BaseSpecsPreset , { } ) . use ( YfmTabsSpecs , { } ) ,
22+ extensions : ( builder ) =>
23+ builder . use ( BaseSpecsPreset , { } ) . use ( BlockquoteSpecs ) . use ( YfmTabsSpecs , { } ) ,
2324} ) . buildDeps ( ) ;
2425
25- const { doc, p, tab, tabs, tabPanel, tabsList} = builders <
26+ const { doc, p, bq , tab, tabs, tabPanel, tabsList} = builders <
2627 'doc' | 'p' | 'bq' | 'tab' | 'tabPanel' | 'tabs' | 'tabsList'
2728> ( schema , {
2829 doc : { nodeType : BaseNode . Doc } ,
@@ -119,4 +120,59 @@ describe('YfmTabs extension', () => {
119120 ) ,
120121 ) ;
121122 } ) ;
123+
124+ it ( 'should correct parse and serialize yfm-tabs inside blockqute' , ( ) => {
125+ const markup = `
126+ > {% list tabs %}
127+ >
128+ > - Tab
129+ >
130+ > Content
131+ >
132+ > {% endlist %}` . trim ( ) ;
133+
134+ same (
135+ markup ,
136+ doc (
137+ bq (
138+ tabs (
139+ {
140+ class : 'yfm-tabs' ,
141+ 'data-diplodoc-group' : `defaultTabsGroup-${ generatedId } ` ,
142+ } ,
143+ tabsList (
144+ {
145+ class : 'yfm-tab-list' ,
146+ role : 'tablist' ,
147+ } ,
148+ tab (
149+ {
150+ id : 'unknown' ,
151+ class : 'yfm-tab active' ,
152+ role : 'tab' ,
153+ 'aria-controls' : generatedId ,
154+ 'aria-selected' : 'true' ,
155+ tabindex : '-1' ,
156+ 'data-diplodoc-is-active' : 'true' ,
157+ 'data-diplodoc-id' : 'tab' ,
158+ 'data-diplodoc-key' : 'tab' ,
159+ } ,
160+ 'Tab' ,
161+ ) ,
162+ ) ,
163+ tabPanel (
164+ {
165+ id : generatedId ,
166+ class : 'yfm-tab-panel active' ,
167+ role : 'tabpanel' ,
168+ 'data-title' : 'Tab' ,
169+ 'aria-labelledby' : 'tab' ,
170+ } ,
171+ p ( 'Content' ) ,
172+ ) ,
173+ ) ,
174+ ) ,
175+ ) ,
176+ ) ;
177+ } ) ;
122178} ) ;
0 commit comments