Skip to content

Commit b532374

Browse files
authored
Add test cases for getMatchingWord() (#136)
Add test cases for getMatchingWord() (#136)
1 parent a4d397a commit b532374

File tree

6 files changed

+67
-196
lines changed

6 files changed

+67
-196
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
p
2+
A
3+
(

extension/src/test/suite/AutoCompletion.test.ts

Lines changed: 52 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,35 +3,39 @@ import * as vscode from "vscode";
33
import * as fs from "fs";
44
import * as path from "path";
55
import * as os from 'os';
6-
import { getLispAndDclCompletions,getCmdAndVarsCompletionCandidates } from "../../completion/autocompletionProvider";
7-
import { ReadonlyDocument } from "../../project/readOnlyDocument";
6+
import { getLispAndDclCompletions,
7+
getCmdAndVarsCompletionCandidates,
8+
getMatchingWord } from "../../completion/autocompletionProvider";
89
import { allCmdsAndSysvars } from "../../resources";
10+
import { readFile2TextDocument } from "./helper";
911
let assert = chai.assert;
1012
const testDir = path.join(__dirname + "/../../../extension/src/test");
1113
const outputDir = path.join(testDir + "/OutputFile");
12-
let LispFile = "";
13-
let DclFile = "";
14-
let lispdoc: vscode.TextDocument;
15-
let dcldoc: vscode.TextDocument;
14+
const sourceDir = path.join(testDir + "/SourceFile");
15+
let getWordmatchLispFile = path.join(sourceDir + "/getWordmatch.lsp");
16+
let LispFile = path.join(testDir + "/OutputFile/test.lsp"),
17+
DclFile = path.join(testDir + "/OutputFile/test.dcl"),
18+
lispdoc: vscode.TextDocument,
19+
dcldoc: vscode.TextDocument,
20+
wordmatchDoc: vscode.TextDocument;
1621

1722
fs.mkdir(outputDir, { recursive: true }, (err) => {
1823
if (err) {
1924
return console.error(err);
2025
}
2126
});
2227

23-
function createFakeTextDcoument() {
24-
LispFile = path.join(testDir + "/OutputFile/test.lsp");
25-
DclFile = path.join(testDir + "/OutputFile/test.dcl");
28+
async function createTextDcoument() {
2629
try {
2730
if (!fs.existsSync(LispFile)) {
2831
fs.writeFileSync(LispFile, "");
2932
}
3033
if (!fs.existsSync(DclFile)) {
3134
fs.writeFileSync(DclFile, "");
3235
}
33-
lispdoc = ReadonlyDocument.open(LispFile);
34-
dcldoc = ReadonlyDocument.open(DclFile);
36+
lispdoc = await readFile2TextDocument(LispFile);
37+
dcldoc = await readFile2TextDocument(DclFile);
38+
wordmatchDoc = await readFile2TextDocument(getWordmatchLispFile);
3539
} catch (error) {
3640
console.log(error);
3741
}
@@ -61,12 +65,10 @@ function getSuggestLabelCMD(cmd :string[] ,inputword : string,isupper :boolean){
6165

6266
suite("AutoCompletion Tests", function () {
6367
// Windows only functions (vla-,vlax-,vlr-,vl-load-com,vl-load-reactors,vlisp-)
64-
suiteSetup(() => {
65-
createFakeTextDcoument();
68+
suiteSetup(async () => {
69+
await createTextDcoument();
6670
});
6771
test("AutoCompletion Test for de",async function () {
68-
// this.timeout(0);
69-
// await vscode.extensions.getExtension("Autodesk.autolispext").activate();
7072
const inputword = "de";
7173
try {
7274
const isupper = false;
@@ -268,4 +270,39 @@ suite("AutoCompletion Tests", function () {
268270
}
269271
});
270272

273+
//Test GetMatchingWord function
274+
test("GetMatchingWord Test for [p,true]", async function () {
275+
let fn = "GetMatchingWord Test for [p,true]";
276+
try {
277+
let cursorPos = new vscode.Position(0, 0);
278+
let expectedList = ["p", false];
279+
chai.expect(getMatchingWord(wordmatchDoc, cursorPos)).to.eql(expectedList);
280+
} catch (err) {
281+
assert.fail(`AutoCompletion test for ${fn} failed`);
282+
}
283+
});
284+
285+
test("GetMatchingWord Test for [A,false]", async function () {
286+
let fn = "GetMatchingWord Test for [A,false]";
287+
try {
288+
let cursorPos = new vscode.Position(1, 0);
289+
let expectedList = ["A", true];
290+
chai.expect(getMatchingWord(wordmatchDoc, cursorPos)).to.eql(expectedList);
291+
} catch (err) {
292+
assert.fail(`AutoCompletion test for ${fn} failed`);
293+
}
294+
});
295+
296+
test("GetMatchingWord Test for [(,false]", async function () {
297+
//Test wordSep = " &#^()[]|;'\".";
298+
let fn = "GetMatchingWord Test for [(,false]";
299+
try {
300+
let cursorPos = new vscode.Position(2, 3);
301+
let expectedList = ["(", false];
302+
chai.expect(getMatchingWord(wordmatchDoc, cursorPos)).to.eql(expectedList);
303+
} catch (err) {
304+
assert.fail(`AutoCompletion test for ${fn} failed`);
305+
}
306+
});
307+
271308
});

extension/src/test/suite/helper.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import * as vscode from 'vscode';
12

23
export async function sleep(ms: number) {
34
console.log(`sleep for ${ms} ms for the extension activated`);
@@ -10,3 +11,14 @@ export function princ(str : any){
1011
var value = str[name];
1112
console.log(`-----the ${name} is ${value.toString()}-----`);
1213
}
14+
//This method is to read a file and return the vscode.TextDocument object
15+
export async function readFile2TextDocument(filepath: string) : Promise<vscode.TextDocument | undefined> {
16+
let doc : vscode.TextDocument;
17+
try {
18+
doc = await vscode.workspace.openTextDocument(filepath);
19+
return doc;
20+
} catch (error) {
21+
console.log(error);
22+
return undefined;
23+
}
24+
}

test_case/pdfMarkups.lsp

Lines changed: 0 additions & 162 deletions
This file was deleted.

test_case/project_test_file.prj

Lines changed: 0 additions & 16 deletions
This file was deleted.

test_case/test_remove.lsp

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)