systelab-components-wdio-test
Version:
Widgets to be use in the E2E Tests based in WDIO
64 lines (63 loc) • 2.39 kB
JavaScript
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);
}
}
}