import React from 'react'; import { markupToReact } from 'translations/markup'; describe('markupToReact', () => { it('passes plain string as is', () => { const value = 'string'; const expected = 'string'; expect(markupToReact(value)).toEqual(expected); }); it('transforms bold syntax', () => { let value = '**foo**'; let expected = [foo]; expect(markupToReact(value)).toEqual(expected); value = '**foo** bar'; expected = [foo, ' bar']; expect(markupToReact(value)).toEqual(expected); value = 'bar **foo**'; expected = ['bar ', foo]; expect(markupToReact(value)).toEqual(expected); value = 'bar **foo** baz'; expected = ['bar ', foo, ' baz']; expect(markupToReact(value)).toEqual(expected); value = '**foo****bar**'; expected = [foo, bar]; expect(markupToReact(value)).toEqual(expected); }); it('transforms link syntax', () => { let value = '[foo](http://google.com)'; let expected = [foo]; expect(markupToReact(value)).toEqual(expected); value = '[foo](http://google.com) bar'; expected = [foo, ' bar']; expect(markupToReact(value)).toEqual(expected); value = 'bar [foo](http://google.com)'; expected = ['bar ', foo]; expect(markupToReact(value)).toEqual(expected); value = 'bar [foo](http://google.com) baz'; expected = ['bar ', foo, ' baz']; expect(markupToReact(value)).toEqual(expected); value = '[foo](http://google.com)[bar](http://google.ca)'; expected = [ foo, bar ]; expect(markupToReact(value)).toEqual(expected); }); it('converts mixed syntax', () => { let value = 'Bold **foo** link [foo](http://google.com) text'; let expected = [ 'Bold ', foo, ' link ', foo, ' text' ]; expect(markupToReact(value)).toEqual(expected); }); it('converts html entities', () => { let value = '&&'; let expected = '&&'; expect(markupToReact(value)).toEqual(expected); }) });