workspaces main tests

This commit is contained in:
Benjamin Pasero
2017-07-12 06:34:39 +02:00
parent 3ec53bfaa7
commit c890422b05
2 changed files with 78 additions and 1 deletions
@@ -16,7 +16,7 @@ export class WorkspacesMainService implements IWorkspacesMainService {
public _serviceBrand: any;
private workspacesHome: string;
protected workspacesHome: string;
constructor( @IEnvironmentService private environmentService: IEnvironmentService) {
this.workspacesHome = environmentService.workspacesHome;
@@ -0,0 +1,77 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import * as assert from 'assert';
import fs = require('fs');
import os = require('os');
import path = require('path');
import extfs = require('vs/base/node/extfs');
import pfs = require('vs/base/node/pfs');
import { EnvironmentService } from 'vs/platform/environment/node/environmentService';
import { parseArgs } from 'vs/platform/environment/node/argv';
import { WorkspacesMainService } from "vs/platform/workspaces/electron-main/workspacesMainService";
import { IStoredWorkspace } from "vs/platform/workspaces/common/workspaces";
class TestWorkspacesMainService extends WorkspacesMainService {
constructor(workspacesHome: string) {
super(new EnvironmentService(parseArgs(process.argv), process.execPath));
this.workspacesHome = workspacesHome;
}
}
suite('WorkspacesMainService', () => {
const parentDir = path.join(os.tmpdir(), 'vsctests', 'service');
const workspacesHome = path.join(parentDir, 'Workspaces');
let service: TestWorkspacesMainService;
setup(done => {
service = new TestWorkspacesMainService(workspacesHome);
// Delete any existing backups completely and then re-create it.
extfs.del(workspacesHome, os.tmpdir(), () => {
pfs.mkdirp(workspacesHome).then(() => {
done();
});
});
});
teardown(done => {
extfs.del(workspacesHome, os.tmpdir(), done);
});
test('createWorkspace (no folders)', done => {
return service.createWorkspace().then(workspace => {
assert.ok(workspace);
assert.ok(fs.existsSync(workspace.workspaceConfigPath));
assert.equal(workspace.folders.length, 0);
const ws = JSON.parse(fs.readFileSync(workspace.workspaceConfigPath).toString()) as IStoredWorkspace;
assert.equal(ws.id, workspace.id);
assert.deepEqual(ws.folders, workspace.folders);
done();
});
});
test('createWorkspace (folders)', done => {
return service.createWorkspace([process.cwd(), os.tmpdir()]).then(workspace => {
assert.ok(workspace);
assert.ok(fs.existsSync(workspace.workspaceConfigPath));
assert.equal(workspace.folders.length, 2);
assert.equal(workspace.folders[0], process.cwd());
assert.equal(workspace.folders[1], os.tmpdir());
const ws = JSON.parse(fs.readFileSync(workspace.workspaceConfigPath).toString()) as IStoredWorkspace;
assert.equal(ws.id, workspace.id);
assert.deepEqual(ws.folders, workspace.folders);
done();
});
});
});