97 lines
3.6 KiB
TypeScript
97 lines
3.6 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
import { Application, ApplicationOptions, Quality } from '../../../../automation';
|
|
import { join } from 'path';
|
|
|
|
export function setup(stableCodePath: string, testDataPath: string) {
|
|
|
|
describe('Datamigration', () => {
|
|
it(`verifies opened editors are restored`, async function () {
|
|
if (!stableCodePath) {
|
|
this.skip();
|
|
}
|
|
|
|
const userDataDir = join(testDataPath, 'd2'); // different data dir from the other tests
|
|
|
|
const stableOptions: ApplicationOptions = Object.assign({}, this.defaultOptions);
|
|
stableOptions.codePath = stableCodePath;
|
|
stableOptions.userDataDir = userDataDir;
|
|
stableOptions.quality = Quality.Stable;
|
|
|
|
const stableApp = new Application(stableOptions);
|
|
await stableApp!.start();
|
|
|
|
// Open 3 editors and pin 2 of them
|
|
await stableApp.workbench.quickaccess.openFile('www');
|
|
await stableApp.workbench.quickaccess.runCommand('View: Keep Editor');
|
|
|
|
await stableApp.workbench.quickaccess.openFile('app.js');
|
|
await stableApp.workbench.quickaccess.runCommand('View: Keep Editor');
|
|
|
|
await stableApp.workbench.editors.newUntitledFile();
|
|
|
|
await stableApp.stop();
|
|
|
|
const insiderOptions: ApplicationOptions = Object.assign({}, this.defaultOptions);
|
|
insiderOptions.userDataDir = userDataDir;
|
|
|
|
const insidersApp = new Application(insiderOptions);
|
|
await insidersApp!.start(false /* not expecting walkthrough path */);
|
|
|
|
// Verify 3 editors are open
|
|
await insidersApp.workbench.editors.waitForEditorFocus('Untitled-1');
|
|
await insidersApp.workbench.editors.selectTab('app.js');
|
|
await insidersApp.workbench.editors.selectTab('www');
|
|
|
|
await insidersApp.stop();
|
|
});
|
|
|
|
it(`verifies that 'hot exit' works for dirty files`, async function () {
|
|
if (!stableCodePath) {
|
|
this.skip();
|
|
}
|
|
|
|
const userDataDir = join(testDataPath, 'd3'); // different data dir from the other tests
|
|
|
|
const stableOptions: ApplicationOptions = Object.assign({}, this.defaultOptions);
|
|
stableOptions.codePath = stableCodePath;
|
|
stableOptions.userDataDir = userDataDir;
|
|
stableOptions.quality = Quality.Stable;
|
|
|
|
const stableApp = new Application(stableOptions);
|
|
await stableApp!.start();
|
|
|
|
await stableApp.workbench.editors.newUntitledFile();
|
|
|
|
const untitled = 'Untitled-1';
|
|
const textToTypeInUntitled = 'Hello from Untitled';
|
|
await stableApp.workbench.editor.waitForTypeInEditor(untitled, textToTypeInUntitled);
|
|
|
|
const readmeMd = 'readme.md';
|
|
const textToType = 'Hello, Code';
|
|
await stableApp.workbench.quickaccess.openFile(readmeMd);
|
|
await stableApp.workbench.editor.waitForTypeInEditor(readmeMd, textToType);
|
|
|
|
await stableApp.stop();
|
|
|
|
const insiderOptions: ApplicationOptions = Object.assign({}, this.defaultOptions);
|
|
insiderOptions.userDataDir = userDataDir;
|
|
|
|
const insidersApp = new Application(insiderOptions);
|
|
await insidersApp!.start(false /* not expecting walkthrough path */);
|
|
|
|
await insidersApp.workbench.editors.waitForActiveTab(readmeMd, true);
|
|
await insidersApp.workbench.editor.waitForEditorContents(readmeMd, c => c.indexOf(textToType) > -1);
|
|
|
|
await insidersApp.workbench.editors.waitForTab(untitled, true);
|
|
await insidersApp.workbench.editors.selectTab(untitled);
|
|
await insidersApp.workbench.editor.waitForEditorContents(untitled, c => c.indexOf(textToTypeInUntitled) > -1);
|
|
|
|
await insidersApp.stop();
|
|
});
|
|
});
|
|
}
|