@luminati-io/webdriverio8
Version:
Next-gen browser and mobile automation test framework for Node.js
43 lines • 3.41 kB
JavaScript
import os from 'node:os';
import BaseAction from './base.js';
import { Key } from '../../constants.js';
export default class KeyAction extends BaseAction {
constructor(instance, params) {
super(instance, 'key', params);
}
#sanitizeKey(value) {
if (typeof value !== 'string') {
throw new Error(`Invalid type for key input: "${typeof value}", expected a string!`);
}
const platformName = this.instance.capabilities.platformName;
const isMac = (
// check capabilities first
platformName && platformName.match(/mac(\s)*os/i) ||
// if not set, expect we run locally
(this.instance.options.hostname?.match(/0\.0\.0\.0|127\.0\.0\.1|local/i) && os.type().match(/darwin/i)));
if (value === Key.Ctrl) {
return isMac ? Key.Command : Key.Control;
}
if (value.length > 1) {
throw new Error(`Your key input contains more than one character: "${value}", only one is allowed though!`);
}
return value;
}
/**
* Generates a key up action.
* @param value key value
*/
up(value) {
this.sequence.push({ type: 'keyUp', value: this.#sanitizeKey(value) });
return this;
}
/**
* Generates a key down action.
* @param value key value
*/
down(value) {
this.sequence.push({ type: 'keyDown', value: this.#sanitizeKey(value) });
return this;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL2FjdGlvbnMva2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUd4QixPQUFPLFVBQVUsTUFBTSxXQUFXLENBQUE7QUFDbEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBRXhDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sU0FBVSxTQUFRLFVBQVU7SUFDN0MsWUFBYSxRQUE2QixFQUFFLE1BQXlCO1FBQ2pFLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRCxZQUFZLENBQUUsS0FBYTtRQUN2QixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLE9BQU8sS0FBSyx1QkFBdUIsQ0FBQyxDQUFBO1FBQ3hGLENBQUM7UUFFRCxNQUFNLFlBQVksR0FBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQXlDLENBQUMsWUFBWSxDQUFBO1FBQzFGLE1BQU0sS0FBSyxHQUFHO1FBQ1YsMkJBQTJCO1FBQzNCLFlBQVksSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQztZQUNqRCxvQ0FBb0M7WUFDcEMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLGdDQUFnQyxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUMxRyxDQUFBO1FBRUQsSUFBSSxLQUFLLEtBQUssR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JCLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFBO1FBQzVDLENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsS0FBSyxnQ0FBZ0MsQ0FBQyxDQUFBO1FBQy9HLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQTtJQUNoQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsRUFBRSxDQUFFLEtBQWE7UUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ3RFLE9BQU8sSUFBSSxDQUFBO0lBQ2YsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksQ0FBRSxLQUFhO1FBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUN4RSxPQUFPLElBQUksQ0FBQTtJQUNmLENBQUM7Q0FDSiJ9