UNPKG

systelab-components-test

Version:

Widgets to be use in the E2E Tests based in Protractor

156 lines (155 loc) 7.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var button_1 = require("../widgets/button"); var inputfield_1 = require("../widgets/inputfield"); var TestAttributesService = /** @class */ (function () { function TestAttributesService() { } TestAttributesService.check = function (container) { return tslib_1.__awaiter(this, void 0, void 0, function () { var methods, methods_1, methods_1_1, method, name_1, type, enable, visible, label, mandatory, length_1, widget, e_1_1; var e_1, _a; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: methods = Object.getOwnPropertyNames(Object.getPrototypeOf(container)); _b.label = 1; case 1: _b.trys.push([1, 9, 10, 11]); methods_1 = tslib_1.__values(methods), methods_1_1 = methods_1.next(); _b.label = 2; case 2: if (!!methods_1_1.done) return [3 /*break*/, 8]; method = methods_1_1.value; name_1 = Reflect.getMetadata('test:name', container, method); type = Reflect.getMetadata('test:type', container, method); enable = Reflect.getMetadata('test:enable', container, method); visible = Reflect.getMetadata('test:visible', container, method); label = Reflect.getMetadata('test:label', container, method); mandatory = Reflect.getMetadata('test:mandatory', container, method); length_1 = Reflect.getMetadata('test:length', container, method); if (!name_1) return [3 /*break*/, 7]; return [4 /*yield*/, Reflect.apply(container[method], container, [])]; case 3: widget = _b.sent(); if (!this.isButton(widget)) return [3 /*break*/, 5]; return [4 /*yield*/, this.checkButton(widget, enable, visible)]; case 4: _b.sent(); return [3 /*break*/, 7]; case 5: if (!this.isInputField(widget)) return [3 /*break*/, 7]; return [4 /*yield*/, this.checkInputField(widget, enable, visible, label, mandatory, length_1)]; case 6: _b.sent(); _b.label = 7; case 7: methods_1_1 = methods_1.next(); return [3 /*break*/, 2]; case 8: return [3 /*break*/, 11]; case 9: e_1_1 = _b.sent(); e_1 = { error: e_1_1 }; return [3 /*break*/, 11]; case 10: try { if (methods_1_1 && !methods_1_1.done && (_a = methods_1.return)) _a.call(methods_1); } finally { if (e_1) throw e_1.error; } return [7 /*endfinally*/]; case 11: return [2 /*return*/]; } }); }); }; TestAttributesService.checkButton = function (button, enable, visible) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: if (!(enable !== undefined)) return [3 /*break*/, 2]; return [4 /*yield*/, expect(button.isEnabled()) .toEqual(enable)]; case 1: _a.sent(); _a.label = 2; case 2: if (!(visible !== undefined)) return [3 /*break*/, 4]; return [4 /*yield*/, expect(button.isDisplayed()) .toEqual(visible)]; case 3: _a.sent(); _a.label = 4; case 4: return [2 /*return*/]; } }); }); }; TestAttributesService.checkInputField = function (input, enable, visible, label, mandatory, length) { return tslib_1.__awaiter(this, void 0, void 0, function () { var text, text2; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: if (!(enable !== undefined)) return [3 /*break*/, 2]; return [4 /*yield*/, expect(input.isEnabled()) .toEqual(enable)]; case 1: _a.sent(); _a.label = 2; case 2: if (!(visible !== undefined)) return [3 /*break*/, 4]; return [4 /*yield*/, expect(input.isDisplayed()) .toEqual(visible)]; case 3: _a.sent(); _a.label = 4; case 4: if (!(length !== undefined)) return [3 /*break*/, 11]; text = this.getRandomWord(length); return [4 /*yield*/, input.clear()]; case 5: _a.sent(); return [4 /*yield*/, input.setText(text)]; case 6: _a.sent(); return [4 /*yield*/, expect(input.getText()) .toEqual(text)]; case 7: _a.sent(); text2 = this.getRandomWord(length + 1); return [4 /*yield*/, input.clear()]; case 8: _a.sent(); return [4 /*yield*/, input.setText(text2)]; case 9: _a.sent(); return [4 /*yield*/, expect(input.getText()) .toEqual(text2.substring(0, length))]; case 10: _a.sent(); _a.label = 11; case 11: return [2 /*return*/]; } }); }); }; TestAttributesService.isButton = function (widget) { return widget instanceof button_1.Button; }; TestAttributesService.isInputField = function (widget) { return widget instanceof inputfield_1.InputField; }; TestAttributesService.getRandomWord = function (length) { var result = ''; var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; var charactersLength = characters.length; for (var i = 0; i < length; i++) { result += characters.charAt(Math.floor(Math.random() * charactersLength)); } return result; }; return TestAttributesService; }()); exports.TestAttributesService = TestAttributesService;