/
githubmirror
/
marked
Обзор
Документация
Войти
/
githubmirror
/
marked
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
test/unit/instance.test.js
142 строки
4 KB
Tony Brix
chore: consolidate eslint rules (#3368)
15 июл 2024, 03:54
Не верифицирован
15 июл 2024, 03:54
9b02e47
Код
Авторство
О чём код?
import { marked, Marked, Renderer, Tokenizer, Hooks } from '../../lib/marked.esm.js'; import { describe, it, beforeEach } from 'node:test'; import assert from 'node:assert'; describe('Marked', () => { it('should allow multiple instances', () => { const marked1 = new Marked({ silent: true, renderer: { heading() { return 'im marked1'; }, }, }); const marked2 = new Marked({ silent: true, renderer: { heading() { return 'im marked2'; }, }, }); assert.strictEqual(marked1.parse('# header'), 'im marked1'); assert.strictEqual(marked2.parse('# header'), 'im marked2'); assert.strictEqual(marked.parse('# header'), '<h1>header</h1>\n'); }); it('should work with use', () => { const marked1 = new Marked(); marked1.use({ silent: true, renderer: { heading() { return 'im marked1'; }, }, }); const marked2 = new Marked(); marked2.use({ silent: true, renderer: { heading() { return 'im marked2'; }, }, }); assert.strictEqual(marked1.parse('# header'), 'im marked1'); assert.strictEqual(marked2.parse('# header'), 'im marked2'); assert.strictEqual(marked.parse('# header'), '<h1>header</h1>\n'); }); it('should work with setOptions', () => { const marked1 = new Marked(); const marked1Renderer = new Renderer(); marked1Renderer.heading = () => 'im marked1'; marked1.setOptions({ silent: true, renderer: marked1Renderer, }); const marked2 = new Marked(); const marked2Renderer = new Renderer(); marked2Renderer.heading = () => 'im marked2'; marked2.setOptions({ silent: true, renderer: marked2Renderer, }); assert.strictEqual(marked1.parse('# header'), 'im marked1'); assert.strictEqual(marked2.parse('# header'), 'im marked2'); assert.strictEqual(marked.parse('# header'), '<h1>header</h1>\n'); }); it('should pass defaults to lexer and parser', () => { const marked1 = new Marked(); marked1.use({ renderer: { heading() { return 'test'; }, }, }); const tokens = marked1.lexer('# hi'); const html = marked1.parser(tokens); assert.strictEqual(html, 'test'); }); describe('use class objects', () => { beforeEach(() => { marked.setOptions(marked.getDefaults()); }); it('allow new Renderer()', () => { const marked1 = new Marked(); const newRenderer = new Renderer(); newRenderer.heading = () => 'im marked renderer'; marked1.use({ renderer: newRenderer }); marked.use({ renderer: newRenderer }); assert.strictEqual(marked1.parse('# header'), 'im marked renderer'); assert.strictEqual(marked.parse('# header'), 'im marked renderer'); }); it('allow new Tokenizer()', () => { const marked1 = new Marked(); const newTokenizer = new Tokenizer(); newTokenizer.heading = function(src) { return { type: 'heading', raw: src, depth: 1, text: 'im marked tokenizer', tokens: this.lexer.inlineTokens('im marked tokenizer'), }; }; marked1.use({ tokenizer: newTokenizer }); marked.use({ tokenizer: newTokenizer }); assert.strictEqual(marked1.parse('# header'), '<h1>im marked tokenizer</h1>\n'); assert.strictEqual(marked.parse('# header'), '<h1>im marked tokenizer</h1>\n'); }); it('allow new Hooks()', () => { const marked1 = new Marked(); const newHooks = new Hooks(); newHooks.preprocess = () => 'im marked hooks'; marked1.use({ hooks: newHooks }); marked.use({ hooks: newHooks }); assert.strictEqual(marked1.parse('# header'), '<p>im marked hooks</p>\n'); assert.strictEqual(marked.parse('# header'), '<p>im marked hooks</p>\n'); }); }); });