UNPKG

systelab-components-wdio-test

Version:
199 lines (198 loc) 8.71 kB
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); } } }