49 lines
1.9 KiB
TypeScript
49 lines
1.9 KiB
TypeScript
import MarkdownIt from 'markdown-it'
|
|
import { describe, expect, it } from 'vitest'
|
|
import { iconPlugin } from '../src/node/inline/icons.js'
|
|
|
|
describe('iconsPlugin', () => {
|
|
it('should work', () => {
|
|
const md = MarkdownIt().use(iconPlugin)
|
|
|
|
expect(md.render('::mdi:11::')).toMatchSnapshot()
|
|
expect(md.render('**strong** ::mdi:11:: ::mdi:11::')).toMatchSnapshot()
|
|
expect(md.render('**strong**\n::mdi:11::\n ::mdi:11::')).toMatchSnapshot()
|
|
})
|
|
|
|
it('should work with options', () => {
|
|
const md = MarkdownIt().use(iconPlugin, { size: '1.25em', color: '#ccc' })
|
|
|
|
expect(md.render('::mdi:11::')).toMatchSnapshot()
|
|
expect(md.render('**strong** ::mdi:11:: ::mdi:11::')).toMatchSnapshot()
|
|
})
|
|
|
|
it('should work with single icon options', () => {
|
|
const md = MarkdownIt().use(iconPlugin)
|
|
|
|
expect(md.render('::mdi:11 =36px::')).toMatchSnapshot()
|
|
expect(md.render('::mdi:11 =32px /#eee::')).toMatchSnapshot()
|
|
expect(md.render('::mdi:11 /#eee::')).toMatchSnapshot()
|
|
expect(md.render('::mdi:11 =32px/::')).toMatchSnapshot()
|
|
expect(md.render('::mdi:11 /::')).toMatchSnapshot()
|
|
|
|
const md2 = MarkdownIt().use(iconPlugin, { size: '1.25em', color: '#ccc' })
|
|
expect(md2.render('::mdi:11::')).toMatchSnapshot()
|
|
expect(md2.render('::mdi:11 =36px::')).toMatchSnapshot()
|
|
expect(md2.render('::mdi:11 =32px/#eee::')).toMatchSnapshot()
|
|
expect(md2.render('::mdi:11 /#eee::')).toMatchSnapshot()
|
|
expect(md2.render('::mdi:11 =32px/::')).toMatchSnapshot()
|
|
expect(md2.render('::mdi:11 /::')).toMatchSnapshot()
|
|
})
|
|
|
|
it('should not work with invalid icon', () => {
|
|
const md = MarkdownIt().use(iconPlugin)
|
|
|
|
expect(md.render(':: mdi:11 ::')).toMatchSnapshot()
|
|
expect(md.render('::::')).toMatchSnapshot()
|
|
expect(md.render('::]&')).toMatchSnapshot()
|
|
expect(md.render('::::')).toMatchSnapshot()
|
|
expect(md.render('::mdi:11')).toMatchSnapshot()
|
|
})
|
|
})
|