@o3r/testing 11.2.0-prerelease.9 → 11.3.0-prerelease.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/core/angular/angular-materials/index.d.ts +1 -0
- package/core/angular/angular-materials/index.d.ts.map +1 -1
- package/core/angular/angular-materials/index.js +1 -0
- package/core/angular/angular-materials/index.js.map +1 -1
- package/core/angular/angular-materials/slider-material.d.ts +11 -0
- package/core/angular/angular-materials/slider-material.d.ts.map +1 -0
- package/core/angular/angular-materials/slider-material.js +20 -0
- package/core/angular/angular-materials/slider-material.js.map +1 -0
- package/core/angular/elements/index.d.ts +1 -0
- package/core/angular/elements/index.d.ts.map +1 -1
- package/core/angular/elements/index.js +1 -0
- package/core/angular/elements/index.js.map +1 -1
- package/core/angular/elements/slider-element.d.ts +22 -0
- package/core/angular/elements/slider-element.d.ts.map +1 -0
- package/core/angular/elements/slider-element.js +85 -0
- package/core/angular/elements/slider-element.js.map +1 -0
- package/core/angular-materials/index.d.ts +1 -0
- package/core/angular-materials/index.d.ts.map +1 -1
- package/core/angular-materials/index.js +1 -0
- package/core/angular-materials/index.js.map +1 -1
- package/core/angular-materials/slider-material.d.ts +17 -0
- package/core/angular-materials/slider-material.d.ts.map +1 -0
- package/core/angular-materials/slider-material.js +18 -0
- package/core/angular-materials/slider-material.js.map +1 -0
- package/core/elements/index.d.ts +1 -0
- package/core/elements/index.d.ts.map +1 -1
- package/core/elements/index.js +1 -0
- package/core/elements/index.js.map +1 -1
- package/core/elements/slider-element.d.ts +16 -0
- package/core/elements/slider-element.d.ts.map +1 -0
- package/core/elements/slider-element.js +18 -0
- package/core/elements/slider-element.js.map +1 -0
- package/core/playwright/angular-materials/index.d.ts +1 -0
- package/core/playwright/angular-materials/index.d.ts.map +1 -1
- package/core/playwright/angular-materials/index.js +1 -0
- package/core/playwright/angular-materials/index.js.map +1 -1
- package/core/playwright/angular-materials/slider-material.d.ts +10 -0
- package/core/playwright/angular-materials/slider-material.d.ts.map +1 -0
- package/core/playwright/angular-materials/slider-material.js +19 -0
- package/core/playwright/angular-materials/slider-material.js.map +1 -0
- package/core/playwright/elements/index.d.ts +1 -0
- package/core/playwright/elements/index.d.ts.map +1 -1
- package/core/playwright/elements/index.js +1 -0
- package/core/playwright/elements/index.js.map +1 -1
- package/core/playwright/elements/slider-element.d.ts +18 -0
- package/core/playwright/elements/slider-element.d.ts.map +1 -0
- package/core/playwright/elements/slider-element.js +168 -0
- package/core/playwright/elements/slider-element.js.map +1 -0
- package/package.json +39 -34
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-add/index.js.map +1 -1
- package/schematics/ng-add/playwright/index.js +1 -1
- package/schematics/ng-add/playwright/index.js.map +1 -1
- package/schematics/ng-add/templates/workspace/jest.config.ut.js.template +6 -2
- package/tools/protractor/fetch-manager/utils.js +1 -1
- package/tools/protractor/fetch-manager/utils.js.map +1 -1
- package/tools/protractor/post-message-interceptor/post-message-interceptor.js +1 -1
- package/tools/protractor/post-message-interceptor/post-message-interceptor.js.map +1 -1
package/README.md
CHANGED
|
@@ -29,7 +29,7 @@ Find more information in the [documentation](https://github.com/AmadeusITGroup/o
|
|
|
29
29
|
|
|
30
30
|
## Generators
|
|
31
31
|
|
|
32
|
-
Otter framework provides a set of code generators based on [
|
|
32
|
+
Otter framework provides a set of code generators based on [Angular schematics](https://angular.io/guide/schematics).
|
|
33
33
|
|
|
34
34
|
| Schematics | Description | How to use |
|
|
35
35
|
| -------------------------- | ----------------------------------------------------------------------------- | --------------------------------- |
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/angular/angular-materials/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/angular/angular-materials/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
|
|
@@ -3,4 +3,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
var tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./autocomplete-material"), exports);
|
|
5
5
|
tslib_1.__exportStar(require("./select-material"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./slider-material"), exports);
|
|
6
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/angular/angular-materials/index.ts"],"names":[],"mappings":";;;AAAA,kEAAwC;AACxC,4DAAkC","sourcesContent":["export * from './autocomplete-material';\nexport * from './select-material';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/angular/angular-materials/index.ts"],"names":[],"mappings":";;;AAAA,kEAAwC;AACxC,4DAAkC;AAClC,4DAAkC","sourcesContent":["export * from './autocomplete-material';\nexport * from './select-material';\nexport * from './slider-material';\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DebugElement } from '@angular/core';
|
|
2
|
+
import type { MatSliderProfile } from '../../angular-materials';
|
|
3
|
+
import { O3rElement } from '../element';
|
|
4
|
+
import { O3rSliderElement } from '../elements';
|
|
5
|
+
/**
|
|
6
|
+
* Implementation dedicated to angular / TestBed.
|
|
7
|
+
*/
|
|
8
|
+
export declare class MatSlider extends O3rSliderElement implements MatSliderProfile {
|
|
9
|
+
constructor(sourceElement: DebugElement | O3rElement);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=slider-material.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider-material.d.ts","sourceRoot":"","sources":["../../../../src/core/angular/angular-materials/slider-material.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAK/C;;GAEG;AACH,qBAAa,SAAU,SAAQ,gBAAiB,YAAW,gBAAgB;gBAC7D,aAAa,EAAE,YAAY,GAAG,UAAU;CAOrD"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MatSlider = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var element_1 = require("../element");
|
|
6
|
+
var elements_1 = require("../elements");
|
|
7
|
+
var TRACK_CLASS = 'mdc-slider__track';
|
|
8
|
+
var THUMB_CLASS = 'mdc-slider__thumb';
|
|
9
|
+
/**
|
|
10
|
+
* Implementation dedicated to angular / TestBed.
|
|
11
|
+
*/
|
|
12
|
+
var MatSlider = /** @class */ (function (_super) {
|
|
13
|
+
tslib_1.__extends(MatSlider, _super);
|
|
14
|
+
function MatSlider(sourceElement) {
|
|
15
|
+
return _super.call(this, sourceElement instanceof element_1.O3rElement ? sourceElement.sourceElement : sourceElement, ".".concat(TRACK_CLASS), ".".concat(THUMB_CLASS)) || this;
|
|
16
|
+
}
|
|
17
|
+
return MatSlider;
|
|
18
|
+
}(elements_1.O3rSliderElement));
|
|
19
|
+
exports.MatSlider = MatSlider;
|
|
20
|
+
//# sourceMappingURL=slider-material.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider-material.js","sourceRoot":"","sources":["../../../../src/core/angular/angular-materials/slider-material.ts"],"names":[],"mappings":";;;;AAGA,sCAAwC;AACxC,wCAA+C;AAE/C,IAAM,WAAW,GAA4B,mBAAmB,CAAC;AACjE,IAAM,WAAW,GAA4B,mBAAmB,CAAC;AAEjE;;GAEG;AACH;IAA+B,qCAAgB;IAC7C,mBAAY,aAAwC;QAClD,OAAA,MAAK,YACH,aAAa,YAAY,oBAAU,CAAC,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,EACjF,WAAI,WAAW,CAAE,EACjB,WAAI,WAAW,CAAE,CAClB,SAAC;IACJ,CAAC;IACH,gBAAC;AAAD,CAAC,AARD,CAA+B,2BAAgB,GAQ9C;AARY,8BAAS","sourcesContent":["import { DebugElement } from '@angular/core';\nimport type { cssClasses } from '@material/slider';\nimport type { MatSliderProfile } from '../../angular-materials';\nimport { O3rElement } from '../element';\nimport { O3rSliderElement } from '../elements';\n\nconst TRACK_CLASS: typeof cssClasses.TRACK = 'mdc-slider__track';\nconst THUMB_CLASS: typeof cssClasses.THUMB = 'mdc-slider__thumb';\n\n/**\n * Implementation dedicated to angular / TestBed.\n */\nexport class MatSlider extends O3rSliderElement implements MatSliderProfile {\n constructor(sourceElement: DebugElement | O3rElement) {\n super(\n sourceElement instanceof O3rElement ? sourceElement.sourceElement : sourceElement,\n `.${TRACK_CLASS}`,\n `.${THUMB_CLASS}`\n );\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/angular/elements/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/angular/elements/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
|
|
@@ -4,4 +4,5 @@ var tslib_1 = require("tslib");
|
|
|
4
4
|
tslib_1.__exportStar(require("./checkbox-element"), exports);
|
|
5
5
|
tslib_1.__exportStar(require("./radio-element"), exports);
|
|
6
6
|
tslib_1.__exportStar(require("./select-element"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./slider-element"), exports);
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/angular/elements/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,0DAAgC;AAChC,2DAAiC","sourcesContent":["export * from './checkbox-element';\nexport * from './radio-element';\nexport * from './select-element';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/angular/elements/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,0DAAgC;AAChC,2DAAiC;AACjC,2DAAiC","sourcesContent":["export * from './checkbox-element';\nexport * from './radio-element';\nexport * from './select-element';\nexport * from './slider-element';\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { DebugElement } from '@angular/core';
|
|
2
|
+
import type { SliderElementProfile } from '../../elements';
|
|
3
|
+
import { O3rElement } from '../element';
|
|
4
|
+
/**
|
|
5
|
+
* Implementation dedicated to angular / TestBed.
|
|
6
|
+
*/
|
|
7
|
+
export declare class O3rSliderElement extends O3rElement implements SliderElementProfile {
|
|
8
|
+
private readonly trackSelector?;
|
|
9
|
+
private readonly thumbSelector?;
|
|
10
|
+
constructor(sourceElement: DebugElement, trackSelector?: string | undefined, thumbSelector?: string | undefined);
|
|
11
|
+
private getInputElement;
|
|
12
|
+
private getTrackElement;
|
|
13
|
+
private getThumbElement;
|
|
14
|
+
/**
|
|
15
|
+
* @inheritdoc
|
|
16
|
+
* inspired from https://github.com/angular/components/blob/main/src/material/slider/slider.spec.ts#L1838
|
|
17
|
+
*/
|
|
18
|
+
setValue(value: string): Promise<void>;
|
|
19
|
+
/** @inheritdoc */
|
|
20
|
+
getValue(): Promise<any>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=slider-element.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider-element.d.ts","sourceRoot":"","sources":["../../../../src/core/angular/elements/slider-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,UAAW,YAAW,oBAAoB;IAG5E,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;gBAF/B,aAAa,EAAE,YAAY,EACV,aAAa,CAAC,EAAE,MAAM,YAAA,EACtB,aAAa,CAAC,EAAE,MAAM,YAAA;IAKzC,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,eAAe;IAYvB;;;OAGG;IACI,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB7C,kBAAkB;IACX,QAAQ;CAGhB"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.O3rSliderElement = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var platform_browser_1 = require("@angular/platform-browser");
|
|
6
|
+
var element_1 = require("../element");
|
|
7
|
+
/**
|
|
8
|
+
* Implementation dedicated to angular / TestBed.
|
|
9
|
+
*/
|
|
10
|
+
var O3rSliderElement = /** @class */ (function (_super) {
|
|
11
|
+
tslib_1.__extends(O3rSliderElement, _super);
|
|
12
|
+
function O3rSliderElement(sourceElement, trackSelector, thumbSelector) {
|
|
13
|
+
var _this = _super.call(this, sourceElement) || this;
|
|
14
|
+
_this.trackSelector = trackSelector;
|
|
15
|
+
_this.thumbSelector = thumbSelector;
|
|
16
|
+
return _this;
|
|
17
|
+
}
|
|
18
|
+
O3rSliderElement.prototype.getInputElement = function () {
|
|
19
|
+
try {
|
|
20
|
+
var subElement = this.sourceElement.query(platform_browser_1.By.css('input[type="range"]'));
|
|
21
|
+
return subElement || this.sourceElement;
|
|
22
|
+
}
|
|
23
|
+
catch (_a) {
|
|
24
|
+
return this.sourceElement;
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
O3rSliderElement.prototype.getTrackElement = function () {
|
|
28
|
+
if (!this.trackSelector) {
|
|
29
|
+
return this.sourceElement;
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
var subElement = this.sourceElement.query(platform_browser_1.By.css(this.trackSelector));
|
|
33
|
+
return subElement || this.sourceElement;
|
|
34
|
+
}
|
|
35
|
+
catch (_a) {
|
|
36
|
+
return this.sourceElement;
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
O3rSliderElement.prototype.getThumbElement = function () {
|
|
40
|
+
if (!this.thumbSelector) {
|
|
41
|
+
return this.sourceElement;
|
|
42
|
+
}
|
|
43
|
+
try {
|
|
44
|
+
var subElement = this.sourceElement.query(platform_browser_1.By.css(this.thumbSelector));
|
|
45
|
+
return subElement || this.sourceElement;
|
|
46
|
+
}
|
|
47
|
+
catch (_a) {
|
|
48
|
+
return this.sourceElement;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* @inheritdoc
|
|
53
|
+
* inspired from https://github.com/angular/components/blob/main/src/material/slider/slider.spec.ts#L1838
|
|
54
|
+
*/
|
|
55
|
+
O3rSliderElement.prototype.setValue = function (value) {
|
|
56
|
+
var trackNativeElement = this.getTrackElement().nativeElement;
|
|
57
|
+
var thumbNativeElement = this.getThumbElement().nativeElement;
|
|
58
|
+
var inputNativeElement = this.getInputElement().nativeElement;
|
|
59
|
+
var thumbBoundingBox = thumbNativeElement.getBoundingClientRect();
|
|
60
|
+
var startX = thumbBoundingBox.x + thumbBoundingBox.width / 2;
|
|
61
|
+
var startY = thumbBoundingBox.y + thumbBoundingBox.height / 2;
|
|
62
|
+
var max = +(inputNativeElement.max === '' ? '100' : inputNativeElement.max);
|
|
63
|
+
var min = +(inputNativeElement.min === '' ? '0' : inputNativeElement.min);
|
|
64
|
+
var sanitizeValue = Math.max(min, Math.min(+value, max));
|
|
65
|
+
var percent = (sanitizeValue - min) / (max - min);
|
|
66
|
+
var _a = trackNativeElement.getBoundingClientRect(), top = _a.top, left = _a.left, width = _a.width, height = _a.height;
|
|
67
|
+
var endX = width * percent + left;
|
|
68
|
+
var endY = top + height / 2;
|
|
69
|
+
thumbNativeElement.dispatchEvent(new MouseEvent('mousedown', { clientX: startX, clientY: startY }));
|
|
70
|
+
trackNativeElement.focus();
|
|
71
|
+
trackNativeElement.dispatchEvent(new MouseEvent('mousemove', { clientX: endX, clientY: endY }));
|
|
72
|
+
inputNativeElement.value = "".concat(sanitizeValue);
|
|
73
|
+
inputNativeElement.dispatchEvent(new Event('input'));
|
|
74
|
+
trackNativeElement.dispatchEvent(new MouseEvent('mouseup', { clientX: endX, clientY: endY }));
|
|
75
|
+
inputNativeElement.dispatchEvent(new Event('change'));
|
|
76
|
+
return Promise.resolve();
|
|
77
|
+
};
|
|
78
|
+
/** @inheritdoc */
|
|
79
|
+
O3rSliderElement.prototype.getValue = function () {
|
|
80
|
+
return (new element_1.O3rElement(this.getInputElement())).getValue();
|
|
81
|
+
};
|
|
82
|
+
return O3rSliderElement;
|
|
83
|
+
}(element_1.O3rElement));
|
|
84
|
+
exports.O3rSliderElement = O3rSliderElement;
|
|
85
|
+
//# sourceMappingURL=slider-element.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider-element.js","sourceRoot":"","sources":["../../../../src/core/angular/elements/slider-element.ts"],"names":[],"mappings":"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","sourcesContent":["import { DebugElement } from '@angular/core';\nimport { By } from '@angular/platform-browser';\nimport type { SliderElementProfile } from '../../elements';\nimport { O3rElement } from '../element';\n\n/**\n * Implementation dedicated to angular / TestBed.\n */\nexport class O3rSliderElement extends O3rElement implements SliderElementProfile {\n constructor(\n sourceElement: DebugElement,\n private readonly trackSelector?: string,\n private readonly thumbSelector?: string\n ) {\n super(sourceElement);\n }\n\n private getInputElement() {\n try {\n const subElement = this.sourceElement.query(By.css('input[type=\"range\"]'));\n return subElement || this.sourceElement;\n } catch {\n return this.sourceElement;\n }\n }\n\n private getTrackElement() {\n if (!this.trackSelector) {\n return this.sourceElement;\n }\n try {\n const subElement = this.sourceElement.query(By.css(this.trackSelector));\n return subElement || this.sourceElement;\n } catch {\n return this.sourceElement;\n }\n }\n\n private getThumbElement() {\n if (!this.thumbSelector) {\n return this.sourceElement;\n }\n try {\n const subElement = this.sourceElement.query(By.css(this.thumbSelector));\n return subElement || this.sourceElement;\n } catch {\n return this.sourceElement;\n }\n }\n\n /**\n * @inheritdoc\n * inspired from https://github.com/angular/components/blob/main/src/material/slider/slider.spec.ts#L1838\n */\n public setValue(value: string): Promise<void> {\n const trackNativeElement = this.getTrackElement().nativeElement;\n const thumbNativeElement = this.getThumbElement().nativeElement;\n const inputNativeElement = this.getInputElement().nativeElement;\n const thumbBoundingBox: DOMRect = thumbNativeElement.getBoundingClientRect();\n const startX = thumbBoundingBox.x + thumbBoundingBox.width / 2;\n const startY = thumbBoundingBox.y + thumbBoundingBox.height / 2;\n const max = +(inputNativeElement.max === '' ? '100' : inputNativeElement.max);\n const min = +(inputNativeElement.min === '' ? '0' : inputNativeElement.min);\n const sanitizeValue = Math.max(min, Math.min(+value, max));\n const percent = (sanitizeValue - min) / (max - min);\n const { top, left, width, height } = trackNativeElement.getBoundingClientRect() as DOMRect;\n const endX = width * percent + left;\n const endY = top + height / 2;\n thumbNativeElement.dispatchEvent(new MouseEvent('mousedown', { clientX: startX, clientY: startY }));\n trackNativeElement.focus();\n trackNativeElement.dispatchEvent(new MouseEvent('mousemove', { clientX: endX, clientY: endY }));\n inputNativeElement.value = `${sanitizeValue}`;\n inputNativeElement.dispatchEvent(new Event('input'));\n trackNativeElement.dispatchEvent(new MouseEvent('mouseup', { clientX: endX, clientY: endY }));\n inputNativeElement.dispatchEvent(new Event('change'));\n return Promise.resolve();\n }\n\n /** @inheritdoc */\n public getValue() {\n return (new O3rElement(this.getInputElement())).getValue();\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/angular-materials/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/angular-materials/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
|
|
@@ -3,4 +3,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
var tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./autocomplete-material"), exports);
|
|
5
5
|
tslib_1.__exportStar(require("./select-material"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./slider-material"), exports);
|
|
6
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/angular-materials/index.ts"],"names":[],"mappings":";;;AAAA,kEAAwC;AACxC,4DAAkC","sourcesContent":["export * from './autocomplete-material';\nexport * from './select-material';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/angular-materials/index.ts"],"names":[],"mappings":";;;AAAA,kEAAwC;AACxC,4DAAkC;AAClC,4DAAkC","sourcesContent":["export * from './autocomplete-material';\nexport * from './select-material';\nexport * from './slider-material';\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { O3rElement } from '../element';
|
|
2
|
+
import type { SliderElementProfile } from '../elements';
|
|
3
|
+
/**
|
|
4
|
+
* Interface to describe the material Slider elements that are used inside a fixture.
|
|
5
|
+
* As for ComponentFixtureProfile, this abstracts the testing framework that is used by choosing the right
|
|
6
|
+
* implementation at runtime.
|
|
7
|
+
*/
|
|
8
|
+
export interface MatSliderProfile extends SliderElementProfile {
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Mock for ElementProfile class.
|
|
12
|
+
* This class is used for fixture compilation purpose.
|
|
13
|
+
*/
|
|
14
|
+
export declare class MatSlider extends O3rElement implements MatSliderProfile {
|
|
15
|
+
constructor(sourceElement: any);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=slider-material.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider-material.d.ts","sourceRoot":"","sources":["../../../src/core/angular-materials/slider-material.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD;;;;GAIG;AACH,MAAM,WAAW,gBAAiB,SAAQ,oBAAoB;CAAG;AAEjE;;;GAGG;AACH,qBAAa,SAAU,SAAQ,UAAW,YAAW,gBAAgB;gBACvD,aAAa,EAAE,GAAG;CAG/B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MatSlider = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var element_1 = require("../element");
|
|
6
|
+
/**
|
|
7
|
+
* Mock for ElementProfile class.
|
|
8
|
+
* This class is used for fixture compilation purpose.
|
|
9
|
+
*/
|
|
10
|
+
var MatSlider = /** @class */ (function (_super) {
|
|
11
|
+
tslib_1.__extends(MatSlider, _super);
|
|
12
|
+
function MatSlider(sourceElement) {
|
|
13
|
+
return _super.call(this, sourceElement) || this;
|
|
14
|
+
}
|
|
15
|
+
return MatSlider;
|
|
16
|
+
}(element_1.O3rElement));
|
|
17
|
+
exports.MatSlider = MatSlider;
|
|
18
|
+
//# sourceMappingURL=slider-material.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider-material.js","sourceRoot":"","sources":["../../../src/core/angular-materials/slider-material.ts"],"names":[],"mappings":";;;;AAAA,sCAAwC;AAUxC;;;GAGG;AACH;IAA+B,qCAAU;IACvC,mBAAY,aAAkB;QAC5B,OAAA,MAAK,YAAC,aAAa,CAAC,SAAC;IACvB,CAAC;IACH,gBAAC;AAAD,CAAC,AAJD,CAA+B,oBAAU,GAIxC;AAJY,8BAAS","sourcesContent":["import { O3rElement } from '../element';\nimport type { SliderElementProfile } from '../elements';\n\n/**\n * Interface to describe the material Slider elements that are used inside a fixture.\n * As for ComponentFixtureProfile, this abstracts the testing framework that is used by choosing the right\n * implementation at runtime.\n */\nexport interface MatSliderProfile extends SliderElementProfile {}\n\n/**\n * Mock for ElementProfile class.\n * This class is used for fixture compilation purpose.\n */\nexport class MatSlider extends O3rElement implements MatSliderProfile {\n constructor(sourceElement: any) {\n super(sourceElement);\n }\n}\n"]}
|
package/core/elements/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/elements/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/elements/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
|
package/core/elements/index.js
CHANGED
|
@@ -4,4 +4,5 @@ var tslib_1 = require("tslib");
|
|
|
4
4
|
tslib_1.__exportStar(require("./checkbox-element"), exports);
|
|
5
5
|
tslib_1.__exportStar(require("./radio-element"), exports);
|
|
6
6
|
tslib_1.__exportStar(require("./select-element"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./slider-element"), exports);
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/elements/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,0DAAgC;AAChC,2DAAiC","sourcesContent":["export * from './checkbox-element';\nexport * from './radio-element';\nexport * from './select-element';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/elements/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,0DAAgC;AAChC,2DAAiC;AACjC,2DAAiC","sourcesContent":["export * from './checkbox-element';\nexport * from './radio-element';\nexport * from './select-element';\nexport * from './slider-element';\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ElementProfile, O3rElement } from '../element';
|
|
2
|
+
/**
|
|
3
|
+
* Interface to describe the Slider elements that are used inside a fixture.
|
|
4
|
+
* As for ComponentFixtureProfile, this abstracts the testing framework that is used by choosing the right
|
|
5
|
+
* implementation at runtime.
|
|
6
|
+
*/
|
|
7
|
+
export interface SliderElementProfile extends ElementProfile {
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Mock for ElementProfile class.
|
|
11
|
+
* This class is used for fixture compilation purpose.
|
|
12
|
+
*/
|
|
13
|
+
export declare class O3rSliderElement extends O3rElement implements SliderElementProfile {
|
|
14
|
+
constructor(sourceElement: any, _trackSelector?: string, _thumbSelector?: string);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=slider-element.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider-element.d.ts","sourceRoot":"","sources":["../../../src/core/elements/slider-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExD;;;;GAIG;AACH,MAAM,WAAW,oBAAqB,SAAQ,cAAc;CAAG;AAE/D;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,UAAW,YAAW,oBAAoB;gBAClE,aAAa,EAAE,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM;CAGjF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.O3rSliderElement = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var element_1 = require("../element");
|
|
6
|
+
/**
|
|
7
|
+
* Mock for ElementProfile class.
|
|
8
|
+
* This class is used for fixture compilation purpose.
|
|
9
|
+
*/
|
|
10
|
+
var O3rSliderElement = /** @class */ (function (_super) {
|
|
11
|
+
tslib_1.__extends(O3rSliderElement, _super);
|
|
12
|
+
function O3rSliderElement(sourceElement, _trackSelector, _thumbSelector) {
|
|
13
|
+
return _super.call(this, sourceElement) || this;
|
|
14
|
+
}
|
|
15
|
+
return O3rSliderElement;
|
|
16
|
+
}(element_1.O3rElement));
|
|
17
|
+
exports.O3rSliderElement = O3rSliderElement;
|
|
18
|
+
//# sourceMappingURL=slider-element.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider-element.js","sourceRoot":"","sources":["../../../src/core/elements/slider-element.ts"],"names":[],"mappings":";;;;AAAA,sCAAwD;AASxD;;;GAGG;AACH;IAAsC,4CAAU;IAC9C,0BAAY,aAAkB,EAAE,cAAuB,EAAE,cAAuB;QAC9E,OAAA,MAAK,YAAC,aAAa,CAAC,SAAC;IACvB,CAAC;IACH,uBAAC;AAAD,CAAC,AAJD,CAAsC,oBAAU,GAI/C;AAJY,4CAAgB","sourcesContent":["import { ElementProfile, O3rElement } from '../element';\n\n/**\n * Interface to describe the Slider elements that are used inside a fixture.\n * As for ComponentFixtureProfile, this abstracts the testing framework that is used by choosing the right\n * implementation at runtime.\n */\nexport interface SliderElementProfile extends ElementProfile {}\n\n/**\n * Mock for ElementProfile class.\n * This class is used for fixture compilation purpose.\n */\nexport class O3rSliderElement extends O3rElement implements SliderElementProfile {\n constructor(sourceElement: any, _trackSelector?: string, _thumbSelector?: string) {\n super(sourceElement);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/playwright/angular-materials/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/playwright/angular-materials/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
|
|
@@ -3,4 +3,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
var tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./autocomplete-material"), exports);
|
|
5
5
|
tslib_1.__exportStar(require("./select-material"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./slider-material"), exports);
|
|
6
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/playwright/angular-materials/index.ts"],"names":[],"mappings":";;;AAAA,kEAAwC;AACxC,4DAAkC","sourcesContent":["export * from './autocomplete-material';\nexport * from './select-material';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/playwright/angular-materials/index.ts"],"names":[],"mappings":";;;AAAA,kEAAwC;AACxC,4DAAkC;AAClC,4DAAkC","sourcesContent":["export * from './autocomplete-material';\nexport * from './select-material';\nexport * from './slider-material';\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { MatSliderProfile } from '../../angular-materials';
|
|
2
|
+
import { O3rElement, type PlaywrightSourceElement } from '../element';
|
|
3
|
+
import { O3rSliderElement } from '../elements';
|
|
4
|
+
/**
|
|
5
|
+
* Implementation dedicated to Playwright.
|
|
6
|
+
*/
|
|
7
|
+
export declare class MatSlider extends O3rSliderElement implements MatSliderProfile {
|
|
8
|
+
constructor(sourceElement: PlaywrightSourceElement | O3rElement);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=slider-material.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider-material.d.ts","sourceRoot":"","sources":["../../../../src/core/playwright/angular-materials/slider-material.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,KAAK,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAK/C;;GAEG;AACH,qBAAa,SAAU,SAAQ,gBAAiB,YAAW,gBAAgB;gBAC7D,aAAa,EAAE,uBAAuB,GAAG,UAAU;CAGhE"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MatSlider = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var elements_1 = require("../elements");
|
|
6
|
+
var TRACK_CLASS = 'mdc-slider__track';
|
|
7
|
+
var THUMB_CLASS = 'mdc-slider__thumb';
|
|
8
|
+
/**
|
|
9
|
+
* Implementation dedicated to Playwright.
|
|
10
|
+
*/
|
|
11
|
+
var MatSlider = /** @class */ (function (_super) {
|
|
12
|
+
tslib_1.__extends(MatSlider, _super);
|
|
13
|
+
function MatSlider(sourceElement) {
|
|
14
|
+
return _super.call(this, sourceElement, ".".concat(TRACK_CLASS), ".".concat(THUMB_CLASS)) || this;
|
|
15
|
+
}
|
|
16
|
+
return MatSlider;
|
|
17
|
+
}(elements_1.O3rSliderElement));
|
|
18
|
+
exports.MatSlider = MatSlider;
|
|
19
|
+
//# sourceMappingURL=slider-material.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider-material.js","sourceRoot":"","sources":["../../../../src/core/playwright/angular-materials/slider-material.ts"],"names":[],"mappings":";;;;AAGA,wCAA+C;AAE/C,IAAM,WAAW,GAA4B,mBAAmB,CAAC;AACjE,IAAM,WAAW,GAA4B,mBAAmB,CAAC;AAEjE;;GAEG;AACH;IAA+B,qCAAgB;IAC7C,mBAAY,aAAmD;QAC7D,OAAA,MAAK,YAAC,aAAa,EAAE,WAAI,WAAW,CAAE,EAAE,WAAI,WAAW,CAAE,CAAC,SAAC;IAC7D,CAAC;IACH,gBAAC;AAAD,CAAC,AAJD,CAA+B,2BAAgB,GAI9C;AAJY,8BAAS","sourcesContent":["import type { cssClasses } from '@material/slider';\nimport type { MatSliderProfile } from '../../angular-materials';\nimport { O3rElement, type PlaywrightSourceElement } from '../element';\nimport { O3rSliderElement } from '../elements';\n\nconst TRACK_CLASS: typeof cssClasses.TRACK = 'mdc-slider__track';\nconst THUMB_CLASS: typeof cssClasses.THUMB = 'mdc-slider__thumb';\n\n/**\n * Implementation dedicated to Playwright.\n */\nexport class MatSlider extends O3rSliderElement implements MatSliderProfile {\n constructor(sourceElement: PlaywrightSourceElement | O3rElement) {\n super(sourceElement, `.${TRACK_CLASS}`, `.${THUMB_CLASS}`);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/playwright/elements/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/playwright/elements/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC"}
|
|
@@ -4,4 +4,5 @@ var tslib_1 = require("tslib");
|
|
|
4
4
|
tslib_1.__exportStar(require("./select-element"), exports);
|
|
5
5
|
tslib_1.__exportStar(require("./radio-element"), exports);
|
|
6
6
|
tslib_1.__exportStar(require("./checkbox-element"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./slider-element"), exports);
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/playwright/elements/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiC;AACjC,0DAAgC;AAChC,6DAAmC","sourcesContent":["export * from './select-element';\nexport * from './radio-element';\nexport * from './checkbox-element';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/playwright/elements/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiC;AACjC,0DAAgC;AAChC,6DAAmC;AACnC,2DAAiC","sourcesContent":["export * from './select-element';\nexport * from './radio-element';\nexport * from './checkbox-element';\nexport * from './slider-element';\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { SliderElementProfile } from '../../elements';
|
|
2
|
+
import { O3rElement, type PlaywrightSourceElement } from '../element';
|
|
3
|
+
/**
|
|
4
|
+
* Implementation dedicated to Playwright.
|
|
5
|
+
*/
|
|
6
|
+
export declare class O3rSliderElement extends O3rElement implements SliderElementProfile {
|
|
7
|
+
private readonly trackSelector?;
|
|
8
|
+
private readonly thumbSelector?;
|
|
9
|
+
constructor(sourceElement: PlaywrightSourceElement | O3rElement, trackSelector?: string | undefined, thumbSelector?: string | undefined);
|
|
10
|
+
private getInputElement;
|
|
11
|
+
private getTrackElement;
|
|
12
|
+
private getThumbElement;
|
|
13
|
+
/** @inheritdoc */
|
|
14
|
+
setValue(value: string): Promise<void>;
|
|
15
|
+
/** @inheritdoc */
|
|
16
|
+
getValue(): Promise<string | undefined>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=slider-element.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider-element.d.ts","sourceRoot":"","sources":["../../../../src/core/playwright/elements/slider-element.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,KAAK,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAEtE;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,UAAW,YAAW,oBAAoB;IAG5E,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;gBAF/B,aAAa,EAAE,uBAAuB,GAAG,UAAU,EAClC,aAAa,CAAC,EAAE,MAAM,YAAA,EACtB,aAAa,CAAC,EAAE,MAAM,YAAA;YAK3B,eAAe;YAYf,eAAe;YAef,eAAe;IAe7B,kBAAkB;IACL,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BnD,kBAAkB;IACL,QAAQ;CAMtB"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.O3rSliderElement = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var element_1 = require("../element");
|
|
6
|
+
/**
|
|
7
|
+
* Implementation dedicated to Playwright.
|
|
8
|
+
*/
|
|
9
|
+
var O3rSliderElement = /** @class */ (function (_super) {
|
|
10
|
+
tslib_1.__extends(O3rSliderElement, _super);
|
|
11
|
+
function O3rSliderElement(sourceElement, trackSelector, thumbSelector) {
|
|
12
|
+
var _this = _super.call(this, sourceElement) || this;
|
|
13
|
+
_this.trackSelector = trackSelector;
|
|
14
|
+
_this.thumbSelector = thumbSelector;
|
|
15
|
+
return _this;
|
|
16
|
+
}
|
|
17
|
+
O3rSliderElement.prototype.getInputElement = function () {
|
|
18
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
19
|
+
var subElement, _a;
|
|
20
|
+
return tslib_1.__generator(this, function (_b) {
|
|
21
|
+
switch (_b.label) {
|
|
22
|
+
case 0:
|
|
23
|
+
_b.trys.push([0, 2, , 3]);
|
|
24
|
+
subElement = this.sourceElement.element.locator('input[type="range"]');
|
|
25
|
+
return [4 /*yield*/, subElement.count()];
|
|
26
|
+
case 1:
|
|
27
|
+
if (_b.sent()) {
|
|
28
|
+
return [2 /*return*/, subElement.first()];
|
|
29
|
+
}
|
|
30
|
+
return [2 /*return*/, this.sourceElement.element];
|
|
31
|
+
case 2:
|
|
32
|
+
_a = _b.sent();
|
|
33
|
+
return [2 /*return*/, this.sourceElement.element];
|
|
34
|
+
case 3: return [2 /*return*/];
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
O3rSliderElement.prototype.getTrackElement = function () {
|
|
40
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
41
|
+
var subElement, _a;
|
|
42
|
+
return tslib_1.__generator(this, function (_b) {
|
|
43
|
+
switch (_b.label) {
|
|
44
|
+
case 0:
|
|
45
|
+
if (!this.trackSelector) {
|
|
46
|
+
return [2 /*return*/, this.sourceElement.element];
|
|
47
|
+
}
|
|
48
|
+
_b.label = 1;
|
|
49
|
+
case 1:
|
|
50
|
+
_b.trys.push([1, 3, , 4]);
|
|
51
|
+
subElement = this.sourceElement.element.locator(this.trackSelector);
|
|
52
|
+
return [4 /*yield*/, subElement.count()];
|
|
53
|
+
case 2:
|
|
54
|
+
if (_b.sent()) {
|
|
55
|
+
return [2 /*return*/, subElement.first()];
|
|
56
|
+
}
|
|
57
|
+
return [2 /*return*/, this.sourceElement.element];
|
|
58
|
+
case 3:
|
|
59
|
+
_a = _b.sent();
|
|
60
|
+
return [2 /*return*/, this.sourceElement.element];
|
|
61
|
+
case 4: return [2 /*return*/];
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
O3rSliderElement.prototype.getThumbElement = function () {
|
|
67
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
68
|
+
var subElement, _a;
|
|
69
|
+
return tslib_1.__generator(this, function (_b) {
|
|
70
|
+
switch (_b.label) {
|
|
71
|
+
case 0:
|
|
72
|
+
if (!this.thumbSelector) {
|
|
73
|
+
return [2 /*return*/, this.sourceElement.element];
|
|
74
|
+
}
|
|
75
|
+
_b.label = 1;
|
|
76
|
+
case 1:
|
|
77
|
+
_b.trys.push([1, 3, , 4]);
|
|
78
|
+
subElement = this.sourceElement.element.locator(this.thumbSelector);
|
|
79
|
+
return [4 /*yield*/, subElement.count()];
|
|
80
|
+
case 2:
|
|
81
|
+
if (_b.sent()) {
|
|
82
|
+
return [2 /*return*/, subElement.first()];
|
|
83
|
+
}
|
|
84
|
+
return [2 /*return*/, this.sourceElement.element];
|
|
85
|
+
case 3:
|
|
86
|
+
_a = _b.sent();
|
|
87
|
+
return [2 /*return*/, this.sourceElement.element];
|
|
88
|
+
case 4: return [2 /*return*/];
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
};
|
|
93
|
+
/** @inheritdoc */
|
|
94
|
+
O3rSliderElement.prototype.setValue = function (value) {
|
|
95
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
96
|
+
var trackElement, trackBoundingBox, thumbElement, inputElement, thumbBoundingBox, startPosition, maxAttribute, max, minAttribute, min, percent;
|
|
97
|
+
return tslib_1.__generator(this, function (_a) {
|
|
98
|
+
switch (_a.label) {
|
|
99
|
+
case 0: return [4 /*yield*/, this.getTrackElement()];
|
|
100
|
+
case 1:
|
|
101
|
+
trackElement = _a.sent();
|
|
102
|
+
return [4 /*yield*/, trackElement.boundingBox()];
|
|
103
|
+
case 2:
|
|
104
|
+
trackBoundingBox = _a.sent();
|
|
105
|
+
return [4 /*yield*/, this.getThumbElement()];
|
|
106
|
+
case 3:
|
|
107
|
+
thumbElement = _a.sent();
|
|
108
|
+
return [4 /*yield*/, this.getInputElement()];
|
|
109
|
+
case 4:
|
|
110
|
+
inputElement = _a.sent();
|
|
111
|
+
return [4 /*yield*/, thumbElement.boundingBox()];
|
|
112
|
+
case 5:
|
|
113
|
+
thumbBoundingBox = _a.sent();
|
|
114
|
+
if (!trackBoundingBox || !thumbBoundingBox) {
|
|
115
|
+
return [2 /*return*/];
|
|
116
|
+
}
|
|
117
|
+
startPosition = {
|
|
118
|
+
x: thumbBoundingBox.x + thumbBoundingBox.width / 2,
|
|
119
|
+
y: thumbBoundingBox.y + thumbBoundingBox.height / 2
|
|
120
|
+
};
|
|
121
|
+
return [4 /*yield*/, this.sourceElement.page.mouse.move(startPosition.x, startPosition.y)];
|
|
122
|
+
case 6:
|
|
123
|
+
_a.sent();
|
|
124
|
+
return [4 /*yield*/, this.sourceElement.page.mouse.down()];
|
|
125
|
+
case 7:
|
|
126
|
+
_a.sent();
|
|
127
|
+
return [4 /*yield*/, inputElement.getAttribute('max')];
|
|
128
|
+
case 8:
|
|
129
|
+
maxAttribute = _a.sent();
|
|
130
|
+
max = maxAttribute ? +maxAttribute : 100;
|
|
131
|
+
return [4 /*yield*/, inputElement.getAttribute('min')];
|
|
132
|
+
case 9:
|
|
133
|
+
minAttribute = _a.sent();
|
|
134
|
+
min = minAttribute ? +minAttribute : 0;
|
|
135
|
+
percent = (Math.max(min, Math.min(+value, max)) - min) / (max - min);
|
|
136
|
+
return [4 /*yield*/, this.sourceElement.page.mouse.move(trackBoundingBox.x + Math.round(trackBoundingBox.width * percent), trackBoundingBox.y + trackBoundingBox.height / 2)];
|
|
137
|
+
case 10:
|
|
138
|
+
_a.sent();
|
|
139
|
+
return [4 /*yield*/, this.sourceElement.page.mouse.up()];
|
|
140
|
+
case 11:
|
|
141
|
+
_a.sent();
|
|
142
|
+
return [2 /*return*/];
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
};
|
|
147
|
+
/** @inheritdoc */
|
|
148
|
+
O3rSliderElement.prototype.getValue = function () {
|
|
149
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
150
|
+
var _a;
|
|
151
|
+
var _b;
|
|
152
|
+
return tslib_1.__generator(this, function (_c) {
|
|
153
|
+
switch (_c.label) {
|
|
154
|
+
case 0:
|
|
155
|
+
_a = element_1.O3rElement.bind;
|
|
156
|
+
_b = {};
|
|
157
|
+
return [4 /*yield*/, this.getInputElement()];
|
|
158
|
+
case 1: return [2 /*return*/, (new (_a.apply(element_1.O3rElement, [void 0, (_b.element = _c.sent(),
|
|
159
|
+
_b.page = this.sourceElement.page,
|
|
160
|
+
_b)]))()).getValue()];
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
};
|
|
165
|
+
return O3rSliderElement;
|
|
166
|
+
}(element_1.O3rElement));
|
|
167
|
+
exports.O3rSliderElement = O3rSliderElement;
|
|
168
|
+
//# sourceMappingURL=slider-element.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider-element.js","sourceRoot":"","sources":["../../../../src/core/playwright/elements/slider-element.ts"],"names":[],"mappings":"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","sourcesContent":["import type { SliderElementProfile } from '../../elements';\nimport { O3rElement, type PlaywrightSourceElement } from '../element';\n\n/**\n * Implementation dedicated to Playwright.\n */\nexport class O3rSliderElement extends O3rElement implements SliderElementProfile {\n constructor(\n sourceElement: PlaywrightSourceElement | O3rElement,\n private readonly trackSelector?: string,\n private readonly thumbSelector?: string\n ) {\n super(sourceElement);\n }\n\n private async getInputElement() {\n try {\n const subElement = this.sourceElement.element.locator('input[type=\"range\"]');\n if (await subElement.count()) {\n return subElement.first();\n }\n return this.sourceElement.element;\n } catch {\n return this.sourceElement.element;\n }\n }\n\n private async getTrackElement() {\n if (!this.trackSelector) {\n return this.sourceElement.element;\n }\n try {\n const subElement = this.sourceElement.element.locator(this.trackSelector);\n if (await subElement.count()) {\n return subElement.first();\n }\n return this.sourceElement.element;\n } catch {\n return this.sourceElement.element;\n }\n }\n\n private async getThumbElement() {\n if (!this.thumbSelector) {\n return this.sourceElement.element;\n }\n try {\n const subElement = this.sourceElement.element.locator(this.thumbSelector);\n if (await subElement.count()) {\n return subElement.first();\n }\n return this.sourceElement.element;\n } catch {\n return this.sourceElement.element;\n }\n }\n\n /** @inheritdoc */\n public async setValue(value: string): Promise<void> {\n const trackElement = await this.getTrackElement();\n const trackBoundingBox = await trackElement.boundingBox();\n const thumbElement = await this.getThumbElement();\n const inputElement = await this.getInputElement();\n const thumbBoundingBox = await thumbElement.boundingBox();\n if (!trackBoundingBox || !thumbBoundingBox) {\n return;\n }\n const startPosition = {\n x: thumbBoundingBox.x + thumbBoundingBox.width / 2,\n y: thumbBoundingBox.y + thumbBoundingBox.height / 2\n };\n await this.sourceElement.page.mouse.move(startPosition.x, startPosition.y);\n await this.sourceElement.page.mouse.down();\n\n const maxAttribute = await inputElement.getAttribute('max');\n const max = maxAttribute ? +maxAttribute : 100;\n const minAttribute = await inputElement.getAttribute('min');\n const min = minAttribute ? +minAttribute : 0;\n const percent = (Math.max(min, Math.min(+value, max)) - min) / (max - min);\n await this.sourceElement.page.mouse.move(\n trackBoundingBox.x + Math.round(trackBoundingBox.width * percent),\n trackBoundingBox.y + trackBoundingBox.height / 2\n );\n await this.sourceElement.page.mouse.up();\n }\n\n /** @inheritdoc */\n public async getValue() {\n return (new O3rElement({\n element: await this.getInputElement(),\n page: this.sourceElement.page\n })).getValue();\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@o3r/testing",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.3.0-prerelease.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -95,20 +95,21 @@
|
|
|
95
95
|
},
|
|
96
96
|
"peerDependencies": {
|
|
97
97
|
"@amadeus-it-group/kassette": "^1.7.0",
|
|
98
|
-
"@angular-devkit/schematics": "~18.
|
|
99
|
-
"@angular/animations": "~18.
|
|
100
|
-
"@angular/cli": "~18.
|
|
101
|
-
"@angular/common": "~18.
|
|
102
|
-
"@angular/core": "~18.
|
|
103
|
-
"@angular/forms": "~18.
|
|
104
|
-
"@angular/platform-browser": "~18.
|
|
98
|
+
"@angular-devkit/schematics": "~18.2.0",
|
|
99
|
+
"@angular/animations": "~18.2.0",
|
|
100
|
+
"@angular/cli": "~18.2.0",
|
|
101
|
+
"@angular/common": "~18.2.0",
|
|
102
|
+
"@angular/core": "~18.2.0",
|
|
103
|
+
"@angular/forms": "~18.2.0",
|
|
104
|
+
"@angular/platform-browser": "~18.2.0",
|
|
105
|
+
"@material/slider": "^14.0.0",
|
|
105
106
|
"@ngrx/store": "~18.0.0",
|
|
106
107
|
"@ngx-translate/core": "~15.0.0",
|
|
107
|
-
"@o3r/core": "^11.
|
|
108
|
-
"@o3r/localization": "^11.
|
|
109
|
-
"@o3r/schematics": "^11.
|
|
110
|
-
"@playwright/test": "~1.
|
|
111
|
-
"@schematics/angular": "~18.
|
|
108
|
+
"@o3r/core": "^11.3.0-prerelease.0",
|
|
109
|
+
"@o3r/localization": "^11.3.0-prerelease.0",
|
|
110
|
+
"@o3r/schematics": "^11.3.0-prerelease.0",
|
|
111
|
+
"@playwright/test": "~1.46.0",
|
|
112
|
+
"@schematics/angular": "~18.2.0",
|
|
112
113
|
"pixelmatch": "^5.2.1",
|
|
113
114
|
"pngjs": "^7.0.0",
|
|
114
115
|
"protractor": "^7.0.0",
|
|
@@ -126,6 +127,9 @@
|
|
|
126
127
|
"@angular/cli": {
|
|
127
128
|
"optional": true
|
|
128
129
|
},
|
|
130
|
+
"@material/slider": {
|
|
131
|
+
"optional": true
|
|
132
|
+
},
|
|
129
133
|
"@ngx-translate/core": {
|
|
130
134
|
"optional": true
|
|
131
135
|
},
|
|
@@ -164,33 +168,34 @@
|
|
|
164
168
|
},
|
|
165
169
|
"devDependencies": {
|
|
166
170
|
"@amadeus-it-group/kassette": "^1.7.0",
|
|
167
|
-
"@angular-devkit/build-angular": "~18.
|
|
168
|
-
"@angular-devkit/core": "~18.
|
|
169
|
-
"@angular-devkit/schematics": "~18.
|
|
170
|
-
"@angular-eslint/eslint-plugin": "~18.
|
|
171
|
-
"@angular/cli": "~18.
|
|
172
|
-
"@angular/common": "~18.
|
|
173
|
-
"@angular/compiler": "~18.
|
|
174
|
-
"@angular/compiler-cli": "~18.
|
|
175
|
-
"@angular/core": "~18.
|
|
176
|
-
"@angular/forms": "~18.
|
|
177
|
-
"@angular/platform-browser": "~18.
|
|
178
|
-
"@angular/platform-browser-dynamic": "~18.
|
|
171
|
+
"@angular-devkit/build-angular": "~18.2.0",
|
|
172
|
+
"@angular-devkit/core": "~18.2.0",
|
|
173
|
+
"@angular-devkit/schematics": "~18.2.0",
|
|
174
|
+
"@angular-eslint/eslint-plugin": "~18.3.0",
|
|
175
|
+
"@angular/cli": "~18.2.0",
|
|
176
|
+
"@angular/common": "~18.2.0",
|
|
177
|
+
"@angular/compiler": "~18.2.0",
|
|
178
|
+
"@angular/compiler-cli": "~18.2.0",
|
|
179
|
+
"@angular/core": "~18.2.0",
|
|
180
|
+
"@angular/forms": "~18.2.0",
|
|
181
|
+
"@angular/platform-browser": "~18.2.0",
|
|
182
|
+
"@angular/platform-browser-dynamic": "~18.2.0",
|
|
179
183
|
"@babel/core": "~7.25.0",
|
|
180
184
|
"@babel/preset-typescript": "~7.24.0",
|
|
181
185
|
"@compodoc/compodoc": "^1.1.19",
|
|
186
|
+
"@material/slider": "^14.0.0",
|
|
182
187
|
"@ngrx/store": "~18.0.0",
|
|
183
188
|
"@ngx-translate/core": "~15.0.0",
|
|
184
189
|
"@nx/eslint-plugin": "~19.5.0",
|
|
185
190
|
"@nx/jest": "~19.5.0",
|
|
186
|
-
"@o3r/build-helpers": "^11.
|
|
187
|
-
"@o3r/core": "^11.
|
|
188
|
-
"@o3r/eslint-plugin": "^11.
|
|
189
|
-
"@o3r/localization": "^11.
|
|
190
|
-
"@o3r/schematics": "^11.
|
|
191
|
-
"@o3r/test-helpers": "^11.
|
|
192
|
-
"@playwright/test": "~1.
|
|
193
|
-
"@schematics/angular": "~18.
|
|
191
|
+
"@o3r/build-helpers": "^11.3.0-prerelease.0",
|
|
192
|
+
"@o3r/core": "^11.3.0-prerelease.0",
|
|
193
|
+
"@o3r/eslint-plugin": "^11.3.0-prerelease.0",
|
|
194
|
+
"@o3r/localization": "^11.3.0-prerelease.0",
|
|
195
|
+
"@o3r/schematics": "^11.3.0-prerelease.0",
|
|
196
|
+
"@o3r/test-helpers": "^11.3.0-prerelease.0",
|
|
197
|
+
"@playwright/test": "~1.46.0",
|
|
198
|
+
"@schematics/angular": "~18.2.0",
|
|
194
199
|
"@stylistic/eslint-plugin-ts": "~2.4.0",
|
|
195
200
|
"@types/jest": "~29.5.2",
|
|
196
201
|
"@types/node": "^20.0.0",
|
|
@@ -203,7 +208,7 @@
|
|
|
203
208
|
"cpy-cli": "^5.0.0",
|
|
204
209
|
"eslint": "^8.57.0",
|
|
205
210
|
"eslint-import-resolver-node": "^0.3.9",
|
|
206
|
-
"eslint-plugin-jest": "~28.
|
|
211
|
+
"eslint-plugin-jest": "~28.8.0",
|
|
207
212
|
"eslint-plugin-jsdoc": "~48.11.0",
|
|
208
213
|
"eslint-plugin-prefer-arrow": "~1.2.3",
|
|
209
214
|
"eslint-plugin-unicorn": "^54.0.0",
|
|
@@ -26,7 +26,7 @@ function ngAddFn(options) {
|
|
|
26
26
|
return async (tree, context) => {
|
|
27
27
|
try {
|
|
28
28
|
const testPackageJsonPath = path.resolve(__dirname, '..', '..', 'package.json');
|
|
29
|
-
const packageJson = JSON.parse(fs.readFileSync(testPackageJsonPath, { encoding: '
|
|
29
|
+
const packageJson = JSON.parse(fs.readFileSync(testPackageJsonPath, { encoding: 'utf8' }));
|
|
30
30
|
const depsInfo = (0, schematics_2.getO3rPeerDeps)(testPackageJsonPath);
|
|
31
31
|
const workspaceProject = options.projectName ? (0, schematics_2.getWorkspaceConfig)(tree)?.projects[options.projectName] : undefined;
|
|
32
32
|
const workingDirectory = workspaceProject?.root || '.';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":";;;AAAA,2DAAkK;AAClK,gDAayB;AACzB,8DAAoE;AACpE,2EAA8E;AAC9E,8BAA8B;AAC9B,kCAAkC;AAGlC,uCAAgD;AAChD,6CAAgD;AAEhD,MAAM,wBAAwB,GAAG;IAC/B,YAAY;IACZ,OAAO;IACP,MAAM;IACN,wBAAwB;IACxB,qBAAqB;IACrB,SAAS;IACT,aAAa;CACd,CAAC;AAEF;;;GAGG;AACH,SAAS,OAAO,CAAC,OAA8B;IAC7C,OAAO,KAAK,EAAE,IAAU,EAAE,OAAyB,EAAE,EAAE;QACrD,IAAI,CAAC;YACH,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;YAChF,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ const fs = require("node:fs");
|
|
|
14
14
|
*/
|
|
15
15
|
function updatePlaywright(options, dependencies) {
|
|
16
16
|
const corePackageJsonPath = path.resolve(__dirname, '..', '..', '..', 'package.json');
|
|
17
|
-
const ownPackageJson = JSON.parse(fs.readFileSync(corePackageJsonPath, { encoding: '
|
|
17
|
+
const ownPackageJson = JSON.parse(fs.readFileSync(corePackageJsonPath, { encoding: 'utf8' }));
|
|
18
18
|
dependencies['@playwright/test'] = {
|
|
19
19
|
inManifest: [{
|
|
20
20
|
range: ownPackageJson.devDependencies['@playwright/test'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../schematics/ng-add/playwright/index.ts"],"names":[],"mappings":";;AAiBA,4CAqEC;AAtFD,+CAA+C;AAC/C,2DAAqJ;AACrJ,gDAIyB;AACzB,2EAA8E;AAC9E,kCAAkC;AAClC,8BAA8B;AAG9B;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,OAA4B,EAAE,YAA6C;IAC1G,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IACtF,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../schematics/ng-add/playwright/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,23 @@
|
|
|
1
|
-
const { join, relative } = require('node:path');
|
|
1
|
+
const { join, resolve, relative } = require('node:path');
|
|
2
|
+
const { readFileSync } = require('node:fs');
|
|
2
3
|
const { pathsToModuleNameMapper } = require('ts-jest');
|
|
4
|
+
const ts = require('typescript');
|
|
3
5
|
// In the following statement, replace `./tsconfig.json` with the path to your `tsconfig` file
|
|
4
6
|
// which contains the path mapping (ie the `compilerOptions.paths` option):
|
|
5
|
-
const { compilerOptions } = require('./tsconfig.json');
|
|
6
7
|
|
|
7
8
|
globalThis.ngJest = {
|
|
8
9
|
skipNgcc: true
|
|
9
10
|
};
|
|
10
11
|
|
|
12
|
+
const baseTsconfigPath = resolve(__dirname, './tsconfig.json');
|
|
13
|
+
|
|
11
14
|
/**
|
|
12
15
|
* @param rootDir {string}
|
|
13
16
|
* @param isAngularSetup {boolean}
|
|
14
17
|
* @returns {import('ts-jest/dist/types').JestConfigWithTsJest}
|
|
15
18
|
*/
|
|
16
19
|
module.exports.getJestProjectConfig = (rootDir, isAngularSetup) => {
|
|
20
|
+
const { compilerOptions } = ts.parseConfigFileTextToJson(baseTsconfigPath, readFileSync(baseTsconfigPath, { encoding: 'utf-8' })).config;
|
|
17
21
|
const relativePath = relative(rootDir, __dirname);
|
|
18
22
|
const moduleNameMapper = Object.entries(pathsToModuleNameMapper(compilerOptions.paths || {})).reduce((acc, [moduleName, path]) => {
|
|
19
23
|
acc[moduleName] = `<rootDir>/${relativePath}/${path}`;
|
|
@@ -48,7 +48,7 @@ function initFetchManager() {
|
|
|
48
48
|
return tslib_1.__generator(this, function (_a) {
|
|
49
49
|
switch (_a.label) {
|
|
50
50
|
case 0:
|
|
51
|
-
fetchManager = fs.readFileSync(path.resolve(process.cwd(), 'node_modules', '@o3r', 'testing', 'tools', 'protractor', 'fetch-manager', '_fetch-manager.js'), { encoding: '
|
|
51
|
+
fetchManager = fs.readFileSync(path.resolve(process.cwd(), 'node_modules', '@o3r', 'testing', 'tools', 'protractor', 'fetch-manager', '_fetch-manager.js'), { encoding: 'utf8' });
|
|
52
52
|
return [4 /*yield*/, protractor_1.browser.executeScript(fetchManager)];
|
|
53
53
|
case 1:
|
|
54
54
|
_a.sent();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/tools/protractor/fetch-manager/utils.ts"],"names":[],"mappings":";;AAeA,gDAOC;AAMD,4CAQC;AAKD,4CAEC;;AA3CD,4BAA8B;AAC9B,gCAAkC;AAClC,yCAAqC;AAErC;;;;;;;;;;GAUG;AACH,SAAsB,kBAAkB;;;;wBACtC,qBAAM,oBAAO,CAAC,cAAc,EAAE,EAAA;;oBAA9B,SAA8B,CAAC;yBAC3B,CAAC,oBAAO,CAAC,qBAAqB,EAA9B,wBAA8B;oBAChC,qBAAM,oBAAO,CAAC,kBAAkB,CAC9B,mFAAmF,CAAC,EAAA;;oBADtF,SACsF,CAAC;oBACvF,qBAAM,oBAAO,CAAC,cAAc,EAAE,EAAA;;oBAA9B,SAA8B,CAAC;;;;;;CAElC;AAED;;;GAGG;AACH,SAAsB,gBAAgB;;;;;;oBAC9B,YAAY,GAAG,EAAE,CAAC,YAAY,CAClC,IAAI,CAAC,OAAO,CACV,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,eAAe,EACxF,mBAAmB,CAAC,EACtB,EAAC,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/tools/protractor/fetch-manager/utils.ts"],"names":[],"mappings":";;AAeA,gDAOC;AAMD,4CAQC;AAKD,4CAEC;;AA3CD,4BAA8B;AAC9B,gCAAkC;AAClC,yCAAqC;AAErC;;;;;;;;;;GAUG;AACH,SAAsB,kBAAkB;;;;wBACtC,qBAAM,oBAAO,CAAC,cAAc,EAAE,EAAA;;oBAA9B,SAA8B,CAAC;yBAC3B,CAAC,oBAAO,CAAC,qBAAqB,EAA9B,wBAA8B;oBAChC,qBAAM,oBAAO,CAAC,kBAAkB,CAC9B,mFAAmF,CAAC,EAAA;;oBADtF,SACsF,CAAC;oBACvF,qBAAM,oBAAO,CAAC,cAAc,EAAE,EAAA;;oBAA9B,SAA8B,CAAC;;;;;;CAElC;AAED;;;GAGG;AACH,SAAsB,gBAAgB;;;;;;oBAC9B,YAAY,GAAG,EAAE,CAAC,YAAY,CAClC,IAAI,CAAC,OAAO,CACV,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,eAAe,EACxF,mBAAmB,CAAC,EACtB,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC;oBACtB,qBAAM,oBAAO,CAAC,aAAa,CAAC,YAAY,CAAC,EAAA;;oBAAzC,SAAyC,CAAC;oBAC1C,qBAAM,oBAAO,CAAC,aAAa,CAAC,2CAA2C,CAAC,EAAA;;oBAAxE,SAAwE,CAAC;;;;;CAC1E;AAED;;GAEG;AACH,SAAsB,gBAAgB;;;;wBACpC,qBAAM,oBAAO,CAAC,aAAa,CAAC,2CAA2C,CAAC,EAAA;;oBAAxE,SAAwE,CAAC;;;;;CAC1E","sourcesContent":["import * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport { browser } from 'protractor';\n\n/**\n * This function waits for all fetchs calls to be resolved and the page to be stable to resolve the promise.\n * It permits to easily run synchronous e2e tests on a flow that uses fetchs calls with protractor.\n * This is very useful in the case of Otter calls to backend because protractor synchronization manager do not care\n * about fetchs calls.\n *\n * This function needs the FetchManager to have been initialized and injected in the browser at the beginning of the\n * flow with `initFetchManager()`\n *\n * You can ignore the waiting of fetchs by setting `browser.ignoreSynchronization` to `true`\n */\nexport async function waitForOtterStable() {\n await browser.waitForAngular();\n if (!browser.ignoreSynchronization) {\n await browser.executeAsyncScript(\n 'window.fetchManager.getInstance().waitForFetchs(arguments[arguments.length - 1]);');\n await browser.waitForAngular();\n }\n}\n\n/**\n * This function initiliaze the FetchManager. Set `window.fetch` variable with a custom behaviour in order to count the\n * fetch calls.\n */\nexport async function initFetchManager() {\n const fetchManager = fs.readFileSync(\n path.resolve(\n process.cwd(), 'node_modules', '@o3r', 'testing', 'tools', 'protractor', 'fetch-manager',\n '_fetch-manager.js'),\n {encoding: 'utf8'});\n await browser.executeScript(fetchManager);\n await browser.executeScript('window.fetchManager.getInstance().init();');\n}\n\n/**\n * This function stops the FetchManager. Reset `window.fetch` variable with its native behaviour.\n */\nexport async function stopFetchManager() {\n await browser.executeScript('window.fetchManager.getInstance().stop();');\n}\n"]}
|
|
@@ -61,7 +61,7 @@ var PostMessageInterceptor = /** @class */ (function () {
|
|
|
61
61
|
switch (_a.label) {
|
|
62
62
|
case 0:
|
|
63
63
|
fetchManager = fs.readFileSync(path.resolve(process.cwd(), 'node_modules', '@o3r', 'testing', 'tools', 'protractor', 'post-message-interceptor', '_post-message-interceptor.js'), {
|
|
64
|
-
encoding: '
|
|
64
|
+
encoding: 'utf8'
|
|
65
65
|
});
|
|
66
66
|
return [4 /*yield*/, protractor_1.browser.executeScript(fetchManager)];
|
|
67
67
|
case 1:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post-message-interceptor.js","sourceRoot":"","sources":["../../../../src/tools/protractor/post-message-interceptor/post-message-interceptor.ts"],"names":[],"mappings":";;;;AAAA,4BAA8B;AAC9B,gCAAkC;AAClC,yCAAqC;AAIrC;;GAEG;AACH;IAAA;QACmB,iBAAY,GAAG,6CAA6C,CAAC;IAiEhF,CAAC;IA/DC;;;;OAIG;IACW,mDAAkB,GAAhC,UAAiC,UAAkB;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;;;;4BAC1D,qBAAM,oBAAO,CAAC,aAAa,OAArB,oBAAO,yBAAe,UAAG,IAAI,CAAC,YAAY,cAAI,UAAU,oBAAiB,GAAK,IAAI,WAAC;4BAAhG,sBAAO,SAAyF,EAAC;;;;KAClG;IAED;;;;OAIG;IACW,wDAAuB,GAArC,UAAsC,UAAkB;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;;;;4BAC/D,qBAAM,oBAAO,CAAC,kBAAkB,OAA1B,oBAAO,yBAAoB,UAAG,IAAI,CAAC,YAAY,cAAI,UAAU,oBAAiB,GAAK,IAAI,WAAC;4BAArG,sBAAO,SAA8F,EAAC;;;;KACvG;IAED;;;OAGG;IACU,2CAAU,GAAvB;;;;;;wBACQ,YAAY,GAAG,EAAE,CAAC,YAAY,CAClC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,8BAA8B,CAAC,EACjJ;4BACE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"post-message-interceptor.js","sourceRoot":"","sources":["../../../../src/tools/protractor/post-message-interceptor/post-message-interceptor.ts"],"names":[],"mappings":";;;;AAAA,4BAA8B;AAC9B,gCAAkC;AAClC,yCAAqC;AAIrC;;GAEG;AACH;IAAA;QACmB,iBAAY,GAAG,6CAA6C,CAAC;IAiEhF,CAAC;IA/DC;;;;OAIG;IACW,mDAAkB,GAAhC,UAAiC,UAAkB;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;;;;4BAC1D,qBAAM,oBAAO,CAAC,aAAa,OAArB,oBAAO,yBAAe,UAAG,IAAI,CAAC,YAAY,cAAI,UAAU,oBAAiB,GAAK,IAAI,WAAC;4BAAhG,sBAAO,SAAyF,EAAC;;;;KAClG;IAED;;;;OAIG;IACW,wDAAuB,GAArC,UAAsC,UAAkB;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;;;;4BAC/D,qBAAM,oBAAO,CAAC,kBAAkB,OAA1B,oBAAO,yBAAoB,UAAG,IAAI,CAAC,YAAY,cAAI,UAAU,oBAAiB,GAAK,IAAI,WAAC;4BAArG,sBAAO,SAA8F,EAAC;;;;KACvG;IAED;;;OAGG;IACU,2CAAU,GAAvB;;;;;;wBACQ,YAAY,GAAG,EAAE,CAAC,YAAY,CAClC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,8BAA8B,CAAC,EACjJ;4BACE,QAAQ,EAAE,MAAM;yBACjB,CACF,CAAC;wBACF,qBAAM,oBAAO,CAAC,aAAa,CAAC,YAAY,CAAC,EAAA;;wBAAzC,SAAyC,CAAC;wBAC1C,qBAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAA;;wBAArC,SAAqC,CAAC;;;;;KACvC;IAED;;OAEG;IACU,qCAAI,GAAjB;;;;4BACE,qBAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAA;;wBAArC,SAAqC,CAAC;;;;;KACvC;IAED;;;OAGG;IACU,uCAAM,GAAnB,UAAoB,WAAyB;;;;4BAC3C,qBAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAA;;wBAApD,SAAoD,CAAC;;;;;KACtD;IAED;;OAEG;IACU,8CAAa,GAA1B;;;;4BACE,qBAAM,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,EAAA;;wBAA9C,SAA8C,CAAC;;;;;KAChD;IAED;;;;OAIG;IACU,4CAAW,GAAxB;oEAAyB,eAAqB,EAAE,OAAY;YAAnC,gCAAA,EAAA,qBAAqB;YAAE,wBAAA,EAAA,WAAW,CAAC;;;4BAClD,qBAAM,IAAI,CAAC,uBAAuB,CAAC,aAAa,EAAE,eAAe,EAAE,OAAO,CAAC,EAAA;4BAAnF,sBAAO,CAAC,SAA2E,CAAsB,EAAC;;;;KAC3G;IACH,6BAAC;AAAD,CAAC,AAlED,IAkEC;AAlEY,wDAAsB","sourcesContent":["import * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport { browser } from 'protractor';\n\nimport { ConditionFn, PostMessageCall } from './core';\n\n/**\n * Controls the postMessage interceptor\n */\nexport class PostMessageInterceptor {\n private readonly GET_INSTANCE = 'window.postMessageInterceptor.getInstance()';\n\n /**\n * Executes a script in the app\n * @param methodName\n * @param {...any} args\n */\n private async execInstanceMethod(methodName: string, ...args: any[]) {\n return await browser.executeScript(`${this.GET_INSTANCE}.${methodName}(...arguments);`, ...args);\n }\n\n /**\n * Executes an async script in the app\n * @param methodName\n * @param {...any} args\n */\n private async execInstanceAsyncMethod(methodName: string, ...args: any[]) {\n return await browser.executeAsyncScript(`${this.GET_INSTANCE}.${methodName}(...arguments);`, ...args);\n }\n\n /**\n * Initializes the PostMessageInterceptor in the app\n * NOTE: It does not start listening right away. You need to call listen()\n */\n public async initialize() {\n const fetchManager = fs.readFileSync(\n path.resolve(process.cwd(), 'node_modules', '@o3r', 'testing', 'tools', 'protractor', 'post-message-interceptor', '_post-message-interceptor.js'),\n {\n encoding: 'utf8'\n }\n );\n await browser.executeScript(fetchManager);\n await this.execInstanceMethod('init');\n }\n\n /**\n * Stops the PostMessageInterceptor.\n */\n public async stop() {\n await this.execInstanceMethod('stop');\n }\n\n /**\n * Listens for post messages\n * @param conditionFn an optional boolean function that will evaluate if the message should be saved or not in the stack\n */\n public async listen(conditionFn?: ConditionFn) {\n await this.execInstanceMethod('listen', conditionFn);\n }\n\n /**\n * Stops listening for post messages, resets the stack and clears the condition\n */\n public async stopListening() {\n await this.execInstanceMethod('stopListening');\n }\n\n /**\n * Get all the post messages\n * @param timeoutInterval Interval in milliseconds between two checks\n * @param retries How many retries to be executed (-1 for infinite retries)\n */\n public async getMessages(timeoutInterval = 100, retries = -1): Promise<PostMessageCall[]> {\n return (await this.execInstanceAsyncMethod('getMessages', timeoutInterval, retries)) as PostMessageCall[];\n }\n}\n"]}
|