diff options
Diffstat (limited to 'spec/frontend/lib/gfm/index_spec.js')
-rw-r--r-- | spec/frontend/lib/gfm/index_spec.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/spec/frontend/lib/gfm/index_spec.js b/spec/frontend/lib/gfm/index_spec.js new file mode 100644 index 00000000000..5c72b5a51a7 --- /dev/null +++ b/spec/frontend/lib/gfm/index_spec.js @@ -0,0 +1,46 @@ +import { render } from '~/lib/gfm'; + +describe('gfm', () => { + describe('render', () => { + it('processes Commonmark and provides an ast to the renderer function', async () => { + let result; + + await render({ + markdown: 'This is text', + renderer: (tree) => { + result = tree; + }, + }); + + expect(result.type).toBe('root'); + }); + + it('transforms raw HTML into individual nodes in the AST', async () => { + let result; + + await render({ + markdown: '<strong>This is bold text</strong>', + renderer: (tree) => { + result = tree; + }, + }); + + expect(result.children[0].children[0]).toMatchObject({ + type: 'element', + tagName: 'strong', + properties: {}, + }); + }); + + it('returns the result of executing the renderer function', async () => { + const result = await render({ + markdown: '<strong>This is bold text</strong>', + renderer: () => { + return 'rendered tree'; + }, + }); + + expect(result).toBe('rendered tree'); + }); + }); +}); |