Home Reference Source Test Repository

spec/MD2HTML.spec.js

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const MDReplacer_1 = require("./../src/MDReplacer");
let replacerDict = new MDReplacer_1.MDReplacer().dictionary;
let dictString = 'dict' + replacerDict.toString();
/**
 * this are test for the mardown replacer
 * @test {MDReplacer}
 */
describe('This project is about making a simple markdown parser.', () => {
    /**
     * @test {MDReplacer#replace}
     */
    describe('check empty input', () => {
        it('input : "",' + dictString + ' , output: ""', () => {
            // Arrange
            let input = '';
            let markdownReplacer = new MDReplacer_1.MDReplacer();
            // Act
            let result = markdownReplacer.replace(input);
            // Assert
            expect(result).toBe('');
        });
    });
    /**
    * @test {MDReplacer#replace}
    */
    describe('check simple input of each type', () => {
        it('input : "# Heading1", ' + dictString + ', output: "<h1>Heading1</h1>"', () => {
            // Arrange
            let input = '# Heading1';
            let markdownReplacer = new MDReplacer_1.MDReplacer();
            // Act
            let result = markdownReplacer.replace(input);
            // Assert
            expect(result).toBe('<h1>Heading1</h1>');
        });
        it('input : "## Heading2", ' + dictString + ', output: "<h2>Heading2</h2>"', () => {
            // Arrange
            let input = '## Heading2';
            let markdownReplacer = new MDReplacer_1.MDReplacer();
            // Act
            let result = markdownReplacer.replace(input);
            // Assert
            expect(result).toBe('<h2>Heading2</h2>');
        });
        it('input : "**BoldText**", ' + dictString + ', output: "<b>BoldText</b>"', () => {
            // Arrange
            let input = '**BoldText**';
            let markdownReplacer = new MDReplacer_1.MDReplacer();
            // Act
            let result = markdownReplacer.replace(input);
            // Assert
            expect(result).toBe('<b>BoldText</b>');
        });
        it('input : "*ItalicText*", ' + dictString + ', output: "<i>ItalicText</i>"', () => {
            // Arrange
            let input = '*ItalicText*';
            let markdownReplacer = new MDReplacer_1.MDReplacer();
            // Act
            let result = markdownReplacer.replace(input);
            // Assert
            expect(result).toBe('<i>ItalicText</i>');
        });
        it('input : "* List", ' + dictString + ', output: "<ul><li>List</li></ul>"', () => {
            // Arrange
            let input = '* List';
            let markdownReplacer = new MDReplacer_1.MDReplacer();
            // Act
            let result = markdownReplacer.replace(input);
            // Assert
            expect(result).toBe('<ul><li>List</li></ul>');
        });
        it('input : ">Cite text", ' + dictString + ', output: "<blockquote><p>Cite text</p></blockquote>"', () => {
            // Arrange
            let input = '>Cite text';
            let markdownReplacer = new MDReplacer_1.MDReplacer();
            // Act
            let result = markdownReplacer.replace(input);
            // Assert
            expect(result).toBe('<blockquote><p>Cite text</p></blockquote>');
        });
        it('input : " Paragraph", ' + dictString + ', output: "<p>Paragraph</p>"', () => {
            // Arrange
            let input = ' Paragraph';
            let markdownReplacer = new MDReplacer_1.MDReplacer();
            // Act
            let result = markdownReplacer.replace(input);
            // Assert
            expect(result).toBe('<p>Paragraph</p>');
        });
    });
    /**
     * @test {MDReplacer#replace}
     */
    describe('check multi line input', () => {
        it('input : "# Test text \\n * with list", ' + dictString + ', output: "<h1>Test text</h1><br/><ul><li>with list</li></ul>"', () => {
            // Arrange
            let input = '# Test text \n* with list';
            let markdownReplacer = new MDReplacer_1.MDReplacer();
            // Act
            let result = markdownReplacer.replace(input);
            // Assert
            expect(result).toBe('<h1>Test text </h1><br/><ul><li>with list</li></ul>');
        });
    });
    /**
     * @test {MDReplacer#replace}
     */
    describe('check multi line list input', () => {
        it('input : "# Test text\\n* list item 1\\n* list item 2\\n* list item 3", \n\t' + dictString + ',\n\toutput: "<h1>Test text</h1><br/><ul><li>list item 1</li><br/><li>list item 2</li><br/><li>list item 3</li></ul>"', () => {
            // Arrange
            let input = '# Test text\n* list item 1\n* list item 2\n* list item 3';
            let markdownReplacer = new MDReplacer_1.MDReplacer();
            // Act
            let result = markdownReplacer.replace(input);
            // Assert
            expect(result).toBe('<h1>Test text</h1><br/><ul><li>list item 1</li><br/><li>list item 2</li><br/><li>list item 3</li></ul>');
        });
    });
    /**
     * @test {MDReplacer#replace}
     */
    describe('check bolt and italic input', () => {
        it('input : "**Test** *text*", \n\t' + dictString + ',\n\toutput: "<b>Test</b> <i>text</i>"', () => {
            // Arrange
            let input = '**Test** *text*';
            let markdownReplacer = new MDReplacer_1.MDReplacer();
            // Act
            let result = markdownReplacer.replace(input);
            // Assert
            expect(result).toBe('<b>Test</b> <i>text</i>');
        });
    });
    /**
     * @test {MDReplacer#replaceDouble}
     */
    describe('MDReplacer replace double tags', () => {
        it('input: "**Test**, \n\toutput: "<b>Test</b>"', () => {
            // Arrange
            let input = '**Test**';
            let markdownReplacer = new MDReplacer_1.MDReplacer();
            let key = '**';
            // Act
            let result = markdownReplacer.replaceDouble(input, key);
            // Assert
            expect(result).toBe('<b>Test</b>');
        });
    });
    /**
     * @test {MDReplacer#startsWith}
     */
    describe('MDReplacer check startWith method', () => {
        describe('method result true', () => {
            it('input: "> test",\n\toutput: "true"', () => {
                // Arrange
                let input = '> test';
                let markdownReplacer = new MDReplacer_1.MDReplacer();
                let key = '>';
                // Act
                let result = markdownReplacer.startsWith(input, key);
                // Assert
                expect(result).toBe(true);
            });
        });
        describe('method fails', () => {
            it('input: " test",\n\toutput: "true"', () => {
                // Arrange
                let input = ' test';
                let markdownReplacer = new MDReplacer_1.MDReplacer();
                let key = '>';
                // Act
                let result = markdownReplacer.startsWith(input, key);
                // Assert
                expect(result).toBe(false);
            });
        });
    });
    /**
     * @test {MDReplacer#combineMultiLineTags}
     */
    describe('MDReplacer combineMultiLineTags', () => {
        it('input: "<ul><li>list item 1</li></ul><br/><ul><li>list item 2</li></ul><br/><ul><li>list item 3</li></ul>",\n\toutput: "<ul><li>list item 1</li><br/><li>list item 2</li><br/><li>list item 3</li></ul>"', () => {
            // Arrange
            let input = '<ul><li>list item 1</li></ul><br/><ul><li>list item 2</li></ul><br/><ul><li>list item 3</li></ul>';
            let markdownReplacer = new MDReplacer_1.MDReplacer();
            let key = '>';
            // Act
            let result = markdownReplacer.combineMultiLineTags(input);
            // Assert
            expect(result).toBe('<ul><li>list item 1</li><br/><li>list item 2</li><br/><li>list item 3</li></ul>');
        });
    });
    /**
     * @test {MDReplacer#replaceKey}
     */
    describe('MDReplacer check all different keys', () => {
        describe('check heading 1', () => {
            it('input: "# ",\n\toutput: "<h1></h1>"', () => {
                // Arrange
                let input = '# ';
                let markdownReplacer = new MDReplacer_1.MDReplacer();
                let key = '# ';
                // Act
                let result = markdownReplacer.replaceKey(input, key);
                // Assert
                expect(result).toBe('<h1></h1>');
            });
        }),
            describe('check heading 2', () => {
                it('input: "## ",\n\toutput: "<h2></h2>"', () => {
                    // Arrange
                    let input = '## ';
                    let markdownReplacer = new MDReplacer_1.MDReplacer();
                    let key = '## ';
                    // Act
                    let result = markdownReplacer.replaceKey(input, key);
                    // Assert
                    expect(result).toBe('<h2></h2>');
                });
            }),
            describe('check list', () => {
                it('input: "* ",\n\toutput: "<ul><li></li></ul>"', () => {
                    // Arrange
                    let input = '* ';
                    let markdownReplacer = new MDReplacer_1.MDReplacer();
                    let key = '* ';
                    // Act
                    let result = markdownReplacer.replaceKey(input, key);
                    // Assert
                    expect(result).toBe('<ul><li></li></ul>');
                });
            }),
            describe('check bold', () => {
                it('input: "**** ",\n\toutput: "<b></b>"', () => {
                    // Arrange
                    let input = '****';
                    let markdownReplacer = new MDReplacer_1.MDReplacer();
                    let key = '**';
                    // Act
                    let result = markdownReplacer.replaceKey(input, key);
                    // Assert
                    expect(result).toBe('<b></b>');
                });
            }),
            describe('check italic', () => {
                it('input: "**",\n\toutput: "<i></i>"', () => {
                    // Arrange
                    let input = '**';
                    let markdownReplacer = new MDReplacer_1.MDReplacer();
                    let key = '**';
                    // Act
                    let result = markdownReplacer.replaceKey(input, key);
                    // Assert
                    expect(result).toBe('<i></i>');
                });
            }),
            describe('check cite text', () => {
                it('input: ">",\n\toutput: "<blockquote><p></p></blockquote>"', () => {
                    // Arrange
                    let input = '>';
                    let markdownReplacer = new MDReplacer_1.MDReplacer();
                    let key = '>';
                    // Act
                    let result = markdownReplacer.replaceKey(input, key);
                    // Assert
                    expect(result).toBe('<blockquote><p></p></blockquote>');
                });
            }),
            describe('check paragraph', () => {
                it('input: " ",\n\toutput: "<p></p>"', () => {
                    // Arrange
                    let input = ' ';
                    let markdownReplacer = new MDReplacer_1.MDReplacer();
                    let key = ' ';
                    // Act
                    let result = markdownReplacer.replaceKey(input, key);
                    // Assert
                    expect(result).toBe('<p></p>');
                });
            });
    });
});
//# sourceMappingURL=MD2HTML.spec.js.map