Path: blob/main/extensions/markdown-language-features/src/test/engine.test.ts
3292 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import * as assert from 'assert';6import 'mocha';7import * as vscode from 'vscode';8import { InMemoryDocument } from '../client/inMemoryDocument';9import { createNewMarkdownEngine } from './engine';101112const testFileName = vscode.Uri.file('test.md');1314suite('markdown.engine', () => {15suite('rendering', () => {16const input = '# hello\n\nworld!';17const output = '<h1 data-line="0" class="code-line" dir="auto" id="hello">hello</h1>\n'18+ '<p data-line="2" class="code-line" dir="auto">world!</p>\n';1920test('Renders a document', async () => {21const doc = new InMemoryDocument(testFileName, input);22const engine = createNewMarkdownEngine();23assert.strictEqual((await engine.render(doc)).html, output);24});2526test('Renders a string', async () => {27const engine = createNewMarkdownEngine();28assert.strictEqual((await engine.render(input)).html, output);29});30});3132suite('image-caching', () => {33const input = ' [](no-img.png)   ';3435test('Extracts all images', async () => {36const engine = createNewMarkdownEngine();37const result = await engine.render(input);38assert.deepStrictEqual(result.html,39'<p data-line="0" class="code-line" dir="auto">'40+ '<img src="img.png" alt="" data-src="img.png"> '41+ '<a href="no-img.png" data-href="no-img.png"></a> '42+ '<img src="http://example.org/img.png" alt="" data-src="http://example.org/img.png"> '43+ '<img src="img.png" alt="" data-src="img.png"> '44+ '<img src="./img2.png" alt="" data-src="./img2.png">'45+ '</p>\n'46);4748assert.deepStrictEqual([...result.containingImages], ['img.png', 'http://example.org/img.png', './img2.png']);49});50});51});525354