/* global QUnit, test, equal */ 'use strict' if (typeof module !== 'undefined' && module.exports) { var toMarkdown = require('../index') } QUnit.module('GitHub Flavored Markdown') // Test cases are in the format: [html, expectedMarkdown, message] function runGfmTestCases (testCases) { for (var i = 0; i < testCases.length; i++) { var testCase = testCases[i] equal(toMarkdown(testCase[0], { gfm: true }), testCase[1], testCase[2]) } } test('line breaks', function () { runGfmTestCases([ ['

Hello
world

', 'Hello\nworld'] ]) }) test('strikethroughs', function () { runGfmTestCases([ ['Lorem ipsum', '~~Lorem ipsum~~', 'del'], ['Lorem ipsum', '~~Lorem ipsum~~', 's'], ['Lorem ipsum', '~~Lorem ipsum~~', 'strike'] ]) }) test('task lists', function () { runGfmTestCases([ [ '', '* [ ] Check Me!', 'Unchecked inputs' ], [ '', '* [x] Checked!', 'Checked inputs' ] ]) }) test('tables', function () { runGfmTestCases([ [ ['', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '].join('\n'), ['| Column 1 | Column 2 |', '| --- | --- |', '| Row 1, Column 1 | Row 1, Column 2 |', '| Row 2, Column 1 | Row 2, Column 2 |'].join('\n'), 'Basic table' ], [ ['
Column 1Column 2
Row 1, Column 1Row 1, Column 2
Row 2, Column 1Row 2, Column 2
', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '].join('\n'), ['| Column 1 | Column 2 | Column 3 | Column 4 |', '| :-- | :-: | --: | --- |', '| Row 1, Column 1 | Row 1, Column 2 | Row 1, Column 3 | Row 1, Column 4 |', '| Row 2, Column 1 | Row 2, Column 2 | Row 2, Column 3 | Row 2, Column 4 |'].join('\n'), 'Cell alignment' ], [ ['
Column 1Column 2Column 3Column 4
Row 1, Column 1Row 1, Column 2Row 1, Column 3Row 1, Column 4
Row 2, Column 1Row 2, Column 2Row 2, Column 3Row 2, Column 4
', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '].join('\n'), ['| Column 1 | Column 2 | Column 3 | Column 4 |', '| :-- | :-: | --: | --- |', '| | Row 1, Column 2 | Row 1, Column 3 | Row 1, Column 4 |', '| Row 2, Column 1 | | Row 2, Column 3 | Row 2, Column 4 |', '| Row 3, Column 1 | Row 3, Column 2 | | Row 3, Column 4 |', '| Row 4, Column 1 | Row 4, Column 2 | Row 4, Column 3 | |', '| | | | Row 5, Column 4 |' ].join('\n'), 'Empty cells' ] ]) }) test('fenced code blocks', function () { runGfmTestCases([ [ ['
This is a regular paragraph.',
        '',
        '<table>',
        '    <tr>',
        '        <td>Foo</td>',
        '    </tr>',
        '</table>',
        '',
        'This is another regular paragraph.',
        '
'].join('\n'), ['```', 'This is a regular paragraph.', '', '
Column 1Column 2Column 3Column 4
Row 1, Column 2Row 1, Column 3Row 1, Column 4
Row 2, Column 1Row 2, Column 3Row 2, Column 4
Row 3, Column 1Row 3, Column 2Row 3, Column 4
Row 4, Column 1Row 4, Column 2Row 4, Column 3
Row 5, Column 4
', ' ', ' ', ' ', '
Foo
', '', 'This is another regular paragraph.', '', '```'].join('\n') ] ]) }) test('syntax highlighting', function () { runGfmTestCases([ [ ['
<table>',
        '    <tr>',
        '        <td>Foo</td>',
        '    </tr>',
        '</table>
'].join('\n'), ['```html', '', ' ', ' ', ' ', '
Foo
', '```'].join('\n'), 'HTML' ] ]) })