e2ed
Version:
E2E testing framework over Playwright
59 lines (58 loc) • 1.94 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.pressKey = void 0;
const step_1 = require("../step");
const useContext_1 = require("../useContext");
const asserts_1 = require("../utils/asserts");
const error_1 = require("../utils/error");
/**
* Presses the specified keyboard keys.
*/
const pressKey = async (keyOrSelector, keyOrOptions, maybeOptions) => {
let error;
let key;
let selector;
let options;
if (typeof keyOrSelector === 'string') {
key = keyOrSelector;
if (typeof keyOrOptions === 'string') {
error = new error_1.E2edError('keyOrOptions is string', {
keyOrOptions,
keyOrSelector,
maybeOptions,
});
}
else {
options = keyOrOptions ?? {};
}
}
else {
selector = keyOrSelector;
if (typeof keyOrOptions !== 'string') {
error = new error_1.E2edError('keyOrOptions is not string', {
keyOrOptions,
keyOrSelector,
maybeOptions,
});
}
else {
key = keyOrOptions;
options = maybeOptions ?? {};
}
}
const withDescription = selector !== undefined ? ` on element ${selector.description}` : '';
await (0, step_1.step)(`Press keyboard key${withDescription}: "${key}"`, async () => {
if (error !== undefined) {
throw error;
}
(0, asserts_1.assertValueIsDefined)(key, 'key is defined', options);
const page = (0, useContext_1.getPlaywrightPage)();
if (selector !== undefined) {
await selector.getPlaywrightLocator().press(key, options);
}
else {
await page.keyboard.press(key, options);
}
}, { payload: { key, ...options }, type: 5 /* LogEventType.InternalAction */ });
};
exports.pressKey = pressKey;