@o3r/testing 10.2.0-prerelease.9 → 10.2.0-rc.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 +3 -0
- package/core/angular/component-fixture.js +12 -12
- package/core/angular/component-fixture.js.map +1 -1
- package/core/helpers.d.ts.map +1 -1
- package/core/playwright/angular-materials/autocomplete-material.js +3 -3
- package/core/playwright/angular-materials/autocomplete-material.js.map +1 -1
- package/core/playwright/angular-materials/select-material.js +9 -9
- package/core/playwright/angular-materials/select-material.js.map +1 -1
- package/core/playwright/component-fixture.js +15 -15
- package/core/playwright/component-fixture.js.map +1 -1
- package/core/playwright/elements/checkbox-element.js +3 -3
- package/core/playwright/elements/checkbox-element.js.map +1 -1
- package/core/playwright/elements/radio-element.js +3 -3
- package/core/playwright/elements/radio-element.js.map +1 -1
- package/core/protractor/component-fixture.js +12 -12
- package/core/protractor/component-fixture.js.map +1 -1
- package/core/protractor/elements/checkbox-element.js +3 -3
- package/core/protractor/elements/checkbox-element.js.map +1 -1
- package/core/protractor/elements/radio-element.js +3 -3
- package/core/protractor/elements/radio-element.js.map +1 -1
- package/kassette/update-dates-in-mocks.js +11 -11
- package/kassette/update-dates-in-mocks.js.map +1 -1
- package/package.json +48 -48
- package/schematics/ng-add/fixture/index.d.ts.map +1 -1
- package/schematics/ng-add/fixture/index.js +6 -6
- package/schematics/ng-add/fixture/index.js.map +1 -1
- package/tools/protractor/fetch-manager/_fetch-manager.d.ts +1 -0
- package/tools/protractor/fetch-manager/_fetch-manager.d.ts.map +1 -0
- package/tools/protractor/fetch-manager/_fetch-manager.js +127 -0
- package/tools/protractor/fetch-manager/_fetch-manager.js.map +1 -0
- package/tools/protractor/post-message-interceptor/_post-message-interceptor.d.ts +5 -0
- package/tools/protractor/post-message-interceptor/_post-message-interceptor.d.ts.map +1 -0
- package/tools/protractor/post-message-interceptor/_post-message-interceptor.js +157 -0
- package/tools/protractor/post-message-interceptor/_post-message-interceptor.js.map +1 -0
- package/tools/protractor/post-message-interceptor/post-message-interceptor.js +4 -4
- package/tools/protractor/post-message-interceptor/post-message-interceptor.js.map +1 -1
|
@@ -12,10 +12,10 @@ var O3rCheckboxElement = /** @class */ (function (_super) {
|
|
|
12
12
|
return _super.call(this, sourceElement) || this;
|
|
13
13
|
}
|
|
14
14
|
/** @inheritDoc */
|
|
15
|
-
O3rCheckboxElement.prototype.check = function (
|
|
16
|
-
|
|
17
|
-
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
15
|
+
O3rCheckboxElement.prototype.check = function () {
|
|
16
|
+
return tslib_1.__awaiter(this, arguments, void 0, function (value, associatedLabel) {
|
|
18
17
|
var currentValue;
|
|
18
|
+
if (value === void 0) { value = true; }
|
|
19
19
|
return tslib_1.__generator(this, function (_a) {
|
|
20
20
|
switch (_a.label) {
|
|
21
21
|
case 0: return [4 /*yield*/, this.isChecked()];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox-element.js","sourceRoot":"","sources":["../../../../src/core/protractor/elements/checkbox-element.ts"],"names":[],"mappings":";;;;AAEA,sCAAsC;AAEtC;;GAEG;AACH;IAAwC,8CAAU;IAChD,4BAAY,aAA4B;QACtC,OAAA,MAAK,YAAC,aAAa,CAAC,SAAC;IACvB,CAAC;IAED,kBAAkB;IACL,kCAAK,GAAlB,
|
|
1
|
+
{"version":3,"file":"checkbox-element.js","sourceRoot":"","sources":["../../../../src/core/protractor/elements/checkbox-element.ts"],"names":[],"mappings":";;;;AAEA,sCAAsC;AAEtC;;GAEG;AACH;IAAwC,8CAAU;IAChD,4BAAY,aAA4B;QACtC,OAAA,MAAK,YAAC,aAAa,CAAC,SAAC;IACvB,CAAC;IAED,kBAAkB;IACL,kCAAK,GAAlB;oEAAmB,KAAY,EAAE,eAA4B;;YAA1C,sBAAA,EAAA,YAAY;;;4BACR,qBAAM,IAAI,CAAC,SAAS,EAAE,EAAA;;wBAArC,YAAY,GAAG,SAAsB;wBAC3C,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;4BAC3B,sBAAO,OAAO,CAAC,OAAO,EAAE,EAAC;wBAC3B,CAAC;wBAED,sBAAO,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAC;;;;KACjE;IAED,kBAAkB;IACX,oCAAO,GAAd;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,kBAAkB;IACL,sCAAS,GAAtB;;;;;4BACgB,qBAAM,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,EAAA;;wBAA7C,KAAK,GAAG,SAAqC;wBACnD,sBAAO,KAAK,EAAC;;;;KACd;IACH,yBAAC;AAAD,CAAC,AAzBD,CAAwC,oBAAU,GAyBjD;AAzBY,gDAAkB","sourcesContent":["import {ElementFinder} from 'protractor';\nimport {CheckboxElementProfile} from '../../elements';\nimport {O3rElement} from '../element';\n\n/**\n * Implementation dedicated to karma / TestBed.\n */\nexport class O3rCheckboxElement extends O3rElement implements CheckboxElementProfile {\n constructor(sourceElement: ElementFinder) {\n super(sourceElement);\n }\n\n /** @inheritDoc */\n public async check(value = true, associatedLabel?: O3rElement) {\n const currentValue = await this.isChecked();\n if (currentValue === value) {\n return Promise.resolve();\n }\n\n return associatedLabel ? associatedLabel.click() : this.click();\n }\n\n /** @inheritDoc */\n public uncheck() {\n return this.check(false);\n }\n\n /** @inheritDoc */\n public async isChecked(): Promise<boolean> {\n const value = await this.sourceElement.isSelected();\n return value;\n }\n}\n"]}
|
|
@@ -12,10 +12,10 @@ var O3rRadioElement = /** @class */ (function (_super) {
|
|
|
12
12
|
return _super.call(this, sourceElement) || this;
|
|
13
13
|
}
|
|
14
14
|
/** @inheritDoc */
|
|
15
|
-
O3rRadioElement.prototype.check = function (
|
|
16
|
-
|
|
17
|
-
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
15
|
+
O3rRadioElement.prototype.check = function () {
|
|
16
|
+
return tslib_1.__awaiter(this, arguments, void 0, function (value) {
|
|
18
17
|
var currentValue;
|
|
18
|
+
if (value === void 0) { value = true; }
|
|
19
19
|
return tslib_1.__generator(this, function (_a) {
|
|
20
20
|
switch (_a.label) {
|
|
21
21
|
case 0: return [4 /*yield*/, this.isChecked()];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-element.js","sourceRoot":"","sources":["../../../../src/core/protractor/elements/radio-element.ts"],"names":[],"mappings":";;;;AAEA,sCAAsC;AAEtC;;GAEG;AACH;IAAqC,2CAAU;IAC7C,yBAAY,aAA4B;QACtC,OAAA,MAAK,YAAC,aAAa,CAAC,SAAC;IACvB,CAAC;IAED,kBAAkB;IACL,+BAAK,GAAlB,
|
|
1
|
+
{"version":3,"file":"radio-element.js","sourceRoot":"","sources":["../../../../src/core/protractor/elements/radio-element.ts"],"names":[],"mappings":";;;;AAEA,sCAAsC;AAEtC;;GAEG;AACH;IAAqC,2CAAU;IAC7C,yBAAY,aAA4B;QACtC,OAAA,MAAK,YAAC,aAAa,CAAC,SAAC;IACvB,CAAC;IAED,kBAAkB;IACL,+BAAK,GAAlB;oEAAmB,KAAY;;YAAZ,sBAAA,EAAA,YAAY;;;4BACR,qBAAM,IAAI,CAAC,SAAS,EAAE,EAAA;;wBAArC,YAAY,GAAG,SAAsB;wBAC3C,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;4BAC3B,OAAO,CAAC,IAAI,CAAC,qCAA8B,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAE,CAAC,CAAC;4BAC9E,sBAAO,OAAO,CAAC,OAAO,EAAE,EAAC;wBAC3B,CAAC;wBAED,sBAAO,IAAI,CAAC,KAAK,EAAE,EAAC;;;;KACrB;IAED,kBAAkB;IACX,iCAAO,GAAd;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,kBAAkB;IACL,mCAAS,GAAtB;;;;;4BACkB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAA;;wBAA5C,OAAO,GAAG,SAAkC;wBAClD,sBAAO,OAAO,KAAK,SAAS,EAAC;;;;KAC9B;IACH,sBAAC;AAAD,CAAC,AA1BD,CAAqC,oBAAU,GA0B9C;AA1BY,0CAAe","sourcesContent":["import {ElementFinder} from 'protractor';\nimport {RadioElementProfile} from '../../elements';\nimport {O3rElement} from '../element';\n\n/**\n * Implementation dedicated to karma / TestBed.\n */\nexport class O3rRadioElement extends O3rElement implements RadioElementProfile {\n constructor(sourceElement: ElementFinder) {\n super(sourceElement);\n }\n\n /** @inheritDoc */\n public async check(value = true) {\n const currentValue = await this.isChecked();\n if (currentValue === value) {\n console.warn(`O3rRadioElement is already ${value ? 'checked' : 'unchecked'}`);\n return Promise.resolve();\n }\n\n return this.click();\n }\n\n /** @inheritDoc */\n public uncheck() {\n return this.check(false);\n }\n\n /** @inheritDoc */\n public async isChecked(): Promise<boolean> {\n const checked = await this.getAttribute('checked');\n return checked !== undefined;\n }\n}\n"]}
|
|
@@ -8,11 +8,11 @@ var temporal_polyfill_1 = require("temporal-polyfill");
|
|
|
8
8
|
* @param mock the mock instance provided by the hook method of Kassette
|
|
9
9
|
* @param inputOptions default options will extract ISO strings and use 'day-offset' mode
|
|
10
10
|
*/
|
|
11
|
-
function updateDatesInMocks(
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
function updateDatesInMocks(mock_1) {
|
|
12
|
+
return tslib_1.__awaiter(this, arguments, void 0, function (mock, inputOptions) {
|
|
13
|
+
var plainDateLength, options, todayTime, replaceDatesInInput, checksum, _a, localPayload, referenceTime, timeOffset_1, replaceDatesInOutput, wrappedPayload;
|
|
14
|
+
var _b, _c;
|
|
15
|
+
if (inputOptions === void 0) { inputOptions = {}; }
|
|
16
16
|
return tslib_1.__generator(this, function (_d) {
|
|
17
17
|
switch (_d.label) {
|
|
18
18
|
case 0:
|
|
@@ -53,17 +53,17 @@ function updateDatesInMocks(mock, inputOptions) {
|
|
|
53
53
|
case 1:
|
|
54
54
|
checksum = _d.sent();
|
|
55
55
|
mock.setLocalPath([mock.localPath, checksum]);
|
|
56
|
-
|
|
57
|
-
if (!
|
|
56
|
+
_a = /get|post/.test(mock.request.method);
|
|
57
|
+
if (!_a) return [3 /*break*/, 3];
|
|
58
58
|
return [4 /*yield*/, mock.hasLocalMock()];
|
|
59
59
|
case 2:
|
|
60
|
-
|
|
60
|
+
_a = (_d.sent());
|
|
61
61
|
_d.label = 3;
|
|
62
62
|
case 3:
|
|
63
|
-
if (!
|
|
63
|
+
if (!_a) return [3 /*break*/, 6];
|
|
64
64
|
return [4 /*yield*/, mock.readLocalPayload()];
|
|
65
65
|
case 4:
|
|
66
|
-
localPayload = (
|
|
66
|
+
localPayload = (_b = (_d.sent())) === null || _b === void 0 ? void 0 : _b.payload;
|
|
67
67
|
if (!(localPayload && localPayload.data.creationDateTime)) return [3 /*break*/, 6];
|
|
68
68
|
referenceTime = temporal_polyfill_1.Temporal.PlainDate.from(localPayload.data.creationDateTime.toISOString().substring(0, 10));
|
|
69
69
|
timeOffset_1 = temporal_polyfill_1.Temporal.PlainDate.from(referenceTime).until(todayTime, { smallestUnit: 'days', largestUnit: 'days' });
|
|
@@ -83,7 +83,7 @@ function updateDatesInMocks(mock, inputOptions) {
|
|
|
83
83
|
};
|
|
84
84
|
wrappedPayload = mock.createPayload({
|
|
85
85
|
data: localPayload.data,
|
|
86
|
-
body: replaceDatesInOutput(((
|
|
86
|
+
body: replaceDatesInOutput(((_c = localPayload.body) === null || _c === void 0 ? void 0 : _c.toString()) || '')
|
|
87
87
|
});
|
|
88
88
|
mock.fillResponseFromPayload(wrappedPayload);
|
|
89
89
|
return [4 /*yield*/, mock.sendResponse()];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-dates-in-mocks.js","sourceRoot":"","sources":["../../src/kassette/update-dates-in-mocks.ts"],"names":[],"mappings":";;;;AACA,uDAA2C;AAiC3C;;;;GAIG;AACH,SAAsB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"update-dates-in-mocks.js","sourceRoot":"","sources":["../../src/kassette/update-dates-in-mocks.ts"],"names":[],"mappings":"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","sourcesContent":["import type {IMock} from '@amadeus-it-group/kassette';\nimport {Temporal} from 'temporal-polyfill';\n\n/**\n * Options to be passed to `updateDatesInMocks`\n */\nexport interface UpdateDatesInMocksOptions {\n /**\n * 'any': dates in inputs will be ignored when computing checksum, the dates on the output will be updated to keep the same day offset\n * 'day-offset': dates in inputs will be converted to day offsets, the dates on the output will be updated to keep the same day offset\n * 'same-day-of-week': dates in inputs will be converted to day of week, the dates on the output will be updated to keep the same day of week but increment the week\n */\n mode: 'any' | 'day-offset' | 'same-day-of-week';\n /**\n * RegExp used to extract dates from request and response\n */\n extractor: RegExp;\n /**\n * Functions to be used to convert from Temporal objects to strings, and strings to temporal objects\n */\n converter: {\n /**\n * Converter from Temporal to string\n * @param input\n */\n fromDate: (input: Temporal.ZonedDateTime | Temporal.PlainDate) => string;\n /**\n * Converter from string to Temporal\n * @param input\n */\n toDate: (input: string) => Temporal.ZonedDateTime | Temporal.PlainDate;\n };\n}\n\n/**\n * Update mock checksum and response body to keep using the same mocks every day with updated dates\n * @param mock the mock instance provided by the hook method of Kassette\n * @param inputOptions default options will extract ISO strings and use 'day-offset' mode\n */\nexport async function updateDatesInMocks(mock: IMock, inputOptions: Partial<UpdateDatesInMocksOptions> = {}) {\n const plainDateLength = 'YYYY-MM-DDThh:mm:ss'.length;\n const options: UpdateDatesInMocksOptions = {\n mode: 'day-offset',\n extractor: /\\b(\\d{4}-\\d{2}-\\d{2})[^\"]*/g,\n converter: {\n fromDate: (date) => date.toString().substring(0, plainDateLength),\n toDate: (input) => {\n input = input.replace(/\\.\\d+/, '').replace(/Z/, '+00:00');\n return input.length > plainDateLength ?\n Temporal.ZonedDateTime.from(`${input.replace(/(\\.\\d+)/, '')}[${input.replace(/^.*(\\+\\d{2}:\\d{2}).*$/, '$1') || '+00:00'}]`) :\n Temporal.PlainDate.from(input);\n }\n },\n ...inputOptions\n };\n const todayTime = Temporal.Now.plainDateISO();\n\n // Update request\n const replaceDatesInInput = (input: string): string => {\n switch (options.mode) {\n case 'any': {\n return input.replace(options.extractor, '<any>');\n }\n case 'day-offset': {\n return input.replace(options.extractor, (match) => `<t+${Temporal.PlainDate.from(todayTime).until(options.converter.toDate(match)).toString()}>`);\n }\n case 'same-day-of-week': {\n return input.replace(options.extractor, (match) => `<day ${options.converter.toDate(match).dayOfWeek} next week>`);\n }\n }\n return input;\n };\n const checksum = await mock.checksum({\n headers: false,\n body: {filter: (body) => replaceDatesInInput(body.toString())},\n query: {filter: (params) => Object.fromEntries(Object.entries(params).map(([key, value]) => [key, replaceDatesInInput(value)]))},\n customData: {updateDatesMode: options.mode}\n });\n mock.setLocalPath([mock.localPath, checksum]);\n\n // Update response\n if (/get|post/.test(mock.request.method) && (await mock.hasLocalMock())) {\n const localPayload = (await mock.readLocalPayload())?.payload;\n if (localPayload && localPayload.data.creationDateTime) {\n const referenceTime = Temporal.PlainDate.from(localPayload.data.creationDateTime.toISOString().substring(0, 10));\n const timeOffset = Temporal.PlainDate.from(referenceTime).until(todayTime, {smallestUnit: 'days', largestUnit: 'days'});\n if (timeOffset.days !== 0) {\n mock.setMode('manual');\n const replaceDatesInOutput = (output: string): string => {\n switch (options.mode) {\n case 'any':\n case 'day-offset': {\n return output.replace(options.extractor, (match) => options.converter.fromDate(options.converter.toDate(match).add(timeOffset)));\n }\n case 'same-day-of-week': {\n return output.replace(options.extractor, (match) => options.converter.fromDate(options.converter.toDate(match).add(`P${Math.ceil(timeOffset.days / 7)}W`)));\n }\n }\n return output;\n };\n const wrappedPayload = mock.createPayload({\n data: localPayload.data,\n body: replaceDatesInOutput(localPayload.body?.toString() || '')\n });\n mock.fillResponseFromPayload(wrappedPayload);\n await mock.sendResponse();\n }\n }\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@o3r/testing",
|
|
3
|
-
"version": "10.2.0-
|
|
3
|
+
"version": "10.2.0-rc.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -95,25 +95,25 @@
|
|
|
95
95
|
},
|
|
96
96
|
"peerDependencies": {
|
|
97
97
|
"@amadeus-it-group/kassette": "^1.7.0",
|
|
98
|
-
"@angular-devkit/schematics": "~17.
|
|
99
|
-
"@angular/animations": "~17.
|
|
100
|
-
"@angular/common": "~17.
|
|
101
|
-
"@angular/core": "~17.
|
|
102
|
-
"@angular/forms": "~17.
|
|
103
|
-
"@angular/platform-browser": "~17.
|
|
98
|
+
"@angular-devkit/schematics": "~17.3.0",
|
|
99
|
+
"@angular/animations": "~17.3.0",
|
|
100
|
+
"@angular/common": "~17.3.0",
|
|
101
|
+
"@angular/core": "~17.3.0",
|
|
102
|
+
"@angular/forms": "~17.3.0",
|
|
103
|
+
"@angular/platform-browser": "~17.3.0",
|
|
104
104
|
"@ngrx/store": "~17.1.0",
|
|
105
105
|
"@ngx-translate/core": "~15.0.0",
|
|
106
|
-
"@o3r/core": "^10.2.0-
|
|
107
|
-
"@o3r/localization": "^10.2.0-
|
|
108
|
-
"@o3r/schematics": "^10.2.0-
|
|
109
|
-
"@playwright/test": "~1.
|
|
110
|
-
"@schematics/angular": "~17.
|
|
106
|
+
"@o3r/core": "^10.2.0-rc.0",
|
|
107
|
+
"@o3r/localization": "^10.2.0-rc.0",
|
|
108
|
+
"@o3r/schematics": "^10.2.0-rc.0",
|
|
109
|
+
"@playwright/test": "~1.43.0",
|
|
110
|
+
"@schematics/angular": "~17.3.0",
|
|
111
111
|
"pixelmatch": "^5.2.1",
|
|
112
112
|
"pngjs": "^7.0.0",
|
|
113
113
|
"protractor": "^7.0.0",
|
|
114
114
|
"rxjs": "^7.8.1",
|
|
115
115
|
"temporal-polyfill": "^0.2.0",
|
|
116
|
-
"typescript": "~5.
|
|
116
|
+
"typescript": "~5.4.2"
|
|
117
117
|
},
|
|
118
118
|
"peerDependenciesMeta": {
|
|
119
119
|
"@amadeus-it-group/kassette": {
|
|
@@ -156,59 +156,59 @@
|
|
|
156
156
|
"dependencies": {
|
|
157
157
|
"esbuild": "~0.20.0",
|
|
158
158
|
"module-from-string": "^3.2.0",
|
|
159
|
-
"tslib": "^2.
|
|
159
|
+
"tslib": "^2.6.2"
|
|
160
160
|
},
|
|
161
161
|
"devDependencies": {
|
|
162
162
|
"@amadeus-it-group/kassette": "^1.7.0",
|
|
163
|
-
"@angular-devkit/build-angular": "~17.
|
|
164
|
-
"@angular-devkit/core": "~17.
|
|
165
|
-
"@angular-devkit/schematics": "~17.
|
|
166
|
-
"@angular-eslint/eslint-plugin": "~17.
|
|
167
|
-
"@angular/cli": "~17.
|
|
168
|
-
"@angular/common": "~17.
|
|
169
|
-
"@angular/compiler": "~17.
|
|
170
|
-
"@angular/compiler-cli": "~17.
|
|
171
|
-
"@angular/core": "~17.
|
|
172
|
-
"@angular/forms": "~17.
|
|
173
|
-
"@angular/platform-browser": "~17.
|
|
174
|
-
"@angular/platform-browser-dynamic": "~17.
|
|
163
|
+
"@angular-devkit/build-angular": "~17.3.0",
|
|
164
|
+
"@angular-devkit/core": "~17.3.0",
|
|
165
|
+
"@angular-devkit/schematics": "~17.3.0",
|
|
166
|
+
"@angular-eslint/eslint-plugin": "~17.3.0",
|
|
167
|
+
"@angular/cli": "~17.3.0",
|
|
168
|
+
"@angular/common": "~17.3.0",
|
|
169
|
+
"@angular/compiler": "~17.3.0",
|
|
170
|
+
"@angular/compiler-cli": "~17.3.0",
|
|
171
|
+
"@angular/core": "~17.3.0",
|
|
172
|
+
"@angular/forms": "~17.3.0",
|
|
173
|
+
"@angular/platform-browser": "~17.3.0",
|
|
174
|
+
"@angular/platform-browser-dynamic": "~17.3.0",
|
|
175
175
|
"@babel/core": "~7.24.0",
|
|
176
|
-
"@babel/preset-typescript": "~7.
|
|
176
|
+
"@babel/preset-typescript": "~7.24.0",
|
|
177
177
|
"@compodoc/compodoc": "^1.1.19",
|
|
178
178
|
"@ngrx/store": "~17.1.0",
|
|
179
179
|
"@ngx-translate/core": "~15.0.0",
|
|
180
|
-
"@nx/eslint-plugin": "~18.0
|
|
181
|
-
"@nx/jest": "~18.0
|
|
182
|
-
"@o3r/build-helpers": "^10.2.0-
|
|
183
|
-
"@o3r/core": "^10.2.0-
|
|
184
|
-
"@o3r/eslint-plugin": "^10.2.0-
|
|
185
|
-
"@o3r/localization": "^10.2.0-
|
|
186
|
-
"@o3r/schematics": "^10.2.0-
|
|
187
|
-
"@o3r/test-helpers": "^10.2.0-
|
|
188
|
-
"@playwright/test": "~1.
|
|
189
|
-
"@schematics/angular": "~17.
|
|
180
|
+
"@nx/eslint-plugin": "~18.2.0",
|
|
181
|
+
"@nx/jest": "~18.2.0",
|
|
182
|
+
"@o3r/build-helpers": "^10.2.0-rc.0",
|
|
183
|
+
"@o3r/core": "^10.2.0-rc.0",
|
|
184
|
+
"@o3r/eslint-plugin": "^10.2.0-rc.0",
|
|
185
|
+
"@o3r/localization": "^10.2.0-rc.0",
|
|
186
|
+
"@o3r/schematics": "^10.2.0-rc.0",
|
|
187
|
+
"@o3r/test-helpers": "^10.2.0-rc.0",
|
|
188
|
+
"@playwright/test": "~1.43.0",
|
|
189
|
+
"@schematics/angular": "~17.3.0",
|
|
190
190
|
"@stylistic/eslint-plugin-ts": "^1.5.4",
|
|
191
191
|
"@types/jest": "~29.5.2",
|
|
192
192
|
"@types/node": "^20.0.0",
|
|
193
193
|
"@types/pixelmatch": "^5.2.3",
|
|
194
194
|
"@types/pngjs": "^6.0.0",
|
|
195
|
-
"@typescript-eslint/eslint-plugin": "^7.0
|
|
196
|
-
"@typescript-eslint/parser": "^7.0
|
|
195
|
+
"@typescript-eslint/eslint-plugin": "^7.2.0",
|
|
196
|
+
"@typescript-eslint/parser": "^7.2.0",
|
|
197
197
|
"concurrently": "^8.0.0",
|
|
198
198
|
"cpy-cli": "^5.0.0",
|
|
199
|
-
"eslint": "^8.
|
|
200
|
-
"eslint-import-resolver-node": "^0.3.
|
|
199
|
+
"eslint": "^8.57.0",
|
|
200
|
+
"eslint-import-resolver-node": "^0.3.9",
|
|
201
201
|
"eslint-plugin-jest": "~27.9.0",
|
|
202
|
-
"eslint-plugin-jsdoc": "~48.2.
|
|
202
|
+
"eslint-plugin-jsdoc": "~48.2.1",
|
|
203
203
|
"eslint-plugin-prefer-arrow": "~1.2.3",
|
|
204
|
-
"eslint-plugin-unicorn": "^51.0.
|
|
204
|
+
"eslint-plugin-unicorn": "^51.0.1",
|
|
205
205
|
"isomorphic-fetch": "~3.0.0",
|
|
206
206
|
"jest": "~29.7.0",
|
|
207
207
|
"jest-environment-jsdom": "~29.7.0",
|
|
208
208
|
"jest-junit": "~16.0.0",
|
|
209
|
-
"jest-preset-angular": "~14.0.
|
|
209
|
+
"jest-preset-angular": "~14.0.3",
|
|
210
210
|
"jsonc-eslint-parser": "~2.4.0",
|
|
211
|
-
"nx": "~18.0
|
|
211
|
+
"nx": "~18.2.0",
|
|
212
212
|
"pid-from-port": "^1.1.3",
|
|
213
213
|
"pixelmatch": "^5.2.1",
|
|
214
214
|
"pngjs": "^7.0.0",
|
|
@@ -216,10 +216,10 @@
|
|
|
216
216
|
"rxjs": "^7.8.1",
|
|
217
217
|
"semver": "^7.5.2",
|
|
218
218
|
"temporal-polyfill": "^0.2.0",
|
|
219
|
-
"ts-jest": "~29.1.
|
|
220
|
-
"ts-node": "~10.9.
|
|
219
|
+
"ts-jest": "~29.1.2",
|
|
220
|
+
"ts-node": "~10.9.2",
|
|
221
221
|
"type-fest": "^4.10.2",
|
|
222
|
-
"typescript": "~5.
|
|
222
|
+
"typescript": "~5.4.2",
|
|
223
223
|
"zone.js": "~0.14.2"
|
|
224
224
|
},
|
|
225
225
|
"schematics": "./collection.json",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../schematics/ng-add/fixture/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,IAAI,EAA0B,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../schematics/ng-add/fixture/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,IAAI,EAA0B,MAAM,4BAA4B,CAAC;AAIjF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CAAE,EAAE,4BAA4B,EAAE,OAAO,GAAG,IAAI,CA6FnL"}
|
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.updateFixtureConfig = void 0;
|
|
4
4
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
5
5
|
const schematics_1 = require("@angular-devkit/schematics");
|
|
6
|
-
const schematics_2 = require("@o3r/schematics");
|
|
7
6
|
const ts = require("typescript");
|
|
8
7
|
/**
|
|
9
8
|
* Add fixture configuration
|
|
@@ -19,10 +18,11 @@ function updateFixtureConfig(options, registerUnitTestFixturePaths) {
|
|
|
19
18
|
* @param tree
|
|
20
19
|
* @param context
|
|
21
20
|
*/
|
|
22
|
-
const updateTestTsconfig = (tree, context) => {
|
|
23
|
-
const
|
|
21
|
+
const updateTestTsconfig = async (tree, context) => {
|
|
22
|
+
const { getTestFramework, getWorkspaceConfig } = await Promise.resolve().then(() => require('@o3r/schematics'));
|
|
23
|
+
const workspaceProject = options.projectName ? getWorkspaceConfig(tree)?.projects[options.projectName] : undefined;
|
|
24
24
|
if (!workspaceProject) {
|
|
25
|
-
return
|
|
25
|
+
return;
|
|
26
26
|
}
|
|
27
27
|
const testTarget = workspaceProject.architect && workspaceProject.architect.test;
|
|
28
28
|
const tsconfig = testTarget && testTarget.options && testTarget.options.tsConfig;
|
|
@@ -40,7 +40,7 @@ function updateFixtureConfig(options, registerUnitTestFixturePaths) {
|
|
|
40
40
|
}
|
|
41
41
|
return libs;
|
|
42
42
|
}, []);
|
|
43
|
-
const testFramework = options.testingFramework ||
|
|
43
|
+
const testFramework = options.testingFramework || getTestFramework(getWorkspaceConfig(tree), context);
|
|
44
44
|
if (testFramework === 'jest') {
|
|
45
45
|
tsconfigCompilerOptions.types ||= [];
|
|
46
46
|
if (tsconfigCompilerOptions.types.indexOf('jest') === -1) {
|
|
@@ -51,7 +51,7 @@ function updateFixtureConfig(options, registerUnitTestFixturePaths) {
|
|
|
51
51
|
tsconfigCompilerOptions.outDir = 'test';
|
|
52
52
|
tree.overwrite(tsconfig, JSON.stringify(tsconfigFile, null, 2));
|
|
53
53
|
}
|
|
54
|
-
return
|
|
54
|
+
return;
|
|
55
55
|
};
|
|
56
56
|
/**
|
|
57
57
|
* Update base tsconfig paths with o3r fixtures
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../schematics/ng-add/fixture/index.ts"],"names":[],"mappings":";;;AAAA,yDAAyD;AACzD,2DAAiF;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../schematics/ng-add/fixture/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=_fetch-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_fetch-manager.d.ts","sourceRoot":"","sources":["../../../../src/tools/protractor/fetch-manager/_fetch-manager.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Note: This file is not part of the running script, it is injected in the browser while running e2e tests.
|
|
4
|
+
*/
|
|
5
|
+
(function () {
|
|
6
|
+
var MAX_WAITING_TIME_FOR_FETCH = 45 * 1000; // 45 seconds
|
|
7
|
+
var fetchManager = /** @class */ (function () {
|
|
8
|
+
function FetchManager() {
|
|
9
|
+
this.nbCurrentFetch = 0;
|
|
10
|
+
}
|
|
11
|
+
FetchManager.prototype.interceptor = function (ref, nativeFetch) {
|
|
12
|
+
var args = [];
|
|
13
|
+
for (var _i = 2; _i < arguments.length; _i++) {
|
|
14
|
+
args[_i - 2] = arguments[_i];
|
|
15
|
+
}
|
|
16
|
+
var promise = Promise.resolve(args);
|
|
17
|
+
promise = promise.then(function () {
|
|
18
|
+
ref.nbCurrentFetch++;
|
|
19
|
+
return [args[0], args[1]];
|
|
20
|
+
}, function (error) {
|
|
21
|
+
return Promise.reject(error);
|
|
22
|
+
});
|
|
23
|
+
promise = promise.then(function () { return nativeFetch.apply(void 0, args); });
|
|
24
|
+
promise = promise.then(function (response) {
|
|
25
|
+
ref.nbCurrentFetch--;
|
|
26
|
+
return response;
|
|
27
|
+
}, function (error) {
|
|
28
|
+
ref.nbCurrentFetch--;
|
|
29
|
+
return Promise.reject(error);
|
|
30
|
+
});
|
|
31
|
+
return promise;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Register the fetchs events to count the number of pending fetchs.
|
|
35
|
+
*/
|
|
36
|
+
FetchManager.prototype.registerFetchInterceptor = function () {
|
|
37
|
+
var _this = this;
|
|
38
|
+
var nativeFetch = window.fetch;
|
|
39
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
40
|
+
var that = this;
|
|
41
|
+
Object.assign(window, { fetch: function () {
|
|
42
|
+
var args = [];
|
|
43
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
44
|
+
args[_i] = arguments[_i];
|
|
45
|
+
}
|
|
46
|
+
return _this.interceptor.apply(_this, __spreadArray([that, nativeFetch], args, false));
|
|
47
|
+
} });
|
|
48
|
+
};
|
|
49
|
+
FetchManager.prototype.unregisterFetchInterceptor = function () {
|
|
50
|
+
Object.assign(window, { fetch: this.windowFetch });
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Returns the single instance of FetchManager
|
|
54
|
+
*/
|
|
55
|
+
FetchManager.getInstance = function () {
|
|
56
|
+
return this._instance || (this._instance = new this());
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Initialize the fetch manager
|
|
60
|
+
*/
|
|
61
|
+
FetchManager.prototype.init = function () {
|
|
62
|
+
this.nbCurrentFetch = 0;
|
|
63
|
+
this.registerFetchInterceptor();
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
*
|
|
67
|
+
*/
|
|
68
|
+
FetchManager.prototype.stop = function () {
|
|
69
|
+
this.nbCurrentFetch = 0;
|
|
70
|
+
this.unregisterFetchInterceptor();
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Get the number of active fetchs on the page.
|
|
74
|
+
*/
|
|
75
|
+
FetchManager.prototype.getPendingFetchs = function () {
|
|
76
|
+
return this.nbCurrentFetch;
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* This function waits for all fetchs calls to be resolved and the page to be stable to call the callback.
|
|
80
|
+
* It permits to easily run synchronous tests with protractor.
|
|
81
|
+
* This is very usefull in the case of Otter calls to backend because protractor synchronization manager do not care
|
|
82
|
+
* about fetchs calls. As a consequence, the `waitForAngular` method will not work.
|
|
83
|
+
* @param callback : Callback called when all the fetchs are finished and the page is stable.
|
|
84
|
+
* @param timeoutInterval : Interval in milliseconds between two checks of the number of pending fetchs
|
|
85
|
+
*/
|
|
86
|
+
FetchManager.prototype.waitForFetchs = function (callback, timeoutInterval) {
|
|
87
|
+
var _this = this;
|
|
88
|
+
if (timeoutInterval === void 0) { timeoutInterval = 100; }
|
|
89
|
+
var interval;
|
|
90
|
+
var timeout;
|
|
91
|
+
if (!this.getPendingFetchs()) {
|
|
92
|
+
callback();
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
var cancelPolling = function () {
|
|
96
|
+
if (interval) {
|
|
97
|
+
clearInterval(interval);
|
|
98
|
+
interval = undefined;
|
|
99
|
+
}
|
|
100
|
+
if (timeout) {
|
|
101
|
+
clearTimeout(timeout);
|
|
102
|
+
timeout = undefined;
|
|
103
|
+
}
|
|
104
|
+
// Handle polling result
|
|
105
|
+
if (_this.getPendingFetchs() > 0) {
|
|
106
|
+
// Error case will just log in console
|
|
107
|
+
// and allow to continue as o3r elements might be checking fetchManager
|
|
108
|
+
// concurrently
|
|
109
|
+
_this.nbCurrentFetch = 0;
|
|
110
|
+
callback();
|
|
111
|
+
throw new Error('Fetch timeout. Please check network requests.');
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
callback();
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
var polling = function () { return _this.getPendingFetchs() > 0 || cancelPolling(); };
|
|
118
|
+
interval = setInterval(polling, timeoutInterval);
|
|
119
|
+
timeout = setTimeout(cancelPolling, MAX_WAITING_TIME_FOR_FETCH);
|
|
120
|
+
};
|
|
121
|
+
return FetchManager;
|
|
122
|
+
}());
|
|
123
|
+
if (!('fetchManager' in window)) {
|
|
124
|
+
Object.assign(window, { fetchManager: fetchManager });
|
|
125
|
+
}
|
|
126
|
+
})();
|
|
127
|
+
//# sourceMappingURL=_fetch-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_fetch-manager.js","sourceRoot":"","sources":["../../../../src/tools/protractor/fetch-manager/_fetch-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_post-message-interceptor.d.ts","sourceRoot":"","sources":["../../../../src/tools/protractor/post-message-interceptor/_post-message-interceptor.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|