UNPKG

javascript-typescript-langserver

Version:

Implementation of the Language Server Protocol for JavaScript and TypeScript

88 lines 4.54 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const chai = require("chai"); const chaiAsPromised = require("chai-as-promised"); const fs = require("mz/fs"); const path = require("path"); const rimraf = require("rimraf"); const temp = require("temp"); const fs_1 = require("../fs"); const util_1 = require("../util"); chai.use(chaiAsPromised); const assert = chai.assert; describe('fs.ts', () => { describe('LocalFileSystem', () => { let temporaryDir; let fileSystem; let rootUri; before(() => __awaiter(this, void 0, void 0, function* () { temporaryDir = yield new Promise((resolve, reject) => { temp.mkdir('local-fs', (err, dirPath) => (err ? reject(err) : resolve(dirPath))); }); // global packages contains a package const globalPackagesDir = path.join(temporaryDir, 'node_modules'); yield fs.mkdir(globalPackagesDir); const somePackageDir = path.join(globalPackagesDir, 'some_package'); yield fs.mkdir(somePackageDir); yield fs.mkdir(path.join(somePackageDir, 'src')); yield fs.writeFile(path.join(somePackageDir, 'src', 'function.ts'), 'foo'); // the project dir const projectDir = path.join(temporaryDir, 'project'); rootUri = util_1.path2uri(projectDir) + '/'; yield fs.mkdir(projectDir); yield fs.mkdir(path.join(projectDir, 'foo')); yield fs.mkdir(path.join(projectDir, '@types')); yield fs.mkdir(path.join(projectDir, '@types', 'diff')); yield fs.mkdir(path.join(projectDir, 'node_modules')); yield fs.writeFile(path.join(projectDir, 'tweedledee'), 'hi'); yield fs.writeFile(path.join(projectDir, 'tweedledum'), 'bye'); yield fs.writeFile(path.join(projectDir, 'foo', 'bar.ts'), 'baz'); yield fs.writeFile(path.join(projectDir, '@types', 'diff', 'index.d.ts'), 'baz'); // global package is symlinked into project using npm link yield fs.symlink(somePackageDir, path.join(projectDir, 'node_modules', 'some_package'), 'junction'); fileSystem = new fs_1.LocalFileSystem(rootUri); })); after(() => __awaiter(this, void 0, void 0, function* () { yield new Promise((resolve, reject) => { rimraf(temporaryDir, err => (err ? reject(err) : resolve())); }); })); describe('getWorkspaceFiles()', () => { it('should return all files in the workspace', () => __awaiter(this, void 0, void 0, function* () { const files = yield fileSystem .getWorkspaceFiles() .toArray() .toPromise(); assert.sameMembers(files, [ rootUri + 'tweedledee', rootUri + 'tweedledum', rootUri + 'foo/bar.ts', rootUri + '%40types/diff/index.d.ts', rootUri + 'node_modules/some_package/src/function.ts', ]); })); it('should return all files under specific root', () => __awaiter(this, void 0, void 0, function* () { const files = yield fileSystem .getWorkspaceFiles(rootUri + 'foo') .toArray() .toPromise(); assert.sameMembers(files, [rootUri + 'foo/bar.ts']); })); }); describe('getTextDocumentContent()', () => { it('should read files denoted by absolute URI', () => __awaiter(this, void 0, void 0, function* () { const content = yield fileSystem.getTextDocumentContent(rootUri + 'tweedledee').toPromise(); assert.equal(content, 'hi'); })); }); }); }); //# sourceMappingURL=fs.test.js.map