Skip to content

Commit 6f86106

Browse files
committed
Got globs right 🤦
1 parent e08a261 commit 6f86106

File tree

1 file changed

+17
-11
lines changed

1 file changed

+17
-11
lines changed

test/suite/extension.test.ts

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ function getExtension() {
1111
}
1212

1313
async function delay(ms: number) {
14-
return new Promise((_, reject) => setTimeout(() => reject(`Timeout of ${ms} ms reached.`), ms));
14+
return new Promise((resolve) => setTimeout(() => resolve(false), ms));
1515
}
1616

1717
async function withTimeout(seconds: number, f: Promise<any>) {
@@ -31,6 +31,16 @@ function getWorkspaceFile(name: string) {
3131
return wsroot.with({ path: path.posix.join(wsroot.path, name) });
3232
}
3333

34+
async function deleteWorkspaceFiles() {
35+
const dirContents = await vscode.workspace.fs.readDirectory(getWorkspaceRoot().uri);
36+
console.log(`Deleting test ws contents: ${dirContents}`);
37+
dirContents.forEach(async ([name, type]) => {
38+
const uri: vscode.Uri = getWorkspaceFile(name);
39+
console.log(`Deleting ${uri}`);
40+
await vscode.workspace.fs.delete(getWorkspaceFile(name), { recursive: true });
41+
});
42+
}
43+
3444
suite('Extension Test Suite', () => {
3545
const disposables: vscode.Disposable[] = [];
3646

@@ -49,6 +59,7 @@ suite('Extension Test Suite', () => {
4959
vscode.window.showInformationMessage('Start all tests.');
5060

5161
suiteSetup(async () => {
62+
await deleteWorkspaceFiles();
5263
await getHaskellConfig().update('logFile', 'hls.log');
5364
await getHaskellConfig().update('trace.server', 'messages');
5465
await getHaskellConfig().update('releasesDownloadStoragePath', path.normalize(getWorkspaceFile('bin').fsPath));
@@ -70,30 +81,25 @@ suite('Extension Test Suite', () => {
7081
const exeExt = os.platform.toString() === 'win32' ? '.exe' : '';
7182
console.log('Testing wrapper');
7283
assert.ok(
73-
await withTimeout(30, existsWorkspaceFile(`bin/haskell-language-server-wrapper${exeExt}`)),
84+
await withTimeout(30, existsWorkspaceFile(`bin/haskell-language-server-wrapper*${exeExt}[!.]`)),
7485
'The wrapper executable was not downloaded in 30 seconds'
7586
);
7687
console.log('Testing server');
7788
assert.ok(
78-
await withTimeout(60, existsWorkspaceFile(`bin/haskell-language-server${exeExt}`)),
89+
await withTimeout(60, existsWorkspaceFile(`bin/haskell-language-server-[1-9]*${exeExt}[!.]`)),
7990
'The server executable was not downloaded in 30 seconds'
8091
);
8192
});
8293

8394
test('Server log should be created', async () => {
8495
await vscode.workspace.openTextDocument(getWorkspaceFile('Main.hs'));
85-
assert.ok(await withTimeout(5, existsWorkspaceFile('hls.log')), 'Server log not created in 5 seconds');
96+
assert.ok(await withTimeout(30, existsWorkspaceFile('hls.log')), 'Server log not created in 30 seconds');
8697
});
8798

8899
suiteTeardown(async () => {
89100
disposables.forEach((d) => d.dispose());
90101
await vscode.commands.executeCommand(CommandNames.StopServerCommandName);
91-
const dirContents = await vscode.workspace.fs.readDirectory(getWorkspaceRoot().uri);
92-
console.log(`Deleting test ws contents: ${dirContents}`);
93-
dirContents.forEach(async ([name, type]) => {
94-
const uri: vscode.Uri = getWorkspaceFile(name);
95-
console.log(`Deleting ${uri}`);
96-
await vscode.workspace.fs.delete(getWorkspaceFile(name), { recursive: true });
97-
});
102+
delay(5); // to give time to shutdown server
103+
await deleteWorkspaceFiles();
98104
});
99105
});

0 commit comments

Comments
 (0)