UNPKG

systelab-components-wdio-test

Version:
64 lines (63 loc) 2.39 kB
import { HttpStatus } from './http-status'; import { ErrorHandlerAPI } from './error-handler.api'; import { ApplicationManager, AutomationEnvironment, Browser } from '../../wdio'; import { JSONSchemaValidator } from './schema/json-schema-validator'; export class ApplicationAPI { static async start(req, res) { try { const requestBody = JSONSchemaValidator.validateApplicationStartRequest(req.body); const application = await ApplicationManager.start(requestBody.browserType, requestBody.options); return res.status(HttpStatus.CREATED).json({ id: application.id }).send(); } catch (err) { return ErrorHandlerAPI.handle(res, err); } } static async stop(req, res) { try { await ApplicationManager.stop(+req.params.id); return res.status(HttpStatus.NO_CONTENT).send(); } catch (err) { return ErrorHandlerAPI.handle(res, err); } } static async navigate(req, res) { try { AutomationEnvironment.setApplication(+req.params.id); const requestBody = JSONSchemaValidator.validateApplicationNavigateRequest(req.body); await Browser.navigateToURL(requestBody.url); return res.status(HttpStatus.NO_CONTENT).send(); } catch (err) { return ErrorHandlerAPI.handle(res, err); } } static async getName(req, res) { try { AutomationEnvironment.setApplication(+req.params.id); return res.status(HttpStatus.OK).json({ name: await Browser.getName() }).send(); } catch (err) { return ErrorHandlerAPI.handle(res, err); } } static async getVersion(req, res) { try { AutomationEnvironment.setApplication(+req.params.id); return res.status(HttpStatus.OK).json({ version: await Browser.getVersion() }).send(); } catch (err) { return ErrorHandlerAPI.handle(res, err); } } static async getOperatingSystem(req, res) { try { AutomationEnvironment.setApplication(+req.params.id); return res.status(HttpStatus.OK).json({ os: await Browser.getOperatingSystem() }).send(); } catch (err) { return ErrorHandlerAPI.handle(res, err); } } }