Skip to content

Commit 88b1a76

Browse files
committed
Generalize tests for both list types
1 parent a2196ce commit 88b1a76

File tree

1 file changed

+40
-15
lines changed

1 file changed

+40
-15
lines changed

test/test.js

Lines changed: 40 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)