@thinkwise/testwise 0.2.20 → 0.2.62
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/Testwise.ts +2 -0
- package/artifact-builder/SelectorBuilder.ts +2 -2
- package/artifact-builder/SubjectComponentGenerator.ts +21 -12
- package/artifact-builder/SubjectGenerator.ts +24 -8
- package/components/action-bar/ActionBar.ts +7 -7
- package/components/action-bar/CustomActionBar.ts +0 -5
- package/components/cardlist/Cardlist.ts +3 -3
- package/components/chart/Chart.ts +3 -3
- package/components/combined-filter/CombinedFilter.ts +3 -3
- package/components/cube-view-bar/CubeViewBar.ts +3 -3
- package/components/filter/ExcelStyleFilterPopup.ts +29 -0
- package/components/filter/ExcelStyleFilterPopupObjects.ts +20 -0
- package/components/filter/FilterForm.ts +3 -3
- package/components/filter/FilterPopup.ts +187 -0
- package/components/filter/FilterPopupObjects.ts +63 -0
- package/components/filter/ManagePrefilterPopup.ts +44 -0
- package/components/filter/ManagePrefilterPopupObjects.ts +28 -0
- package/components/form/Form.ts +3 -3
- package/components/grid/Grid.ts +15 -119
- package/components/grid/GridObjects.ts +0 -4
- package/components/index.ts +4 -0
- package/components/maps/Maps.ts +3 -3
- package/components/menu/ListBarMenuComponent.ts +11 -0
- package/components/menu/ListBarMenuComponentObjects.ts +6 -0
- package/components/pivot-grid/PivotGrid.ts +3 -3
- package/components/pivot-grid/PivotGridFieldList.ts +3 -3
- package/components/pop-up/AllRowsPopUp.ts +29 -0
- package/components/pop-up/AllRowsPopUpObjects.ts +22 -0
- package/components/prefilter-list/PrefilterList.ts +3 -3
- package/components/preview/Preview.ts +3 -3
- package/components/report-bar/ReportBar.ts +3 -3
- package/components/report-tiles/ReportTiles.ts +3 -3
- package/components/scheduler/Scheduler.ts +3 -3
- package/components/splitter/Splitter.ts +3 -3
- package/components/tab/BaseTab.ts +3 -3
- package/components/tab/DetailTabPage.ts +4 -4
- package/components/tab/Tab.ts +4 -4
- package/components/task/TaskBar.ts +3 -3
- package/components/task/TaskTiles.ts +3 -3
- package/components/topbar/TopBar.ts +2 -0
- package/components/tree-view/TreeView.ts +3 -3
- package/controls/DateControl.ts +6 -6
- package/controls/DateControlObjects.ts +0 -0
- package/controls/FormComboBox.ts +7 -7
- package/controls/FormComboBoxObjects.ts +0 -0
- package/controls/GridColumnControl.ts +68 -0
- package/controls/GridColumnControlObjects.ts +20 -0
- package/controls/InputFieldControl.ts +6 -6
- package/controls/InputFieldControlObjects.ts +0 -0
- package/controls/LookupDropdown.ts +58 -16
- package/controls/index.ts +1 -0
- package/dist/Testwise.d.ts +1 -0
- package/dist/Testwise.js +1 -0
- package/dist/Testwise.js.map +1 -1
- package/dist/artifact-builder/SelectorBuilder.d.ts +1 -1
- package/dist/artifact-builder/SelectorBuilder.js +2 -2
- package/dist/artifact-builder/SelectorBuilder.js.map +1 -1
- package/dist/artifact-builder/SubjectComponentGenerator.js +18 -12
- package/dist/artifact-builder/SubjectComponentGenerator.js.map +1 -1
- package/dist/artifact-builder/SubjectGenerator.d.ts +1 -0
- package/dist/artifact-builder/SubjectGenerator.js +20 -8
- package/dist/artifact-builder/SubjectGenerator.js.map +1 -1
- package/dist/components/action-bar/ActionBar.d.ts +2 -2
- package/dist/components/action-bar/ActionBar.js +7 -7
- package/dist/components/action-bar/ActionBar.js.map +1 -1
- package/dist/components/action-bar/CustomActionBar.d.ts +0 -2
- package/dist/components/action-bar/CustomActionBar.js +0 -3
- package/dist/components/action-bar/CustomActionBar.js.map +1 -1
- package/dist/components/cardlist/Cardlist.d.ts +2 -2
- package/dist/components/cardlist/Cardlist.js +2 -2
- package/dist/components/cardlist/Cardlist.js.map +1 -1
- package/dist/components/chart/Chart.d.ts +2 -2
- package/dist/components/chart/Chart.js +2 -2
- package/dist/components/chart/Chart.js.map +1 -1
- package/dist/components/combined-filter/CombinedFilter.d.ts +2 -2
- package/dist/components/combined-filter/CombinedFilter.js +2 -2
- package/dist/components/combined-filter/CombinedFilter.js.map +1 -1
- package/dist/components/cube-view-bar/CubeViewBar.d.ts +2 -2
- package/dist/components/cube-view-bar/CubeViewBar.js +2 -2
- package/dist/components/cube-view-bar/CubeViewBar.js.map +1 -1
- package/dist/components/filter/ExcelStyleFilterPopup.d.ts +9 -0
- package/dist/components/filter/ExcelStyleFilterPopup.js +22 -0
- package/dist/components/filter/ExcelStyleFilterPopup.js.map +1 -0
- package/dist/components/filter/ExcelStyleFilterPopupObjects.d.ts +9 -0
- package/dist/components/filter/ExcelStyleFilterPopupObjects.js +13 -0
- package/dist/components/filter/ExcelStyleFilterPopupObjects.js.map +1 -0
- package/dist/components/filter/FilterForm.d.ts +2 -2
- package/dist/components/filter/FilterForm.js +2 -2
- package/dist/components/filter/FilterForm.js.map +1 -1
- package/dist/components/filter/FilterPopup.d.ts +41 -0
- package/dist/components/filter/FilterPopup.js +126 -0
- package/dist/components/filter/FilterPopup.js.map +1 -0
- package/dist/components/filter/FilterPopupObjects.d.ts +29 -0
- package/dist/components/filter/FilterPopupObjects.js +30 -0
- package/dist/components/filter/FilterPopupObjects.js.map +1 -0
- package/dist/components/filter/ManagePrefilterPopup.d.ts +14 -0
- package/dist/components/filter/ManagePrefilterPopup.js +33 -0
- package/dist/components/filter/ManagePrefilterPopup.js.map +1 -0
- package/dist/components/filter/ManagePrefilterPopupObjects.d.ts +11 -0
- package/dist/components/filter/ManagePrefilterPopupObjects.js +19 -0
- package/dist/components/filter/ManagePrefilterPopupObjects.js.map +1 -0
- package/dist/components/form/Form.d.ts +2 -2
- package/dist/components/form/Form.js +2 -2
- package/dist/components/form/Form.js.map +1 -1
- package/dist/components/grid/Grid.d.ts +4 -36
- package/dist/components/grid/Grid.js +14 -102
- package/dist/components/grid/Grid.js.map +1 -1
- package/dist/components/grid/GridObjects.d.ts +0 -2
- package/dist/components/grid/GridObjects.js +0 -2
- package/dist/components/grid/GridObjects.js.map +1 -1
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.js +4 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/maps/Maps.d.ts +2 -2
- package/dist/components/maps/Maps.js +2 -2
- package/dist/components/maps/Maps.js.map +1 -1
- package/dist/components/menu/ListBarMenuComponent.d.ts +6 -0
- package/dist/components/menu/ListBarMenuComponent.js +10 -0
- package/dist/components/menu/ListBarMenuComponent.js.map +1 -1
- package/dist/components/menu/ListBarMenuComponentObjects.d.ts +2 -0
- package/dist/components/menu/ListBarMenuComponentObjects.js +2 -0
- package/dist/components/menu/ListBarMenuComponentObjects.js.map +1 -1
- package/dist/components/pivot-grid/PivotGrid.d.ts +2 -2
- package/dist/components/pivot-grid/PivotGrid.js +2 -2
- package/dist/components/pivot-grid/PivotGrid.js.map +1 -1
- package/dist/components/pivot-grid/PivotGridFieldList.d.ts +2 -2
- package/dist/components/pivot-grid/PivotGridFieldList.js +2 -2
- package/dist/components/pivot-grid/PivotGridFieldList.js.map +1 -1
- package/dist/components/pop-up/AllRowsPopUp.d.ts +12 -0
- package/dist/components/pop-up/AllRowsPopUp.js +19 -0
- package/dist/components/pop-up/AllRowsPopUp.js.map +1 -0
- package/dist/components/pop-up/AllRowsPopUpObjects.d.ts +11 -0
- package/dist/components/pop-up/AllRowsPopUpObjects.js +13 -0
- package/dist/components/pop-up/AllRowsPopUpObjects.js.map +1 -0
- package/dist/components/prefilter-list/PrefilterList.d.ts +2 -2
- package/dist/components/prefilter-list/PrefilterList.js +2 -2
- package/dist/components/prefilter-list/PrefilterList.js.map +1 -1
- package/dist/components/preview/Preview.d.ts +2 -2
- package/dist/components/preview/Preview.js +2 -2
- package/dist/components/preview/Preview.js.map +1 -1
- package/dist/components/report-bar/ReportBar.d.ts +2 -2
- package/dist/components/report-bar/ReportBar.js +2 -2
- package/dist/components/report-bar/ReportBar.js.map +1 -1
- package/dist/components/report-tiles/ReportTiles.d.ts +2 -2
- package/dist/components/report-tiles/ReportTiles.js +2 -2
- package/dist/components/report-tiles/ReportTiles.js.map +1 -1
- package/dist/components/scheduler/Scheduler.d.ts +2 -2
- package/dist/components/scheduler/Scheduler.js +2 -2
- package/dist/components/scheduler/Scheduler.js.map +1 -1
- package/dist/components/splitter/Splitter.d.ts +2 -2
- package/dist/components/splitter/Splitter.js +2 -2
- package/dist/components/splitter/Splitter.js.map +1 -1
- package/dist/components/tab/BaseTab.d.ts +2 -2
- package/dist/components/tab/BaseTab.js +2 -2
- package/dist/components/tab/BaseTab.js.map +1 -1
- package/dist/components/tab/DetailTabPage.d.ts +2 -2
- package/dist/components/tab/DetailTabPage.js +3 -3
- package/dist/components/tab/DetailTabPage.js.map +1 -1
- package/dist/components/tab/Tab.d.ts +2 -2
- package/dist/components/tab/Tab.js +3 -3
- package/dist/components/tab/Tab.js.map +1 -1
- package/dist/components/task/TaskBar.d.ts +2 -2
- package/dist/components/task/TaskBar.js +2 -2
- package/dist/components/task/TaskBar.js.map +1 -1
- package/dist/components/task/TaskTiles.d.ts +2 -2
- package/dist/components/task/TaskTiles.js +2 -2
- package/dist/components/task/TaskTiles.js.map +1 -1
- package/dist/components/topbar/TopBar.d.ts +1 -0
- package/dist/components/topbar/TopBar.js +1 -0
- package/dist/components/topbar/TopBar.js.map +1 -1
- package/dist/components/tree-view/TreeView.d.ts +2 -2
- package/dist/components/tree-view/TreeView.js +2 -2
- package/dist/components/tree-view/TreeView.js.map +1 -1
- package/dist/controls/DateControl.d.ts +3 -3
- package/dist/controls/DateControl.js +5 -5
- package/dist/controls/DateControl.js.map +1 -1
- package/dist/controls/DateControlObjects.d.ts +1 -0
- package/dist/controls/DateControlObjects.js +2 -0
- package/dist/controls/DateControlObjects.js.map +1 -0
- package/dist/controls/FormComboBox.d.ts +2 -2
- package/dist/controls/FormComboBox.js +6 -6
- package/dist/controls/FormComboBox.js.map +1 -1
- package/dist/controls/FormComboBoxObjects.d.ts +1 -0
- package/dist/controls/FormComboBoxObjects.js +2 -0
- package/dist/controls/FormComboBoxObjects.js.map +1 -0
- package/dist/controls/GridColumnControl.d.ts +10 -0
- package/dist/controls/GridColumnControl.js +43 -0
- package/dist/controls/GridColumnControl.js.map +1 -0
- package/dist/controls/GridColumnControlObjects.d.ts +9 -0
- package/dist/controls/GridColumnControlObjects.js +13 -0
- package/dist/controls/GridColumnControlObjects.js.map +1 -0
- package/dist/controls/InputFieldControl.d.ts +3 -3
- package/dist/controls/InputFieldControl.js +5 -5
- package/dist/controls/InputFieldControl.js.map +1 -1
- package/dist/controls/InputFieldControlObjects.d.ts +1 -0
- package/dist/controls/InputFieldControlObjects.js +2 -0
- package/dist/controls/InputFieldControlObjects.js.map +1 -0
- package/dist/controls/LookupDropdown.d.ts +6 -1
- package/dist/controls/LookupDropdown.js +42 -13
- package/dist/controls/LookupDropdown.js.map +1 -1
- package/dist/controls/index.d.ts +1 -0
- package/dist/controls/index.js +1 -0
- package/dist/controls/index.js.map +1 -1
- package/dist/enums/ElementTypes.d.ts +1 -1
- package/dist/enums/ElementTypes.js +1 -1
- package/dist/enums/ElementTypes.js.map +1 -1
- package/dist/helpers/FlightTracker.d.ts +7 -0
- package/dist/helpers/FlightTracker.js +63 -11
- package/dist/helpers/FlightTracker.js.map +1 -1
- package/dist/helpers/LoginHelper.d.ts +11 -3
- package/dist/helpers/LoginHelper.js +59 -13
- package/dist/helpers/LoginHelper.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/page-extensions/GlobalComponents.d.ts +2 -1
- package/dist/page-extensions/GlobalComponents.js +2 -1
- package/dist/page-extensions/GlobalComponents.js.map +1 -1
- package/dist/page-overrides/ClickOverride.d.ts +1 -0
- package/dist/page-overrides/ClickOverride.js +57 -46
- package/dist/page-overrides/ClickOverride.js.map +1 -1
- package/dist/types/Universal.d.ts +1 -0
- package/enums/ElementTypes.ts +1 -1
- package/helpers/FlightTracker.ts +71 -11
- package/helpers/LoginHelper.ts +79 -21
- package/index.ts +1 -1
- package/package.json +6 -5
- package/page-extensions/GlobalComponents.ts +3 -0
- package/page-overrides/ClickOverride.ts +69 -64
- package/types/Universal.ts +1 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Grid } from '../components/grid/Grid.js';
|
|
2
|
+
import { escapeRegex } from '../index.js';
|
|
3
|
+
import { GridColumnControlObjects } from './GridColumnControlObjects.js';
|
|
4
|
+
class GridColumnControl {
|
|
5
|
+
constructor(gridContext, id) {
|
|
6
|
+
this._id = id.replace(/-/g, '_');
|
|
7
|
+
this._objects = new GridColumnControlObjects(gridContext, this._id);
|
|
8
|
+
this._grid = new Grid(gridContext);
|
|
9
|
+
}
|
|
10
|
+
async openExcelStyleFilterPopup() {
|
|
11
|
+
await this._grid.openExcelStyleFilterPopup(this._id);
|
|
12
|
+
}
|
|
13
|
+
async getColumnHeader() {
|
|
14
|
+
return await this._objects.columnHeader();
|
|
15
|
+
}
|
|
16
|
+
getCellByExactValue(value) {
|
|
17
|
+
const valueToFindRegex = new RegExp(`^${escapeRegex(value)}$`);
|
|
18
|
+
return this._objects.cellByValue(valueToFindRegex);
|
|
19
|
+
}
|
|
20
|
+
async getCellValues() {
|
|
21
|
+
return await this._grid.getCellValuesByColId(this._id);
|
|
22
|
+
}
|
|
23
|
+
async filterByColumnValueExcelStyle(value, deselectAll) {
|
|
24
|
+
await this._grid.filterByColumnValueExcelStyle(this._id, value, deselectAll);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export function createGridColumnControl(gridContext, id) {
|
|
28
|
+
const columnControl = new GridColumnControl(gridContext, id);
|
|
29
|
+
const locator = gridContext.locator(`[col-id="${id}"]`);
|
|
30
|
+
return new Proxy(columnControl, {
|
|
31
|
+
get(target, prop, receiver) {
|
|
32
|
+
if (prop in target) {
|
|
33
|
+
return Reflect.get(target, prop, receiver);
|
|
34
|
+
}
|
|
35
|
+
const value = locator[prop];
|
|
36
|
+
if (typeof value === 'function') {
|
|
37
|
+
return value.bind(locator);
|
|
38
|
+
}
|
|
39
|
+
return value;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=GridColumnControl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridColumnControl.js","sourceRoot":"","sources":["../../controls/GridColumnControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAYzE,MAAM,iBAAiB;IAKrB,YAAY,WAAoB,EAAE,EAAU;QAC1C,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,wBAAwB,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACpE,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAEM,KAAK,CAAC,yBAAyB;QACpC,MAAM,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvD,CAAC;IAEM,KAAK,CAAC,eAAe;QAC1B,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;IAC5C,CAAC;IAEM,mBAAmB,CAAC,KAAa;QACtC,MAAM,gBAAgB,GAAG,IAAI,MAAM,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IACrD,CAAC;IAEM,KAAK,CAAC,aAAa;QACxB,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzD,CAAC;IAEM,KAAK,CAAC,6BAA6B,CAAC,KAAa,EAAE,WAAqB;QAC7E,MAAM,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAC/E,CAAC;CACF;AAED,MAAM,UAAU,uBAAuB,CAAC,WAAoB,EAAE,EAAU;IACtE,MAAM,aAAa,GAAG,IAAI,iBAAiB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAExD,OAAO,IAAI,KAAK,CAAC,aAAa,EAAE;QAC9B,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;gBACnB,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC7C,CAAC;YAED,MAAM,KAAK,GAAI,OAAe,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBAChC,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAkC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Locator } from '@playwright/test';
|
|
2
|
+
import { BaseComponentObjects } from '../components/BaseComponentObjects.js';
|
|
3
|
+
export declare class GridColumnControlObjects extends BaseComponentObjects {
|
|
4
|
+
private _id;
|
|
5
|
+
constructor(gridContext: Locator, columnId: string);
|
|
6
|
+
column: () => Locator;
|
|
7
|
+
columnHeader: () => Locator;
|
|
8
|
+
cellByValue: (value: RegExp) => Locator;
|
|
9
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BaseComponentObjects } from '../components/BaseComponentObjects.js';
|
|
2
|
+
export class GridColumnControlObjects extends BaseComponentObjects {
|
|
3
|
+
constructor(gridContext, columnId) {
|
|
4
|
+
super(gridContext.page(), gridContext);
|
|
5
|
+
this.column = () => this.context.locator(`[col-id="${this._id}"]`);
|
|
6
|
+
this.columnHeader = () => this.column().getByRole('columnheader');
|
|
7
|
+
this.cellByValue = (value) => this.column().locator('[role="button"]', {
|
|
8
|
+
hasText: value
|
|
9
|
+
});
|
|
10
|
+
this._id = columnId;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=GridColumnControlObjects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridColumnControlObjects.js","sourceRoot":"","sources":["../../controls/GridColumnControlObjects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAE7E,MAAM,OAAO,wBAAyB,SAAQ,oBAAoB;IAGhE,YAAY,WAAoB,EAAE,QAAgB;QAChD,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC;QAIlC,WAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAE9D,iBAAY,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAE7D,gBAAW,GAAG,CAAC,KAAa,EAAE,EAAE,CACrC,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,iBAAiB,EAAE;YACvC,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QAVH,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC;IACtB,CAAC;CAUF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** biome-ignore-all lint/suspicious/noExplicitAny: reason42 */
|
|
2
|
-
import type { Locator
|
|
2
|
+
import type { Locator } from '@playwright/test';
|
|
3
3
|
export type IInputFieldControl = Locator & ICoreInputFieldControl;
|
|
4
4
|
export type ICoreInputFieldControl = {
|
|
5
5
|
getValidationMessage(): Promise<string>;
|
|
@@ -14,7 +14,7 @@ export declare class InputFieldControl implements ICoreInputFieldControl {
|
|
|
14
14
|
private _formFieldLocator;
|
|
15
15
|
private _inputLocator;
|
|
16
16
|
private _id;
|
|
17
|
-
constructor(
|
|
17
|
+
constructor(context: Locator, id: string);
|
|
18
18
|
getValidationMessage(): Promise<string>;
|
|
19
19
|
fill(value: string): Promise<void>;
|
|
20
20
|
click(): Promise<void>;
|
|
@@ -23,4 +23,4 @@ export declare class InputFieldControl implements ICoreInputFieldControl {
|
|
|
23
23
|
inputElement(): Locator;
|
|
24
24
|
getLabelText(): Promise<string>;
|
|
25
25
|
}
|
|
26
|
-
export declare function createInputFieldControl(
|
|
26
|
+
export declare function createInputFieldControl(context: Locator, id: string): IInputFieldControl;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export class InputFieldControl {
|
|
2
|
-
constructor(
|
|
2
|
+
constructor(context, id) {
|
|
3
3
|
this._id = id;
|
|
4
|
-
this._formFieldLocator =
|
|
4
|
+
this._formFieldLocator = context.getByTestId(`form-field__${id}`);
|
|
5
5
|
this._inputLocator = this._formFieldLocator.locator('input');
|
|
6
6
|
}
|
|
7
7
|
async getValidationMessage() {
|
|
@@ -29,9 +29,9 @@ export class InputFieldControl {
|
|
|
29
29
|
return returnText;
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
export function createInputFieldControl(
|
|
33
|
-
const inputFieldControl = new InputFieldControl(
|
|
34
|
-
const locator =
|
|
32
|
+
export function createInputFieldControl(context, id) {
|
|
33
|
+
const inputFieldControl = new InputFieldControl(context, id);
|
|
34
|
+
const locator = context.getByTestId(`form-field__${id}`);
|
|
35
35
|
return new Proxy(inputFieldControl, {
|
|
36
36
|
get(target, prop, receiver) {
|
|
37
37
|
if (prop in target) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputFieldControl.js","sourceRoot":"","sources":["../../controls/InputFieldControl.ts"],"names":[],"mappings":"AAgBA,MAAM,OAAO,iBAAiB;IAK5B,YAAY,
|
|
1
|
+
{"version":3,"file":"InputFieldControl.js","sourceRoot":"","sources":["../../controls/InputFieldControl.ts"],"names":[],"mappings":"AAgBA,MAAM,OAAO,iBAAiB;IAK5B,YAAY,OAAgB,EAAE,EAAU;QACtC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,CAAC;IAEM,KAAK,CAAC,oBAAoB;QAC/B,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC1F,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,SAAS,EAAE,CAAC;IACjF,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,KAAa;QAC7B,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;IAC/C,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,YAAY;QACvB,IAAI,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,eAAe,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QAElH,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAEpD,OAAO,UAAU,CAAC;IACpB,CAAC;CACF;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB,EAAE,EAAU;IAClE,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAEzD,OAAO,IAAI,KAAK,CAAC,iBAAiB,EAAE;QAClC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;gBACnB,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC7C,CAAC;YACD,MAAM,KAAK,GAAI,OAAe,CAAC,IAAI,CAAC,CAAC;YAErC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBAChC,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAkC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputFieldControlObjects.js","sourceRoot":"","sources":["../../controls/InputFieldControlObjects.ts"],"names":[],"mappings":""}
|
|
@@ -4,5 +4,10 @@ export type ILookupDropdown = Locator & ILookupDropdownCore;
|
|
|
4
4
|
export type ILookupDropdownCore = {
|
|
5
5
|
lookupSelect(optionToSelect: string): Promise<void>;
|
|
6
6
|
selectOption(optionText: string): Promise<void>;
|
|
7
|
+
fill(value: string): Promise<void>;
|
|
8
|
+
getValidationMessage(): Promise<string>;
|
|
9
|
+
getLabelText(): Promise<string>;
|
|
10
|
+
inputValue(): Promise<string>;
|
|
11
|
+
clear(): Promise<void>;
|
|
7
12
|
};
|
|
8
|
-
export declare function createLookupDropdown(
|
|
13
|
+
export declare function createLookupDropdown(context: Locator, id: string): ILookupDropdown;
|
|
@@ -1,36 +1,65 @@
|
|
|
1
1
|
import { escapeRegex } from '../helpers/RegexHelper.js';
|
|
2
2
|
class LookupDropdown {
|
|
3
|
-
constructor(
|
|
4
|
-
this.
|
|
3
|
+
constructor(context, id) {
|
|
4
|
+
this._id = id;
|
|
5
|
+
this._formFieldLocator = context.getByTestId(`form-field__${this._id}`);
|
|
6
|
+
this._inputLocator = this._formFieldLocator.locator('input');
|
|
7
|
+
}
|
|
8
|
+
async getLabelText() {
|
|
9
|
+
let returnText = (await this._formFieldLocator.getByTestId(`form-field__${this._id}__label`).textContent()) || '';
|
|
10
|
+
returnText = returnText.replace(/\s+/g, ' ').trim();
|
|
11
|
+
return returnText;
|
|
5
12
|
}
|
|
6
13
|
async lookupSelect(optionToSelect) {
|
|
7
|
-
await
|
|
8
|
-
await this._locator.fill(optionToSelect);
|
|
9
|
-
await this._locator.page().waitEventHandler.setCanContinue(true);
|
|
14
|
+
await this._inputLocator.fill(optionToSelect);
|
|
10
15
|
await this.select(optionToSelect);
|
|
11
16
|
}
|
|
17
|
+
async inputValue() {
|
|
18
|
+
return await this._inputLocator.inputValue();
|
|
19
|
+
}
|
|
20
|
+
async clear() {
|
|
21
|
+
await this._inputLocator.fill('');
|
|
22
|
+
}
|
|
12
23
|
async selectOption(optionText) {
|
|
13
|
-
await this.
|
|
24
|
+
await this._inputLocator.click();
|
|
14
25
|
await this.select(optionText);
|
|
15
26
|
}
|
|
27
|
+
async getValidationMessage() {
|
|
28
|
+
await this._formFieldLocator.locator('.TooltipContainer p').waitFor({ state: 'visible' });
|
|
29
|
+
return await this._formFieldLocator.locator('.TooltipContainer p').innerText();
|
|
30
|
+
}
|
|
31
|
+
async fill(value) {
|
|
32
|
+
await Promise.all([
|
|
33
|
+
this._formFieldLocator
|
|
34
|
+
.page()
|
|
35
|
+
.waitForResponse((response) => response.url().includes('/list_') && response.request().method() === 'GET'),
|
|
36
|
+
this._inputLocator.click()
|
|
37
|
+
]);
|
|
38
|
+
await Promise.all([
|
|
39
|
+
this._formFieldLocator
|
|
40
|
+
.page()
|
|
41
|
+
.waitForResponse((response) => response.url().includes('/list_') && response.request().method() === 'GET'),
|
|
42
|
+
this._inputLocator.fill(value)
|
|
43
|
+
]);
|
|
44
|
+
}
|
|
16
45
|
async select(optionToSelect) {
|
|
17
46
|
const optionsToSelectRegex = new RegExp(`^${escapeRegex(optionToSelect)}$`, 'i');
|
|
18
|
-
await this.
|
|
19
|
-
await this.
|
|
47
|
+
await this._formFieldLocator.page().getByTestId('autocomplete__menu').getByText(optionsToSelectRegex).click();
|
|
48
|
+
await this._formFieldLocator
|
|
20
49
|
.page()
|
|
21
|
-
.waitForFunction((el) => document.activeElement === el, await this.
|
|
50
|
+
.waitForFunction((el) => document.activeElement === el, await this._inputLocator.elementHandle());
|
|
22
51
|
}
|
|
23
52
|
}
|
|
24
|
-
export function createLookupDropdown(
|
|
25
|
-
const dropdown = new LookupDropdown(
|
|
53
|
+
export function createLookupDropdown(context, id) {
|
|
54
|
+
const dropdown = new LookupDropdown(context, id);
|
|
26
55
|
return new Proxy(dropdown, {
|
|
27
56
|
get(target, prop, receiver) {
|
|
28
57
|
if (prop in target) {
|
|
29
58
|
return Reflect.get(target, prop, receiver);
|
|
30
59
|
}
|
|
31
|
-
const value =
|
|
60
|
+
const value = dropdown[prop];
|
|
32
61
|
if (typeof value === 'function') {
|
|
33
|
-
return value.bind(
|
|
62
|
+
return value.bind(dropdown);
|
|
34
63
|
}
|
|
35
64
|
return value;
|
|
36
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LookupDropdown.js","sourceRoot":"","sources":["../../controls/LookupDropdown.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"LookupDropdown.js","sourceRoot":"","sources":["../../controls/LookupDropdown.ts"],"names":[],"mappings":"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"}
|
package/dist/controls/index.d.ts
CHANGED
package/dist/controls/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../controls/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../controls/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC"}
|
|
@@ -5,7 +5,7 @@ export var KnownElementTypes;
|
|
|
5
5
|
KnownElementTypes["Textarea"] = "textarea";
|
|
6
6
|
KnownElementTypes["Checkbox"] = "checkbox";
|
|
7
7
|
KnownElementTypes["Lookup"] = "lookup";
|
|
8
|
-
KnownElementTypes["Column"] = "
|
|
8
|
+
KnownElementTypes["Column"] = "column";
|
|
9
9
|
KnownElementTypes["ComboBox"] = "combo_box";
|
|
10
10
|
KnownElementTypes["DatePicker"] = "date_picker";
|
|
11
11
|
})(KnownElementTypes || (KnownElementTypes = {}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ElementTypes.js","sourceRoot":"","sources":["../../enums/ElementTypes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,iBASX;AATD,WAAY,iBAAiB;IAC3B,oCAAe,CAAA;IACf,0CAAqB,CAAA;IACrB,0CAAqB,CAAA;IACrB,0CAAqB,CAAA;IACrB,sCAAiB,CAAA;IACjB,
|
|
1
|
+
{"version":3,"file":"ElementTypes.js","sourceRoot":"","sources":["../../enums/ElementTypes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,iBASX;AATD,WAAY,iBAAiB;IAC3B,oCAAe,CAAA;IACf,0CAAqB,CAAA;IACrB,0CAAqB,CAAA;IACrB,0CAAqB,CAAA;IACrB,sCAAiB,CAAA;IACjB,sCAAiB,CAAA;IACjB,2CAAsB,CAAA;IACtB,+CAA0B,CAAA;AAC5B,CAAC,EATW,iBAAiB,KAAjB,iBAAiB,QAS5B"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { EventEmitter } from 'node:events';
|
|
2
2
|
export declare class FlightTracker {
|
|
3
3
|
requestsInFlight: number;
|
|
4
|
+
private activeRequests;
|
|
4
5
|
eventEmitter: EventEmitter;
|
|
6
|
+
/**
|
|
7
|
+
* Filters out non-functional "noise" requests that shouldn't block test execution.
|
|
8
|
+
*/
|
|
9
|
+
isEssentialRequest(url: string): boolean;
|
|
10
|
+
handleRequestStarted: (url: string) => void;
|
|
11
|
+
handleRequestFinished: (url: string) => void;
|
|
5
12
|
waitToContinue: () => Promise<void>;
|
|
6
13
|
}
|
|
@@ -1,25 +1,77 @@
|
|
|
1
1
|
import { EventEmitter } from 'node:events';
|
|
2
2
|
import { testwiseConfig } from '../services/ConfigBuilder.js';
|
|
3
3
|
const timeout = testwiseConfig().get('featureSettings.InflightRequests.waitTimeout') ?? 5000;
|
|
4
|
+
const stabilityTime = 150;
|
|
4
5
|
export class FlightTracker {
|
|
5
6
|
constructor() {
|
|
6
7
|
this.requestsInFlight = 0;
|
|
8
|
+
this.activeRequests = new Set();
|
|
7
9
|
this.eventEmitter = new EventEmitter();
|
|
10
|
+
this.handleRequestStarted = (url) => {
|
|
11
|
+
if (this.isEssentialRequest(url)) {
|
|
12
|
+
this.activeRequests.add(url);
|
|
13
|
+
this.requestsInFlight = this.activeRequests.size;
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
this.handleRequestFinished = (url) => {
|
|
17
|
+
if (this.isEssentialRequest(url)) {
|
|
18
|
+
this.activeRequests.delete(url);
|
|
19
|
+
this.requestsInFlight = this.activeRequests.size;
|
|
20
|
+
if (this.requestsInFlight === 0) {
|
|
21
|
+
this.eventEmitter.emit('idle');
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
};
|
|
8
25
|
this.waitToContinue = async () => {
|
|
9
26
|
if (this.requestsInFlight === 0) {
|
|
10
|
-
|
|
27
|
+
await new Promise((res) => setTimeout(res, stabilityTime));
|
|
28
|
+
if (this.requestsInFlight === 0)
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
let timeoutId;
|
|
32
|
+
const idlePromise = new Promise((resolve) => {
|
|
33
|
+
const checkIdle = () => {
|
|
34
|
+
if (this.requestsInFlight === 0) {
|
|
35
|
+
setTimeout(() => {
|
|
36
|
+
if (this.requestsInFlight === 0) {
|
|
37
|
+
this.eventEmitter.off('idle', checkIdle);
|
|
38
|
+
resolve();
|
|
39
|
+
}
|
|
40
|
+
}, stabilityTime);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
this.eventEmitter.on('idle', checkIdle);
|
|
44
|
+
});
|
|
45
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
46
|
+
timeoutId = setTimeout(() => {
|
|
47
|
+
const pending = Array.from(this.activeRequests).join('\n -> ');
|
|
48
|
+
reject(new Error(`Timeout waiting for ${this.requestsInFlight} requests to complete (${timeout}ms).\nPending Essential Requests:\n -> ${pending}`));
|
|
49
|
+
}, timeout);
|
|
50
|
+
});
|
|
51
|
+
try {
|
|
52
|
+
await Promise.race([idlePromise, timeoutPromise]);
|
|
53
|
+
}
|
|
54
|
+
finally {
|
|
55
|
+
// biome-ignore lint/style/noNonNullAssertion: should be defined if we reach here
|
|
56
|
+
if (timeoutId)
|
|
57
|
+
clearTimeout(timeoutId);
|
|
58
|
+
this.eventEmitter.removeAllListeners('idle');
|
|
11
59
|
}
|
|
12
|
-
await Promise.race([
|
|
13
|
-
new Promise((resolve) => {
|
|
14
|
-
this.eventEmitter.once('idle', resolve);
|
|
15
|
-
}),
|
|
16
|
-
new Promise((_, reject) => {
|
|
17
|
-
setTimeout(() => {
|
|
18
|
-
reject(new Error('Timeout waiting for requests to complete'));
|
|
19
|
-
}, timeout);
|
|
20
|
-
})
|
|
21
|
-
]);
|
|
22
60
|
};
|
|
23
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Filters out non-functional "noise" requests that shouldn't block test execution.
|
|
64
|
+
*/
|
|
65
|
+
isEssentialRequest(url) {
|
|
66
|
+
const noisePatterns = [
|
|
67
|
+
'.download_icon',
|
|
68
|
+
'.download_list_bar_grp_icon',
|
|
69
|
+
'.download_form_next_grp_icon',
|
|
70
|
+
'/badge()',
|
|
71
|
+
'universal_background_picture',
|
|
72
|
+
'i_ui_theme'
|
|
73
|
+
];
|
|
74
|
+
return !noisePatterns.some((pattern) => url.includes(pattern));
|
|
75
|
+
}
|
|
24
76
|
}
|
|
25
77
|
//# sourceMappingURL=FlightTracker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlightTracker.js","sourceRoot":"","sources":["../../helpers/FlightTracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC,GAAG,CAAS,8CAA8C,CAAC,IAAI,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"FlightTracker.js","sourceRoot":"","sources":["../../helpers/FlightTracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { Page } from '@playwright/test';
|
|
1
|
+
import type { APIResponse, Page } from '@playwright/test';
|
|
2
2
|
import type { UniversalLoginOptions } from '../types/index.js';
|
|
3
3
|
export declare class LoginHelper {
|
|
4
4
|
private _page;
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
protected serviceUrl: string;
|
|
6
|
+
protected metaEndpoint: string;
|
|
7
7
|
constructor(page: Page);
|
|
8
8
|
/**
|
|
9
9
|
* Log in and go to a specified application
|
|
@@ -37,3 +37,11 @@ export declare class LoginHelper {
|
|
|
37
37
|
private configureApplication;
|
|
38
38
|
logOut(): Promise<void>;
|
|
39
39
|
}
|
|
40
|
+
export declare class UserPreferences {
|
|
41
|
+
private _page;
|
|
42
|
+
readonly guiApplAlias: string;
|
|
43
|
+
readonly url: string;
|
|
44
|
+
constructor(requestContext: Page, serviceUrl?: string, metaEndpoint?: string);
|
|
45
|
+
run(upConfigurationId: number): Promise<void>;
|
|
46
|
+
disable(): Promise<APIResponse>;
|
|
47
|
+
}
|
|
@@ -3,17 +3,17 @@ import path from 'node:path';
|
|
|
3
3
|
import { fileURLToPath } from 'node:url';
|
|
4
4
|
import { testwiseConfig } from '../services/ConfigBuilder.js';
|
|
5
5
|
import { pollUntil } from './Poll.js';
|
|
6
|
-
const
|
|
7
|
-
const configFixture = JSON.parse(fs.readFileSync(path.resolve(
|
|
6
|
+
const dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
7
|
+
const configFixture = JSON.parse(fs.readFileSync(path.resolve(dirname, '../../config.json'), 'utf-8'));
|
|
8
8
|
export class LoginHelper {
|
|
9
9
|
constructor(page) {
|
|
10
|
+
this.serviceUrl = String(testwiseConfig().get('environmentSettings.serviceUrl'));
|
|
11
|
+
this.metaEndpoint = String(testwiseConfig().get('environmentSettings.metaEndpoint'));
|
|
12
|
+
if (!this.serviceUrl || this.serviceUrl === 'undefined')
|
|
13
|
+
throw new Error('Service URL not found');
|
|
14
|
+
if (!this.metaEndpoint || this.metaEndpoint === 'undefined')
|
|
15
|
+
throw new Error('Meta endpoint not found');
|
|
10
16
|
this._page = page;
|
|
11
|
-
const serviceUrl = testwiseConfig().get('environmentSettings.serviceUrl');
|
|
12
|
-
const metaEndpoint = testwiseConfig().get('environmentSettings.metaEndpoint');
|
|
13
|
-
if (!serviceUrl || !metaEndpoint)
|
|
14
|
-
throw new Error('Either environmentSettings.serviceUrl or environmentSettings.metaEndpoint is not defined in the configuration.');
|
|
15
|
-
this._serviceUrl = serviceUrl;
|
|
16
|
-
this._metaEndpoint = metaEndpoint;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
19
|
* Log in and go to a specified application
|
|
@@ -76,10 +76,10 @@ export class LoginHelper {
|
|
|
76
76
|
throw new Error('Username and password are required for login.');
|
|
77
77
|
}
|
|
78
78
|
if (serviceUrl && metaEndpoint) {
|
|
79
|
-
this.
|
|
80
|
-
this.
|
|
79
|
+
this.serviceUrl = serviceUrl;
|
|
80
|
+
this.metaEndpoint = metaEndpoint;
|
|
81
81
|
}
|
|
82
|
-
const response = await this._page.request.post(`${this.
|
|
82
|
+
const response = await this._page.request.post(`${this.serviceUrl}/account/api/login`, {
|
|
83
83
|
form: {
|
|
84
84
|
UserName: username,
|
|
85
85
|
Password: password
|
|
@@ -88,6 +88,26 @@ export class LoginHelper {
|
|
|
88
88
|
if (response.status() !== 204) {
|
|
89
89
|
throw new Error(`Login failed with status code: ${response.status()}`);
|
|
90
90
|
}
|
|
91
|
+
if (password === username && /^Worker_\d+$/.test(username)) {
|
|
92
|
+
const userPreferences = new UserPreferences(this._page, this.serviceUrl, this.metaEndpoint);
|
|
93
|
+
if (!options.userPreference) {
|
|
94
|
+
console.info(`No user preference configuration ID provided for worker account ${username}. User preferences will be disabled to prevent unexpected test behavior.`);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
console.info(`User preference configuration ID ${options.userPreference} provided for worker account ${username}. Attempting to disable user preferences before re-enabling with provided configuration.`);
|
|
98
|
+
}
|
|
99
|
+
try {
|
|
100
|
+
await userPreferences.disable();
|
|
101
|
+
console.info(`Successfully disabled user preferences for worker account ${username}.`);
|
|
102
|
+
if (options.userPreference) {
|
|
103
|
+
await userPreferences.run(options.userPreference);
|
|
104
|
+
console.info(`Successfully re-enabled user preferences for worker account ${username} with configuration ID ${options.userPreference}.`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
console.warn(`User preferences may not be properly configured for worker account ${username}. Tests may be unstable. Error details: ${error}`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
91
111
|
// Set the navigator.language property
|
|
92
112
|
await this._page.route('**/*', (route, request) => {
|
|
93
113
|
route.continue({
|
|
@@ -111,18 +131,44 @@ export class LoginHelper {
|
|
|
111
131
|
contentType: 'application/json',
|
|
112
132
|
body: JSON.stringify({
|
|
113
133
|
...configFixture,
|
|
114
|
-
serviceUrl: `${this.
|
|
134
|
+
serviceUrl: `${this.serviceUrl}/iam/${this.metaEndpoint}`,
|
|
115
135
|
...options
|
|
116
136
|
})
|
|
117
137
|
});
|
|
118
138
|
});
|
|
119
139
|
}
|
|
120
140
|
async logOut() {
|
|
121
|
-
const response = await this._page.request.post(`${this.
|
|
141
|
+
const response = await this._page.request.post(`${this.serviceUrl}/account/api/logout`);
|
|
122
142
|
if (![204, 401].includes(response.status())) {
|
|
123
143
|
throw new Error(`Logout failed with status code: ${response.status()}`);
|
|
124
144
|
}
|
|
125
145
|
await this._page.context().clearCookies();
|
|
126
146
|
}
|
|
127
147
|
}
|
|
148
|
+
export class UserPreferences {
|
|
149
|
+
constructor(requestContext, serviceUrl, metaEndpoint) {
|
|
150
|
+
this.guiApplAlias = String(testwiseConfig().get('environmentSettings.guiApplAlias'));
|
|
151
|
+
this._page = requestContext;
|
|
152
|
+
serviceUrl = serviceUrl ?? testwiseConfig().get('environmentSettings.serviceUrl');
|
|
153
|
+
metaEndpoint = metaEndpoint ?? testwiseConfig().get('environmentSettings.metaEndpoint');
|
|
154
|
+
if (!serviceUrl)
|
|
155
|
+
throw new Error('Service URL not found or is empty');
|
|
156
|
+
if (!metaEndpoint)
|
|
157
|
+
throw new Error('Meta endpoint not found or is empty');
|
|
158
|
+
if (!this.guiApplAlias)
|
|
159
|
+
throw new Error('GUI application alias not found or is empty');
|
|
160
|
+
this.url = `${serviceUrl}/${metaEndpoint}/${this.guiApplAlias}`;
|
|
161
|
+
}
|
|
162
|
+
async run(upConfigurationId) {
|
|
163
|
+
const fullUrl = `${this.url}/set_up_configuration`;
|
|
164
|
+
const data = {
|
|
165
|
+
up_configuration_id: upConfigurationId
|
|
166
|
+
};
|
|
167
|
+
await this._page.request.post(fullUrl, { headers: { 'Content-Type': 'application/json; charset=utf-8' }, data });
|
|
168
|
+
}
|
|
169
|
+
async disable() {
|
|
170
|
+
const fullUrl = `${this.url}/disable_up`;
|
|
171
|
+
return await this._page.request.post(fullUrl, { headers: { 'Content-Type': 'application/json; charset=utf-8' } });
|
|
172
|
+
}
|
|
173
|
+
}
|
|
128
174
|
//# sourceMappingURL=LoginHelper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoginHelper.js","sourceRoot":"","sources":["../../helpers/LoginHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,
|
|
1
|
+
{"version":3,"file":"LoginHelper.js","sourceRoot":"","sources":["../../helpers/LoginHelper.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -18,7 +18,6 @@ declare const originalDebug: {
|
|
|
18
18
|
(...data: any[]): void;
|
|
19
19
|
(message?: any, ...optionalParams: any[]): void;
|
|
20
20
|
};
|
|
21
|
-
export { originalLog, originalInfo, originalWarn, originalError, originalDebug };
|
|
22
21
|
export * from './artifact-builder/index.js';
|
|
23
22
|
export * from './components/index.js';
|
|
24
23
|
export * from './controls/index.js';
|
|
@@ -29,3 +28,4 @@ export * from './page-overrides/index.js';
|
|
|
29
28
|
export * from './services/index.js';
|
|
30
29
|
export * from './Testwise.js';
|
|
31
30
|
export * from './types/index.js';
|
|
31
|
+
export { originalDebug, originalError, originalInfo, originalLog, originalWarn };
|
package/dist/index.js
CHANGED
|
@@ -9,7 +9,6 @@ console.info = (...args) => logger.info(args.join(' '));
|
|
|
9
9
|
console.warn = (...args) => logger.warn(args.join(' '));
|
|
10
10
|
console.error = (...args) => logger.error(args.join(' '));
|
|
11
11
|
console.debug = (...args) => logger.debug(args.join(' '));
|
|
12
|
-
export { originalLog, originalInfo, originalWarn, originalError, originalDebug };
|
|
13
12
|
export * from './artifact-builder/index.js';
|
|
14
13
|
export * from './components/index.js';
|
|
15
14
|
export * from './controls/index.js';
|
|
@@ -20,4 +19,5 @@ export * from './page-overrides/index.js';
|
|
|
20
19
|
export * from './services/index.js';
|
|
21
20
|
export * from './Testwise.js';
|
|
22
21
|
export * from './types/index.js';
|
|
22
|
+
export { originalDebug, originalError, originalInfo, originalLog, originalWarn };
|
|
23
23
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;AAChC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;AAClC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;AAClC,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;AACpC,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;AAEpC,OAAO,CAAC,GAAG,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjE,OAAO,CAAC,IAAI,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACnE,OAAO,CAAC,IAAI,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACnE,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACrE,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAErE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;AAChC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;AAClC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;AAClC,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;AACpC,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;AAEpC,OAAO,CAAC,GAAG,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjE,OAAO,CAAC,IAAI,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACnE,OAAO,CAAC,IAAI,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACnE,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACrE,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAErE,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC"}
|