systelab-components-wdio-test
Version:
Widgets to be use in the E2E Tests based in WDIO
79 lines (78 loc) • 3.19 kB
JavaScript
import { AutomationEnvironment, ElementFinderBuilder } from '../../wdio';
import { JSONSchemaValidator } from './schema/json-schema-validator';
import { HttpStatus } from './http-status';
import { ErrorHandlerAPI } from './error-handler.api';
export class ActionAPI {
static async click(req, res) {
try {
AutomationEnvironment.setApplication(+req.params.id);
const requestBody = JSONSchemaValidator.validateBasicElementRequest(req.body);
const element = ElementFinderBuilder.build(requestBody.locators);
await element.click();
return res.status(HttpStatus.NO_CONTENT).send();
}
catch (err) {
return ErrorHandlerAPI.handle(res, err);
}
}
static async moveTo(req, res) {
try {
AutomationEnvironment.setApplication(+req.params.id);
const requestBody = JSONSchemaValidator.validateBasicElementRequest(req.body);
const element = ElementFinderBuilder.build(requestBody.locators);
await element.moveTo();
return res.status(HttpStatus.NO_CONTENT).send();
}
catch (err) {
return ErrorHandlerAPI.handle(res, err);
}
}
static async clear(req, res) {
try {
AutomationEnvironment.setApplication(+req.params.id);
const requestBody = JSONSchemaValidator.validateBasicElementRequest(req.body);
const element = ElementFinderBuilder.build(requestBody.locators);
await element.clear();
return res.status(HttpStatus.NO_CONTENT).send();
}
catch (err) {
return ErrorHandlerAPI.handle(res, err);
}
}
static async write(req, res) {
try {
AutomationEnvironment.setApplication(+req.params.id);
const requestBody = JSONSchemaValidator.validateWriteRequest(req.body);
const element = ElementFinderBuilder.build(requestBody.locators);
await element.write(requestBody.text);
return res.status(HttpStatus.NO_CONTENT).send();
}
catch (err) {
return ErrorHandlerAPI.handle(res, err);
}
}
static async tap(req, res) {
try {
AutomationEnvironment.setApplication(+req.params.id);
const requestBody = JSONSchemaValidator.validateBasicElementRequest(req.body);
const element = ElementFinderBuilder.build(requestBody.locators);
await element.tap();
return res.status(HttpStatus.NO_CONTENT).send();
}
catch (err) {
return ErrorHandlerAPI.handle(res, err);
}
}
static async scroll(req, res) {
try {
AutomationEnvironment.setApplication(+req.params.id);
const requestBody = JSONSchemaValidator.validateScrollRequest(req.body);
const element = ElementFinderBuilder.build(requestBody.locators);
await element.scrollToElement(requestBody.options);
return res.status(HttpStatus.NO_CONTENT).send();
}
catch (err) {
return ErrorHandlerAPI.handle(res, err);
}
}
}