Skip to content

Commit 562c2aa

Browse files
committed
Test: Add test case for generating empty line code block
1 parent bbf06d7 commit 562c2aa

File tree

1 file changed

+42
-11
lines changed

1 file changed

+42
-11
lines changed

src/test/suite/extension.test.ts

Lines changed: 42 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,46 @@
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";
25

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");
78

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+
}
1014

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+
});
1546
});

0 commit comments

Comments
 (0)