api tests: cleanup after test run

This commit is contained in:
Benjamin Pasero
2015-11-25 10:28:53 +01:00
parent b7b97fd8ee
commit e5d7c7a919
4 changed files with 33 additions and 12 deletions

View File

@@ -7,17 +7,17 @@
import * as assert from 'assert';
import {workspace, TextDocument, window, Position} from 'vscode';
import {createRandomFile, deleteFile} from './utils';
import {createRandomFile, deleteFile, cleanUp} from './utils';
import {join} from 'path';
import * as fs from 'fs';
import * as os from 'os';
function rndName() {
return Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 10);
}
suite('workspace-namespace', () => {
teardown((done) => {
cleanUp().then(() => done(), (error) => done(error));
});
test('textDocuments', () => {
assert.ok(Array.isArray(workspace.textDocuments));
assert.throws(() => workspace.textDocuments = null);
@@ -47,23 +47,25 @@ suite('workspace-namespace', () => {
test('events: onDidOpenTextDocument, onDidChangeTextDocument, onDidSaveTextDocument', (done) => {
createRandomFile().then(file => {
let disposables = [];
let onDidOpenTextDocument = false;
workspace.onDidOpenTextDocument(e => {
disposables.push(workspace.onDidOpenTextDocument(e => {
assert.equal(e.uri.fsPath, file.fsPath);
onDidOpenTextDocument = true;
});
}));
let onDidChangeTextDocument = false;
workspace.onDidChangeTextDocument(e => {
disposables.push(workspace.onDidChangeTextDocument(e => {
assert.equal(e.document.uri.fsPath, file.fsPath);
onDidChangeTextDocument = true;
});
}));
let onDidSaveTextDocument = false;
workspace.onDidSaveTextDocument(e => {
disposables.push(workspace.onDidSaveTextDocument(e => {
assert.equal(e.uri.fsPath, file.fsPath);
onDidSaveTextDocument = true;
});
}));
return workspace.openTextDocument(file).then(doc => {
return window.showTextDocument(doc).then((editor) => {
@@ -75,6 +77,10 @@ suite('workspace-namespace', () => {
assert.ok(onDidChangeTextDocument);
assert.ok(onDidSaveTextDocument);
while (disposables.length) {
disposables.pop().dispose();
}
return deleteFile(file);
});
});