Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
This commit is contained in:
Tilman Vatteroth 2023-08-26 14:54:15 +02:00
parent 1d90013344
commit f5736dad0f
37 changed files with 2025 additions and 0 deletions

View file

@ -0,0 +1,56 @@
/*
* SPDX-FileCopyrightText: 2023 The HedgeDoc developers (see AUTHORS file)
*
* SPDX-License-Identifier: MIT
*/
import MarkdownIt from 'markdown-it/lib'
import { imageSize } from './index.js'
import { describe, expect, it } from '@jest/globals'
describe('markdown-it-imsize', function () {
const md = new MarkdownIt({
html: true,
linkify: true,
typographer: true
}).use(imageSize)
it('renders a image without size or title', () => {
expect(md.renderInline('![test](x)')).toBe('<img src="x" alt="test">')
})
it('renders a image with title', () => {
expect(md.renderInline('![test](x "thisisthetitle")')).toBe('<img src="x" alt="test" title="thisisthetitle">')
})
it('renders an image with absolute width and height', () => {
expect(md.renderInline('![test](x =100x200)')).toBe('<img src="x" alt="test" width="100" height="200">')
})
it('renders an image with relative width and height', () => {
expect(md.renderInline('![test](x =100%x200%)')).toBe('<img src="x" alt="test" width="100%" height="200%">')
})
it('renders an image with title and size', () => {
expect(md.renderInline('![test](x "thisisthetitle" =100x200)')).toBe(
'<img src="x" alt="test" title="thisisthetitle" width="100" height="200">'
)
})
it('renders an image with no size but x', () => {
expect(md.renderInline('![test](x "thisisthetitle" =x)')).toBe('<img src="x" alt="test" title="thisisthetitle">')
})
it("doesn't render an image with invalid size syntax", () => {
expect(md.renderInline('![test](x "thisisthetitle" =xx)')).toBe('![test](x “thisisthetitle” =xx)')
})
it('renders an image with only width', () => {
expect(md.renderInline('![test](x =100x)')).toBe('<img src="x" alt="test" width="100">')
})
it('renders an image with only height', () => {
expect(md.renderInline('![test](x =x200)')).toBe('<img src="x" alt="test" height="200">')
})
})