Skip to content

Commit e723f81

Browse files
committed
Add more tests
1 parent 65cd415 commit e723f81

4 files changed

Lines changed: 38 additions & 17 deletions

File tree

test/smoke/src/areas/preferences/preferences.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,4 @@ export function setup() {
3434
await app.workbench.settingsEditor.clearUserSettings();
3535
});
3636
});
37-
}
37+
}

test/smoke/src/areas/preferences/settings.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export class SettingsEditor {
3030

3131
async clearUserSettings(): Promise<void> {
3232
const settingsPath = path.join(this.userDataPath, 'User', 'settings.json');
33-
await new Promise((c, e) => fs.writeFile(settingsPath, '{}', 'utf8', err => err ? e(err) : c()));
33+
await new Promise((c, e) => fs.writeFile(settingsPath, '{\n}', 'utf8', err => err ? e(err) : c()));
3434

3535
await this.openSettings();
3636
await this.editor.waitForEditorContents('settings.json', c => c === '{}');
@@ -39,4 +39,4 @@ export class SettingsEditor {
3939
private async openSettings(): Promise<void> {
4040
await this.quickopen.runCommand('Preferences: Open Settings (JSON)');
4141
}
42-
}
42+
}

test/smoke/src/main.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,8 @@ if (typeof stablePath === 'string' && !fs.existsSync(stablePath)) {
141141
fail(`Can't find Stable Code at ${stablePath}.`);
142142
}
143143

144-
const userDataDir = path.join(testDataPath, 'd');
144+
// TODO: Server should be launched from smoke tests
145+
const userDataDir = opts.web ? path.join(process.env.HOME!, '.vscode-remote/data') : path.join(testDataPath, 'd');
145146

146147
let quality: Quality;
147148
if (process.env.VSCODE_DEV === '1') {
@@ -245,6 +246,11 @@ describe('Running Code', () => {
245246
const app = new Application(this.defaultOptions);
246247
await app!.start(opts.web ? false : undefined);
247248
this.app = app;
249+
250+
// TODO: User data dir is not cleared for web yet
251+
if (opts.web) {
252+
await app.workbench.settingsEditor.clearUserSettings();
253+
}
248254
});
249255

250256
after(async function () {
@@ -273,7 +279,8 @@ describe('Running Code', () => {
273279
}
274280

275281
if (opts.web) {
276-
console.log('setup term tests only');
282+
setupDataExplorerTests();
283+
setupDataPreferencesTests();
277284
setupTerminalTests();
278285
return;
279286
}

test/smoke/src/vscode/puppeteer-driver.ts

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,13 @@ const height = 800;
1111
const vscodeToPuppeteerKey = {
1212
cmd: 'Meta',
1313
ctrl: 'Control',
14-
enter: 'Enter'
14+
enter: 'Enter',
15+
escape: 'Escape',
16+
right: 'ArrowRight',
17+
up: 'ArrowUp',
18+
down: 'ArrowDown',
19+
left: 'ArrowLeft',
20+
home: 'Home'
1521
};
1622

1723
function buildDriver(browser: puppeteer.Browser, page: puppeteer.Page): IDriver {
@@ -24,18 +30,26 @@ function buildDriver(browser: puppeteer.Browser, page: puppeteer.Page): IDriver
2430
reloadWindow: (windowId) => Promise.resolve(),
2531
exitApplication: () => browser.close(),
2632
dispatchKeybinding: async (windowId, keybinding) => {
27-
const keys = keybinding.split('+');
28-
const keysDown: string[] = [];
29-
for (let i = 0; i < keys.length; i++) {
30-
if (keys[i] in vscodeToPuppeteerKey) {
31-
keys[i] = vscodeToPuppeteerKey[keys[i]];
33+
const chords = keybinding.split(' ');
34+
chords.forEach(async (chord, index) => {
35+
if (index > 0) {
36+
await timeout(100);
3237
}
33-
await page.keyboard.down(keys[i]);
34-
keysDown.push(keys[i]);
35-
}
36-
while (keysDown.length > 0) {
37-
await page.keyboard.up(keysDown.pop()!);
38-
}
38+
const keys = chord.split('+');
39+
const keysDown: string[] = [];
40+
for (let i = 0; i < keys.length; i++) {
41+
if (keys[i] in vscodeToPuppeteerKey) {
42+
keys[i] = vscodeToPuppeteerKey[keys[i]];
43+
}
44+
await page.keyboard.down(keys[i]);
45+
keysDown.push(keys[i]);
46+
}
47+
while (keysDown.length > 0) {
48+
await page.keyboard.up(keysDown.pop()!);
49+
}
50+
});
51+
52+
await timeout(100);
3953
},
4054
click: async (windowId, selector, xoffset, yoffset) => {
4155
const { x, y } = await page.evaluate(`

0 commit comments

Comments
 (0)