@@ -32,6 +32,17 @@ describe('markdown-toolbar-element', function () {
3232 toolbar . querySelector ( selector ) . click ( )
3333 }
3434
35+ function assertNormalizedList ( str , ordered = false ) {
36+ let listIndex = 0
37+ const stringToCompare = ordered
38+ ? str . replace ( '- ' , ( matched , index , original ) => {
39+ ++ listIndex
40+ return `${ listIndex } . `
41+ } )
42+ : str
43+ assert . equal ( stringToCompare , visualValue ( ) )
44+ }
45+
3546 function visualValue ( ) {
3647 const textarea = document . querySelector ( 'textarea' )
3748 const before = textarea . value . slice ( 0 , textarea . selectionStart )
@@ -484,49 +495,63 @@ describe('markdown-toolbar-element', function () {
484495 } )
485496 } )
486497
487- describe ( 'unordered list' , function ( ) {
498+ function listTests ( toolbarItem , orderedList ) {
488499 it ( 'turns line into list if cursor at end of line' , function ( ) {
489500 setVisualValue ( 'One\nTwo|\nThree\n' )
490- clickToolbar ( 'md-unordered-list' )
491- assert . equal ( 'One\n\n- Two|\n\nThree\n' , visualValue ( ) )
501+ clickToolbar ( toolbarItem )
502+ assertNormalizedList ( 'One\n\n- Two|\n\nThree\n' , orderedList )
492503 } )
493504
494505 it ( 'turns line into list if cursor at end of document' , function ( ) {
495506 setVisualValue ( 'One\nTwo\nThree|' )
496- clickToolbar ( 'md-unordered-list' )
497- assert . equal ( 'One\nTwo\n\n- Three|' , visualValue ( ) )
507+ clickToolbar ( toolbarItem )
508+ assertNormalizedList ( 'One\nTwo\n\n- Three|' , orderedList )
498509 } )
499510
500511 it ( 'turns line into list if cursor at beginning of line' , function ( ) {
501512 setVisualValue ( 'One\n|Two\nThree\n' )
502- clickToolbar ( 'md-unordered-list' )
503- assert . equal ( 'One\n\n- |Two\n\nThree\n' , visualValue ( ) )
513+ clickToolbar ( toolbarItem )
514+ assertNormalizedList ( 'One\n\n- |Two\n\nThree\n' , orderedList )
504515 } )
505516
506517 it ( 'turns line into list if cursor at middle of line' , function ( ) {
507518 setVisualValue ( 'One\nT|wo\nThree\n' )
508- clickToolbar ( 'md-unordered-list' )
509- assert . equal ( 'One\n\n- T|wo\n\nThree\n' , visualValue ( ) )
519+ clickToolbar ( toolbarItem )
520+ assertNormalizedList ( 'One\n\n- T|wo\n\nThree\n' , orderedList )
521+ } )
522+
523+ it ( 'turns selection into list if line is selected' , function ( ) {
524+ setVisualValue ( 'One\n|Two|\nThree\n' )
525+ clickToolbar ( toolbarItem )
526+ assertNormalizedList ( 'One\n\n- |Two|\n\nThree\n' , orderedList )
510527 } )
511528
512529 it ( 'turns selection into list if partial line is selected' , function ( ) {
513530 setVisualValue ( 'One\nT|w|o\nThree\n' )
514- clickToolbar ( 'md-unordered-list' )
515- assert . equal ( 'One\n\n- T|w|o\n\nThree\n' , visualValue ( ) )
531+ clickToolbar ( toolbarItem )
532+ assertNormalizedList ( 'One\n\n- T|w|o\n\nThree\n' , orderedList )
516533 } )
517534
518535 it ( 'turns selection into list if two lines are selected' , function ( ) {
519536 setVisualValue ( '|One\nTwo|\nThree\n' )
520- clickToolbar ( 'md-unordered-list' )
521- assert . equal ( '|- One\n- Two|\n\nThree\n' , visualValue ( ) )
537+ clickToolbar ( toolbarItem )
538+ assertNormalizedList ( '|- One\n- Two|\n\nThree\n' , orderedList )
522539 } )
523540
524541 it ( 'turns selection into list if 2 lines are partially selected' , function ( ) {
525542 setVisualValue ( 'O|ne\nTw|o\nThree\n' )
526- clickToolbar ( 'md-unordered-list' )
527- assert . equal ( '- O|ne\n- Tw|o\n\nThree\n' , visualValue ( ) )
543+ clickToolbar ( toolbarItem )
544+ assertNormalizedList ( '- O|ne\n- Tw|o\n\nThree\n' , orderedList )
528545 } )
529546 // TODO: Add undo test for all of this
547+ }
548+
549+ describe ( 'unordered list' , function ( ) {
550+ listTests ( 'md-unordered-list' , false )
551+ } )
552+
553+ describe ( 'ordered list' , function ( ) {
554+ listTests ( 'md-ordered-list' , true )
530555 } )
531556
532557 describe ( 'lists' , function ( ) {
0 commit comments