vscode/test/automation/src/keybindings.ts

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

35 lines
1.6 KiB
TypeScript
Raw Normal View History

/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { Code } from './code';
2018-09-24 08:33:34 +00:00
const SEARCH_INPUT = '.keybindings-header .settings-search-input input';
2017-10-10 12:18:55 +00:00
export class KeybindingsEditor {
constructor(private code: Code) { }
2020-12-02 16:48:16 +00:00
async updateKeybinding(command: string, commandName: string | undefined, keybinding: string, keybindingTitle: string): Promise<any> {
if (process.platform === 'darwin') {
await this.code.dispatchKeybinding('cmd+k cmd+s');
} else {
await this.code.dispatchKeybinding('ctrl+k ctrl+s');
}
2018-04-11 14:20:09 +00:00
await this.code.waitForActiveElement(SEARCH_INPUT);
2020-12-02 16:48:16 +00:00
await this.code.waitForSetValue(SEARCH_INPUT, `@command:${command}`);
2020-12-02 16:48:16 +00:00
const commandTitle = commandName ? `${commandName} (${command})` : command;
await this.code.waitAndClick(`.keybindings-table-container .monaco-list-row .command[aria-label="${commandTitle}"]`);
await this.code.waitForElement(`.keybindings-table-container .monaco-list-row.focused.selected .command[aria-label="${commandTitle}"]`);
2020-12-02 16:48:16 +00:00
await this.code.dispatchKeybinding('enter');
2018-06-04 14:27:18 +00:00
await this.code.waitForActiveElement('.defineKeybindingWidget .monaco-inputbox input');
2018-04-11 14:20:09 +00:00
await this.code.dispatchKeybinding(keybinding);
await this.code.dispatchKeybinding('enter');
await this.code.waitForElement(`.keybindings-table-container .keybinding-label div[aria-label="${keybindingTitle}"]`);
}
}