UNPKG

systelab-components-wdio-test

Version:
79 lines (78 loc) 3.19 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 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); } } }