From 73e265d8fd050ae3daa67472b4465a5c49d68910 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 20 Apr 2019 15:18:33 +0300 Subject: Include to Wekan packages directory contents, so that meteor command would build all directly. This also simplifies build scripts. Thanks to xet7 ! --- packages/markdown/marked/test/unit/marked-spec.js | 73 +++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 packages/markdown/marked/test/unit/marked-spec.js (limited to 'packages/markdown/marked/test/unit') diff --git a/packages/markdown/marked/test/unit/marked-spec.js b/packages/markdown/marked/test/unit/marked-spec.js new file mode 100644 index 00000000..994c5dc8 --- /dev/null +++ b/packages/markdown/marked/test/unit/marked-spec.js @@ -0,0 +1,73 @@ +var marked = require('../../lib/marked.js'); + +describe('Test heading ID functionality', () => { + it('should add id attribute by default', () => { + var renderer = new marked.Renderer(); + var slugger = new marked.Slugger(); + var header = renderer.heading('test', 1, 'test', slugger); + expect(header).toBe('

test

\n'); + }); + + it('should NOT add id attribute when options set false', () => { + var renderer = new marked.Renderer({ headerIds: false }); + var header = renderer.heading('test', 1, 'test'); + expect(header).toBe('

test

\n'); + }); +}); + +describe('Test slugger functionality', () => { + it('should use lowercase slug', () => { + var slugger = new marked.Slugger(); + expect(slugger.slug('Test')).toBe('test'); + }); + + it('should be unique to avoid collisions 1280', () => { + var slugger = new marked.Slugger(); + expect(slugger.slug('test')).toBe('test'); + expect(slugger.slug('test')).toBe('test-1'); + expect(slugger.slug('test')).toBe('test-2'); + }); + + it('should be unique when slug ends with number', () => { + var slugger = new marked.Slugger(); + expect(slugger.slug('test 1')).toBe('test-1'); + expect(slugger.slug('test')).toBe('test'); + expect(slugger.slug('test')).toBe('test-2'); + }); + + it('should be unique when slug ends with hyphen number', () => { + var slugger = new marked.Slugger(); + expect(slugger.slug('foo')).toBe('foo'); + expect(slugger.slug('foo')).toBe('foo-1'); + expect(slugger.slug('foo 1')).toBe('foo-1-1'); + expect(slugger.slug('foo-1')).toBe('foo-1-2'); + expect(slugger.slug('foo')).toBe('foo-2'); + }); + + it('should allow non-latin chars', () => { + var slugger = new marked.Slugger(); + expect(slugger.slug('привет')).toBe('привет'); + }); + + it('should remove ampersands 857', () => { + var slugger = new marked.Slugger(); + expect(slugger.slug('This & That Section')).toBe('this--that-section'); + }); + + it('should remove periods', () => { + var slugger = new marked.Slugger(); + expect(slugger.slug('file.txt')).toBe('filetxt'); + }); +}); + +describe('Test paragraph token type', () => { + it('should use the "paragraph" type on top level', () => { + const md = 'A Paragraph.\n\n> A blockquote\n\n- list item\n'; + + const tokens = marked.lexer(md); + + expect(tokens[0].type).toBe('paragraph'); + expect(tokens[3].type).toBe('paragraph'); + expect(tokens[7].type).toBe('text'); + }); +}); -- cgit v1.2.3-1-g7c22