systelab-components-wdio-test
Version:
Widgets to be use in the E2E Tests based in WDIO
199 lines (198 loc) • 8.71 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 QueryAPI {
static async isPresent(req, res) {
try {
AutomationEnvironment.setApplication(+req.params.id);
const requestBody = JSONSchemaValidator.validateBasicElementRequest(req.body);
const element = ElementFinderBuilder.build(requestBody.locators);
const isPresent = await element.isPresent();
return res.status(HttpStatus.OK).json({ isPresent }).send();
}
catch (err) {
return ErrorHandlerAPI.handle(res, err);
}
}
static async isDisplayed(req, res) {
try {
AutomationEnvironment.setApplication(+req.params.id);
const requestBody = JSONSchemaValidator.validateBasicElementRequest(req.body);
const element = ElementFinderBuilder.build(requestBody.locators);
const isDisplayed = await element.isDisplayed();
return res.status(HttpStatus.OK).json({ isDisplayed }).send();
}
catch (err) {
return ErrorHandlerAPI.handle(res, err);
}
}
static async isClickable(req, res) {
try {
AutomationEnvironment.setApplication(+req.params.id);
const requestBody = JSONSchemaValidator.validateBasicElementRequest(req.body);
const element = ElementFinderBuilder.build(requestBody.locators);
const isClickable = await element.isClickable();
return res.status(HttpStatus.OK).json({ isDisplayed: isClickable }).send();
}
catch (err) {
return ErrorHandlerAPI.handle(res, err);
}
}
static async isEnabled(req, res) {
try {
AutomationEnvironment.setApplication(+req.params.id);
const requestBody = JSONSchemaValidator.validateBasicElementRequest(req.body);
const element = ElementFinderBuilder.build(requestBody.locators);
const isEnabled = await element.isEnabled();
return res.status(HttpStatus.OK).json({ isDisplayed: isEnabled }).send();
}
catch (err) {
return ErrorHandlerAPI.handle(res, err);
}
}
static async isSelected(req, res) {
try {
AutomationEnvironment.setApplication(+req.params.id);
const requestBody = JSONSchemaValidator.validateBasicElementRequest(req.body);
const element = ElementFinderBuilder.build(requestBody.locators);
const isSelected = await element.isSelected();
return res.status(HttpStatus.OK).json({ isDisplayed: isSelected }).send();
}
catch (err) {
return ErrorHandlerAPI.handle(res, err);
}
}
static async isFocused(req, res) {
try {
AutomationEnvironment.setApplication(+req.params.id);
const requestBody = JSONSchemaValidator.validateBasicElementRequest(req.body);
const element = ElementFinderBuilder.build(requestBody.locators);
const isFocused = await element.isFocused();
return res.status(HttpStatus.OK).json({ isDisplayed: isFocused }).send();
}
catch (err) {
return ErrorHandlerAPI.handle(res, err);
}
}
static async getText(req, res) {
try {
AutomationEnvironment.setApplication(+req.params.id);
const requestBody = JSONSchemaValidator.validateBasicElementRequest(req.body);
const element = ElementFinderBuilder.build(requestBody.locators);
const text = await element.getText();
return res.status(HttpStatus.OK).json({ text }).send();
}
catch (err) {
return ErrorHandlerAPI.handle(res, err);
}
}
static async getValue(req, res) {
try {
AutomationEnvironment.setApplication(+req.params.id);
const requestBody = JSONSchemaValidator.validateBasicElementRequest(req.body);
const element = ElementFinderBuilder.build(requestBody.locators);
const value = await element.getValue();
return res.status(HttpStatus.OK).json({ value }).send();
}
catch (err) {
return ErrorHandlerAPI.handle(res, err);
}
}
static async getHTML(req, res) {
try {
AutomationEnvironment.setApplication(+req.params.id);
const requestBody = JSONSchemaValidator.validateHTMLRequest(req.body);
const element = ElementFinderBuilder.build(requestBody.locators);
const html = await element.getHTML(requestBody.includeSelectorTag);
return res.status(HttpStatus.OK).json({ html }).send();
}
catch (err) {
return ErrorHandlerAPI.handle(res, err);
}
}
static async getAttribute(req, res) {
try {
AutomationEnvironment.setApplication(+req.params.id);
const requestBody = JSONSchemaValidator.validatePropertyRequest(req.body);
const element = ElementFinderBuilder.build(requestBody.locators);
const attribute = await element.getAttribute(requestBody.name);
return res.status(HttpStatus.OK).json({ attribute }).send();
}
catch (err) {
return ErrorHandlerAPI.handle(res, err);
}
}
static async getCSSProperty(req, res) {
try {
AutomationEnvironment.setApplication(+req.params.id);
const requestBody = JSONSchemaValidator.validateCSSPropertyRequest(req.body);
const element = ElementFinderBuilder.build(requestBody.locators);
const property = await element.getCSSProperty(requestBody.name, requestBody.pseudoElement);
return res.status(HttpStatus.OK).json({ property }).send();
}
catch (err) {
return ErrorHandlerAPI.handle(res, err);
}
}
static async getProperty(req, res) {
try {
AutomationEnvironment.setApplication(+req.params.id);
const requestBody = JSONSchemaValidator.validatePropertyRequest(req.body);
const element = ElementFinderBuilder.build(requestBody.locators);
const property = await element.getProperty(requestBody.name);
return res.status(HttpStatus.OK).json({ property }).send();
}
catch (err) {
return ErrorHandlerAPI.handle(res, err);
}
}
static async getBoundingRect(req, res) {
try {
AutomationEnvironment.setApplication(+req.params.id);
const requestBody = JSONSchemaValidator.validateBasicElementRequest(req.body);
const element = ElementFinderBuilder.build(requestBody.locators);
const boundingRect = await element.getBoundingRect();
return res.status(HttpStatus.OK).json({ boundingRect }).send();
}
catch (err) {
return ErrorHandlerAPI.handle(res, err);
}
}
static async getPosition(req, res) {
try {
AutomationEnvironment.setApplication(+req.params.id);
const requestBody = JSONSchemaValidator.validateBasicElementRequest(req.body);
const element = ElementFinderBuilder.build(requestBody.locators);
const position = await element.getPosition();
return res.status(HttpStatus.OK).json({ position }).send();
}
catch (err) {
return ErrorHandlerAPI.handle(res, err);
}
}
static async getSize(req, res) {
try {
AutomationEnvironment.setApplication(+req.params.id);
const requestBody = JSONSchemaValidator.validateBasicElementRequest(req.body);
const element = ElementFinderBuilder.build(requestBody.locators);
const size = await element.getSize();
return res.status(HttpStatus.OK).json({ size }).send();
}
catch (err) {
return ErrorHandlerAPI.handle(res, err);
}
}
static async count(req, res) {
try {
AutomationEnvironment.setApplication(+req.params.id);
const requestBody = JSONSchemaValidator.validateBasicElementRequest(req.body);
const elementArray = ElementFinderBuilder.build(requestBody.locators);
const count = await elementArray.count();
return res.status(HttpStatus.OK).json({ count }).send();
}
catch (err) {
return ErrorHandlerAPI.handle(res, err);
}
}
}