UNPKG

@o3r/testing

Version:

The module provides testing (e2e, unit test) utilities to help you build your own E2E pipeline integrating visual testing.

168 lines 7.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.O3rSliderElement = void 0; var tslib_1 = require("tslib"); var element_1 = require("../element"); /** * Implementation dedicated to Playwright. */ var O3rSliderElement = /** @class */ (function (_super) { tslib_1.__extends(O3rSliderElement, _super); function O3rSliderElement(sourceElement, trackSelector, thumbSelector) { var _this = _super.call(this, sourceElement) || this; _this.trackSelector = trackSelector; _this.thumbSelector = thumbSelector; return _this; } O3rSliderElement.prototype.getInputElement = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { var subElement, _a; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: _b.trys.push([0, 2, , 3]); subElement = this.sourceElement.element.locator('input[type="range"]'); return [4 /*yield*/, subElement.count()]; case 1: if (_b.sent()) { return [2 /*return*/, subElement.first()]; } return [2 /*return*/, this.sourceElement.element]; case 2: _a = _b.sent(); return [2 /*return*/, this.sourceElement.element]; case 3: return [2 /*return*/]; } }); }); }; O3rSliderElement.prototype.getTrackElement = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { var subElement, _a; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: if (!this.trackSelector) { return [2 /*return*/, this.sourceElement.element]; } _b.label = 1; case 1: _b.trys.push([1, 3, , 4]); subElement = this.sourceElement.element.locator(this.trackSelector); return [4 /*yield*/, subElement.count()]; case 2: if (_b.sent()) { return [2 /*return*/, subElement.first()]; } return [2 /*return*/, this.sourceElement.element]; case 3: _a = _b.sent(); return [2 /*return*/, this.sourceElement.element]; case 4: return [2 /*return*/]; } }); }); }; O3rSliderElement.prototype.getThumbElement = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { var subElement, _a; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: if (!this.thumbSelector) { return [2 /*return*/, this.sourceElement.element]; } _b.label = 1; case 1: _b.trys.push([1, 3, , 4]); subElement = this.sourceElement.element.locator(this.thumbSelector); return [4 /*yield*/, subElement.count()]; case 2: if (_b.sent()) { return [2 /*return*/, subElement.first()]; } return [2 /*return*/, this.sourceElement.element]; case 3: _a = _b.sent(); return [2 /*return*/, this.sourceElement.element]; case 4: return [2 /*return*/]; } }); }); }; /** @inheritdoc */ O3rSliderElement.prototype.setValue = function (value) { return tslib_1.__awaiter(this, void 0, void 0, function () { var trackElement, trackBoundingBox, thumbElement, inputElement, thumbBoundingBox, startPosition, maxAttribute, max, minAttribute, min, percent; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.getTrackElement()]; case 1: trackElement = _a.sent(); return [4 /*yield*/, trackElement.boundingBox()]; case 2: trackBoundingBox = _a.sent(); return [4 /*yield*/, this.getThumbElement()]; case 3: thumbElement = _a.sent(); return [4 /*yield*/, this.getInputElement()]; case 4: inputElement = _a.sent(); return [4 /*yield*/, thumbElement.boundingBox()]; case 5: thumbBoundingBox = _a.sent(); if (!trackBoundingBox || !thumbBoundingBox) { return [2 /*return*/]; } startPosition = { x: thumbBoundingBox.x + thumbBoundingBox.width / 2, y: thumbBoundingBox.y + thumbBoundingBox.height / 2 }; return [4 /*yield*/, this.sourceElement.page.mouse.move(startPosition.x, startPosition.y)]; case 6: _a.sent(); return [4 /*yield*/, this.sourceElement.page.mouse.down()]; case 7: _a.sent(); return [4 /*yield*/, inputElement.getAttribute('max')]; case 8: maxAttribute = _a.sent(); max = maxAttribute ? +maxAttribute : 100; return [4 /*yield*/, inputElement.getAttribute('min')]; case 9: minAttribute = _a.sent(); min = minAttribute ? +minAttribute : 0; percent = (Math.max(min, Math.min(+value, max)) - min) / (max - min); return [4 /*yield*/, this.sourceElement.page.mouse.move(trackBoundingBox.x + Math.round(trackBoundingBox.width * percent), trackBoundingBox.y + trackBoundingBox.height / 2)]; case 10: _a.sent(); return [4 /*yield*/, this.sourceElement.page.mouse.up()]; case 11: _a.sent(); return [2 /*return*/]; } }); }); }; /** @inheritdoc */ O3rSliderElement.prototype.getValue = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { var _a; var _b; return tslib_1.__generator(this, function (_c) { switch (_c.label) { case 0: _a = element_1.O3rElement.bind; _b = {}; return [4 /*yield*/, this.getInputElement()]; case 1: return [2 /*return*/, (new (_a.apply(element_1.O3rElement, [void 0, (_b.element = _c.sent(), _b.page = this.sourceElement.page, _b)]))()).getValue()]; } }); }); }; return O3rSliderElement; }(element_1.O3rElement)); exports.O3rSliderElement = O3rSliderElement; //# sourceMappingURL=slider-element.js.map