/* eslint max-len:0 */ import React from 'react'; import { shallow } from 'enzyme'; import { padStart } from 'lodash'; import MarkdownPreview from '../index'; describe('MarkitupReactRenderer', () => { describe('Markdown rendering', () => { describe('General', () => { it('should render markdown', () => { const value = ` # H1 Text with **bold** & _em_ elements ## H2 * ul item 1 * ul item 2 ### H3 1. ol item 1 1. ol item 2 1. ol item 3 #### H4 [link title](http://google.com) ##### H5 ![alt text](https://pbs.twimg.com/profile_images/678903331176214528/TQTdqGwD.jpg) ###### H6 `; const component = shallow(); expect(component.html()).toMatchSnapshot(); }); }); describe('Headings', () => { for (const heading of [...Array(6).keys()]) { it(`should render Heading ${ heading + 1 }`, () => { const value = padStart(' Title', heading + 7, '#'); const component = shallow(); expect(component.html()).toMatchSnapshot(); }); } }); describe('Lists', () => { it('should render lists', () => { const value = ` 1. ol item 1 1. ol item 2 * Sublist 1 * Sublist 2 * Sublist 3 1. Sub-Sublist 1 1. Sub-Sublist 2 1. Sub-Sublist 3 1. ol item 3 `; const component = shallow(); expect(component.html()).toMatchSnapshot(); }); }); describe('Links', () => { it('should render links', () => { const value = ` I get 10 times more traffic from [Google] [1] than from [Yahoo] [2] or [MSN] [3]. [1]: http://google.com/ "Google" [2]: http://search.yahoo.com/ "Yahoo Search" [3]: http://search.msn.com/ "MSN Search" `; const component = shallow(); expect(component.html()).toMatchSnapshot(); }); }); describe('Code', () => { it('should render code', () => { const value = 'Use the `printf()` function.'; const component = shallow(); expect(component.html()).toMatchSnapshot(); }); it('should render code 2', () => { const value = '``There is a literal backtick (`) here.``'; const component = shallow(); expect(component.html()).toMatchSnapshot(); }); }); describe('HTML', () => { it('should render HTML as is when using Markdown', () => { const value = ` # Title
Test HTML content
Testing HTML in Markdown

Test

`; const component = shallow(); expect(component.html()).toMatchSnapshot(); }); }); }); describe('HTML rendering', () => { it('should render HTML', () => { const value = '

Paragraph with inline element

'; const component = shallow(); expect(component.html()).toMatchSnapshot(); }); }); });