|
1 | | -import * as assert from 'assert'; |
| 1 | +import * as assert from "assert"; |
| 2 | +import * as vscode from "vscode"; |
| 3 | +import { Position } from "vscode"; |
| 4 | +import * as path from "path"; |
2 | 5 |
|
3 | | -// You can import and use all API from the 'vscode' module |
4 | | -// as well as import your extension to test it |
5 | | -import * as vscode from 'vscode'; |
6 | | -// import * as myExtension from '../../extension'; |
| 6 | +export const TEST_WORKSPACE_PATH = path.resolve(__dirname, "..", "..", "test"); |
| 7 | +export const TEST_MD_FILE_PATH = path.resolve(TEST_WORKSPACE_PATH, "test.md"); |
7 | 8 |
|
8 | | -suite('Extension Test Suite', () => { |
9 | | - vscode.window.showInformationMessage('Start all tests.'); |
| 9 | +function sleep(ms: number): Promise<void> { |
| 10 | + return new Promise((resolve) => { |
| 11 | + setTimeout(resolve, ms); |
| 12 | + }); |
| 13 | +} |
10 | 14 |
|
11 | | - test('Sample test', () => { |
12 | | - assert.strictEqual(-1, [1, 2, 3].indexOf(5)); |
13 | | - assert.strictEqual(-1, [1, 2, 3].indexOf(0)); |
14 | | - }); |
| 15 | +suite("Generating Code Block", () => { |
| 16 | + test("Empty line code block.", async () => { |
| 17 | + const document = await vscode.workspace.openTextDocument(TEST_MD_FILE_PATH); |
| 18 | + const editor = await vscode.window.showTextDocument(document); |
| 19 | + |
| 20 | + // Initialize Editor |
| 21 | + await editor.edit((editBuilder) => { |
| 22 | + const fullRange = new vscode.Range( |
| 23 | + new vscode.Position(0, 0), |
| 24 | + document.positionAt(document.getText().length) |
| 25 | + ); |
| 26 | + editBuilder.delete(fullRange); |
| 27 | + }); |
| 28 | + |
| 29 | + const position = editor.selection.active; |
| 30 | + |
| 31 | + // Exectue Command |
| 32 | + await vscode.commands.executeCommand( |
| 33 | + "markdown.extension.codeBlock.emptyLine" |
| 34 | + ); |
| 35 | + |
| 36 | + await sleep(300); |
| 37 | + |
| 38 | + const newPosition = editor.selection.active; |
| 39 | + |
| 40 | + // Assert |
| 41 | + assert.strictEqual(position.line, newPosition.line - 1); |
| 42 | + |
| 43 | + const actual = document.getText().replace(/\r\n/g, ""); |
| 44 | + assert.strictEqual(actual, `\`\`\`\`\`\``); |
| 45 | + }); |
15 | 46 | }); |
0 commit comments