systelab-components-test
Version:
Widgets to be use in the E2E Tests based in Protractor
156 lines (155 loc) • 7.58 kB
JavaScript
"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;