@thinkwise/testwise 0.2.0-beta.22 → 0.2.4
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 +1 -3
- package/artifact-builder/InterfaceGenerator.ts +9 -1
- package/artifact-builder/ModelDataBuilder.ts +31 -60
- package/artifact-builder/ModelDataRefiner.ts +9 -5
- package/artifact-builder/SelectorBuilder.ts +8 -1
- package/artifact-builder/SubjectComponentGenerator.ts +77 -7
- package/artifact-builder/SubjectGenerator.ts +1 -1
- package/artifact-builder/SubjectRegistration.ts +68 -55
- package/artifact-builder/helpers/DataRetriever.ts +5 -2
- package/artifact-builder/helpers/NamingHandler.ts +25 -19
- package/components/BaseComponentObjects.ts +4 -1
- package/components/action-bar/ActionBar.ts +3 -3
- package/components/grid/Grid.ts +18 -21
- package/components/tab/BaseTab.ts +2 -2
- package/components/tab/BaseTabObjects.ts +1 -1
- package/components/tab/DetailTabPage.ts +2 -2
- package/components/tab/Tab.ts +4 -4
- package/controls/LookupDropdown.ts +7 -2
- package/dist/Testwise.js +1 -3
- package/dist/Testwise.js.map +1 -1
- package/dist/artifact-builder/InterfaceGenerator.d.ts +1 -0
- package/dist/artifact-builder/InterfaceGenerator.js +6 -1
- package/dist/artifact-builder/InterfaceGenerator.js.map +1 -1
- package/dist/artifact-builder/ModelDataBuilder.js +26 -50
- package/dist/artifact-builder/ModelDataBuilder.js.map +1 -1
- package/dist/artifact-builder/ModelDataRefiner.js +9 -5
- package/dist/artifact-builder/ModelDataRefiner.js.map +1 -1
- package/dist/artifact-builder/SelectorBuilder.js +3 -1
- package/dist/artifact-builder/SelectorBuilder.js.map +1 -1
- package/dist/artifact-builder/SubjectComponentGenerator.d.ts +4 -0
- package/dist/artifact-builder/SubjectComponentGenerator.js +61 -5
- package/dist/artifact-builder/SubjectComponentGenerator.js.map +1 -1
- package/dist/artifact-builder/SubjectGenerator.js +1 -1
- package/dist/artifact-builder/SubjectGenerator.js.map +1 -1
- package/dist/artifact-builder/SubjectRegistration.d.ts +9 -9
- package/dist/artifact-builder/SubjectRegistration.js +51 -42
- package/dist/artifact-builder/SubjectRegistration.js.map +1 -1
- package/dist/artifact-builder/helpers/DataRetriever.js +3 -2
- package/dist/artifact-builder/helpers/DataRetriever.js.map +1 -1
- package/dist/artifact-builder/helpers/NamingHandler.d.ts +2 -1
- package/dist/artifact-builder/helpers/NamingHandler.js +20 -15
- package/dist/artifact-builder/helpers/NamingHandler.js.map +1 -1
- package/dist/components/BaseComponentObjects.d.ts +1 -0
- package/dist/components/BaseComponentObjects.js +3 -1
- package/dist/components/BaseComponentObjects.js.map +1 -1
- package/dist/components/action-bar/ActionBar.d.ts +1 -1
- package/dist/components/action-bar/ActionBar.js +3 -3
- package/dist/components/grid/Grid.d.ts +5 -4
- package/dist/components/grid/Grid.js +13 -19
- package/dist/components/grid/Grid.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/BaseTabObjects.js +1 -1
- package/dist/components/tab/BaseTabObjects.js.map +1 -1
- package/dist/components/tab/DetailTabPage.d.ts +2 -2
- package/dist/components/tab/DetailTabPage.js +2 -2
- package/dist/components/tab/DetailTabPage.js.map +1 -1
- package/dist/components/tab/Tab.d.ts +3 -3
- package/dist/components/tab/Tab.js +4 -4
- package/dist/components/tab/Tab.js.map +1 -1
- package/dist/controls/LookupDropdown.d.ts +3 -7
- package/dist/controls/LookupDropdown.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/ConfigChecker.d.ts +3 -0
- package/dist/helpers/ConfigChecker.js +7 -0
- package/dist/helpers/ConfigChecker.js.map +1 -0
- package/dist/helpers/LoginHelper.js +1 -1
- package/dist/helpers/LoginHelper.js.map +1 -1
- package/dist/interfaces/IComponentObjects.d.ts +1 -0
- package/dist/page-extensions/SubjectRegistry.d.ts +0 -8
- package/dist/page-extensions/SubjectRegistry.js +2 -6
- package/dist/page-extensions/SubjectRegistry.js.map +1 -1
- package/dist/page-extensions/index.d.ts +0 -1
- package/dist/page-extensions/index.js +0 -1
- package/dist/page-extensions/index.js.map +1 -1
- package/dist/services/IndiciumApi.service.d.ts +27 -0
- package/dist/services/IndiciumApi.service.js +135 -0
- package/dist/services/IndiciumApi.service.js.map +1 -0
- package/dist/templates/test-artifacts/SubjectPageBase.d.ts +5 -0
- package/dist/templates/test-artifacts/SubjectPageBase.js +6 -0
- package/dist/templates/test-artifacts/SubjectPageBase.js.map +1 -0
- package/dist/templates/test-artifacts/screens/index.d.ts +1 -0
- package/dist/templates/test-artifacts/screens/index.js +2 -0
- package/dist/templates/test-artifacts/screens/index.js.map +1 -0
- package/dist/templates/test-artifacts/subjects/index.d.ts +1 -0
- package/dist/templates/test-artifacts/subjects/index.js +2 -0
- package/dist/templates/test-artifacts/subjects/index.js.map +1 -0
- package/enums/ElementTypes.ts +1 -1
- package/helpers/ConfigChecker.ts +7 -0
- package/helpers/LoginHelper.ts +1 -1
- package/interfaces/IComponentObjects.ts +1 -0
- package/package.json +3 -2
- package/page-extensions/SubjectRegistry.ts +2 -19
- package/page-extensions/index.ts +0 -1
- package/scripts/main.js +48 -69
- package/scripts/postinstall.js +40 -39
- package/scripts/sync.js +756 -102
- package/services/IndiciumApi.service.ts +159 -0
- package/templates/SubjectRegistry.template.ts +73 -0
- package/templates/test-artifacts/SubjectPageBase.ts +9 -0
- package/templates/test-artifacts/screens/index.ts +0 -0
- package/templates/test-artifacts/subjects/index.ts +0 -0
- package/tsconfig.json +2 -3
- package/dist/config.json +0 -10
- package/dist/page-extensions/SubjectProvider.d.ts +0 -11
- package/dist/page-extensions/SubjectProvider.js +0 -24
- package/dist/page-extensions/SubjectProvider.js.map +0 -1
- package/dist/test-artifacts/index.d.ts +0 -3
- package/dist/test-artifacts/index.js +0 -4
- package/dist/test-artifacts/index.js.map +0 -1
- package/page-extensions/SubjectProvider.ts +0 -41
- package/test-artifacts/index.ts +0 -3
|
@@ -3,6 +3,7 @@ export declare class Grid {
|
|
|
3
3
|
private _gridObjects;
|
|
4
4
|
private _page;
|
|
5
5
|
constructor(page: Page, gridContext?: Locator | null);
|
|
6
|
+
protected get page(): Page;
|
|
6
7
|
/**
|
|
7
8
|
* Retrieves a column header element by its text content.
|
|
8
9
|
* @param text
|
|
@@ -119,13 +120,13 @@ export declare class Grid {
|
|
|
119
120
|
*/
|
|
120
121
|
rows(): Locator;
|
|
121
122
|
/**
|
|
122
|
-
* Verifies the number of
|
|
123
|
-
* @param
|
|
123
|
+
* Verifies the number of records in the grid and checks for "No result" overlay if zero.
|
|
124
|
+
* @param expectedRecordCount The expected number of records.
|
|
124
125
|
*/
|
|
125
|
-
|
|
126
|
+
verifyGridRecordCount(expectedRecordCount: number): Promise<void>;
|
|
126
127
|
/**
|
|
127
128
|
* Verifies if the "No result" overlay is visible in the grid.
|
|
128
|
-
* @returns A promise that resolves to true if the overlay is visible, otherwise false.
|
|
129
|
+
* @returns A promise that resolves to true if the overlay is visible and , otherwise false.
|
|
129
130
|
*/
|
|
130
131
|
hasNoRowsOverlay(): Promise<boolean>;
|
|
131
132
|
}
|
|
@@ -38,6 +38,9 @@ export class Grid {
|
|
|
38
38
|
this._gridObjects = new GridObjects(page, gridContext);
|
|
39
39
|
this._page = page;
|
|
40
40
|
}
|
|
41
|
+
get page() {
|
|
42
|
+
return this._page;
|
|
43
|
+
}
|
|
41
44
|
/**
|
|
42
45
|
* Retrieves a cell element by its exact text value.
|
|
43
46
|
* @param value - The exact text value of the cell to retrieve.
|
|
@@ -208,7 +211,7 @@ export class Grid {
|
|
|
208
211
|
const valueRegex = new RegExp(`^${escapeRegex(valueToSelect)}$`, 'i');
|
|
209
212
|
const optionButton = this._gridObjects.excelStyleFilterPopupOptionByText(columnId, valueRegex);
|
|
210
213
|
await optionButton.locator('input[type="checkbox"]').check();
|
|
211
|
-
await this._gridObjects.
|
|
214
|
+
await this._gridObjects.mainHeader.click(); // Click outside to close the popup
|
|
212
215
|
await popup.waitFor({ state: 'detached' });
|
|
213
216
|
}
|
|
214
217
|
/**
|
|
@@ -233,11 +236,11 @@ export class Grid {
|
|
|
233
236
|
return this._gridObjects.rows();
|
|
234
237
|
}
|
|
235
238
|
/**
|
|
236
|
-
* Verifies the number of
|
|
237
|
-
* @param
|
|
239
|
+
* Verifies the number of records in the grid and checks for "No result" overlay if zero.
|
|
240
|
+
* @param expectedRecordCount The expected number of records.
|
|
238
241
|
*/
|
|
239
|
-
async
|
|
240
|
-
if (
|
|
242
|
+
async verifyGridRecordCount(expectedRecordCount) {
|
|
243
|
+
if (expectedRecordCount === 0) {
|
|
241
244
|
if (await this.hasNoRowsOverlay()) {
|
|
242
245
|
return;
|
|
243
246
|
}
|
|
@@ -246,26 +249,17 @@ export class Grid {
|
|
|
246
249
|
}
|
|
247
250
|
}
|
|
248
251
|
await pollUntil(() => this.rows().count(), {
|
|
249
|
-
predicate: (n) => n ===
|
|
252
|
+
predicate: (n) => n === (expectedRecordCount + 1) // +1 to account for header row
|
|
250
253
|
});
|
|
251
254
|
}
|
|
252
255
|
/**
|
|
253
256
|
* Verifies if the "No result" overlay is visible in the grid.
|
|
254
|
-
* @returns A promise that resolves to true if the overlay is visible, otherwise false.
|
|
257
|
+
* @returns A promise that resolves to true if the overlay is visible and , otherwise false.
|
|
255
258
|
*/
|
|
256
259
|
async hasNoRowsOverlay() {
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
const txt = (await overlay.textContent())?.trim() ?? '';
|
|
261
|
-
return txt.includes('No result');
|
|
262
|
-
}, { predicate: Boolean });
|
|
263
|
-
}
|
|
264
|
-
catch {
|
|
265
|
-
console.error('The "No result" overlay is not displaying the expected text.');
|
|
266
|
-
return false;
|
|
267
|
-
}
|
|
268
|
-
return await this._gridObjects.noRowsOverlay().isVisible();
|
|
260
|
+
const overlay = this._gridObjects.noRowsOverlay();
|
|
261
|
+
const hasCorrectWording = await pollUntil(async () => (await overlay.textContent())?.trim().includes('No result') ?? false, { predicate: Boolean });
|
|
262
|
+
return hasCorrectWording && await overlay.isVisible();
|
|
269
263
|
}
|
|
270
264
|
}
|
|
271
265
|
//# sourceMappingURL=Grid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Grid.js","sourceRoot":"","sources":["../../../components/grid/Grid.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,OAAO,IAAI;IAIf,YAAY,IAAU,EAAE,cAA8B,IAAI;
|
|
1
|
+
{"version":3,"file":"Grid.js","sourceRoot":"","sources":["../../../components/grid/Grid.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ export declare class BaseTab {
|
|
|
5
5
|
constructor(page: Page, context?: Locator | null);
|
|
6
6
|
openById(name: string): Promise<void>;
|
|
7
7
|
openByIndex(index: number): Promise<void>;
|
|
8
|
-
getTabById(name: string):
|
|
9
|
-
getTabByIndex(index: number):
|
|
8
|
+
getTabById(name: string): Locator;
|
|
9
|
+
getTabByIndex(index: number): Locator;
|
|
10
10
|
getBadgeCount(name: string): Promise<number>;
|
|
11
11
|
}
|
|
@@ -14,10 +14,10 @@ export class BaseTab {
|
|
|
14
14
|
await this._objects.tabByIndex(index).click();
|
|
15
15
|
}
|
|
16
16
|
// --- Useful getters ---
|
|
17
|
-
|
|
17
|
+
getTabById(name) {
|
|
18
18
|
return this._objects.tabByTestId(name);
|
|
19
19
|
}
|
|
20
|
-
|
|
20
|
+
getTabByIndex(index) {
|
|
21
21
|
return this._objects.tabByIndex(index);
|
|
22
22
|
}
|
|
23
23
|
// Reads the badge value on a tab. Non-visible/invalid → 0.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseTab.js","sourceRoot":"","sources":["../../../components/tab/BaseTab.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,OAAO,OAAO;IAGlB,YAAY,IAAU,EAAE,UAA0B,IAAI;QACpD,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,yBAAyB;IAEzB,+EAA+E;IAC/E,yEAAyE;IAClE,KAAK,CAAC,QAAQ,CAAC,IAAY;QAChC,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;IAChD,CAAC;IAED,2DAA2D;IACpD,KAAK,CAAC,WAAW,CAAC,KAAa;QACpC,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;IAChD,CAAC;IAED,yBAAyB;IAClB,
|
|
1
|
+
{"version":3,"file":"BaseTab.js","sourceRoot":"","sources":["../../../components/tab/BaseTab.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,OAAO,OAAO;IAGlB,YAAY,IAAU,EAAE,UAA0B,IAAI;QACpD,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,yBAAyB;IAEzB,+EAA+E;IAC/E,yEAAyE;IAClE,KAAK,CAAC,QAAQ,CAAC,IAAY;QAChC,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;IAChD,CAAC;IAED,2DAA2D;IACpD,KAAK,CAAC,WAAW,CAAC,KAAa;QACpC,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;IAChD,CAAC;IAED,yBAAyB;IAClB,UAAU,CAAC,IAAY;QAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAEM,aAAa,CAAC,KAAa;QAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,2DAA2D;IACpD,KAAK,CAAC,aAAa,CAAC,IAAY;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO;YAAE,OAAO,CAAC,CAAC;QACvB,MAAM,GAAG,GAAG,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC;QACvD,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;CACF"}
|
|
@@ -3,7 +3,7 @@ export class BaseTabObjects extends BaseComponentObjects {
|
|
|
3
3
|
constructor(page, context = null) {
|
|
4
4
|
super(page, context);
|
|
5
5
|
this.tabList = () => this.context.getByRole('tablist');
|
|
6
|
-
this.tabByTestId = (name) => this.tabList().locator(`[role="tab"][data-testid^="tabstrip__tab__${name.toLowerCase()}
|
|
6
|
+
this.tabByTestId = (name) => this.tabList().locator(`[role="tab"][data-testid^="tabstrip__tab__${name.toLowerCase()}"]`);
|
|
7
7
|
// use role for generic index-based selection
|
|
8
8
|
this.tabByIndex = (index) => this.tabList().getByRole('tab').nth(index);
|
|
9
9
|
// badge: leave as a CSS anchor on the tab testid
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseTabObjects.js","sourceRoot":"","sources":["../../../components/tab/BaseTabObjects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,MAAM,OAAO,cAAe,SAAQ,oBAAoB;IAGtD,YAAY,IAAU,EAAE,UAA0B,IAAI;QACpD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAIhB,YAAO,GAAG,GAAY,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAE3D,gBAAW,GAAG,CAAC,IAAY,EAAW,EAAE,CAC7C,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,6CAA6C,IAAI,CAAC,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"BaseTabObjects.js","sourceRoot":"","sources":["../../../components/tab/BaseTabObjects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,MAAM,OAAO,cAAe,SAAQ,oBAAoB;IAGtD,YAAY,IAAU,EAAE,UAA0B,IAAI;QACpD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAIhB,YAAO,GAAG,GAAY,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAE3D,gBAAW,GAAG,CAAC,IAAY,EAAW,EAAE,CAC7C,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,6CAA6C,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAE9F,6CAA6C;QACtC,eAAU,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAE3F,iDAAiD;QAC1C,gBAAW,GAAG,CAAC,IAAY,EAAW,EAAE,CAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,6CAA6C,IAAI,CAAC,WAAW,EAAE,6BAA6B,CAAC,CAAC;QAbjH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;CAaF"}
|
|
@@ -4,6 +4,6 @@ import { DetailTabPageObjects } from './DetailTabPageObjects.js';
|
|
|
4
4
|
export declare class DetailTabPage extends BaseTab {
|
|
5
5
|
protected _objects: DetailTabPageObjects;
|
|
6
6
|
constructor(page: Page, context?: Locator | null);
|
|
7
|
-
getDetailTabPageById(name: string):
|
|
8
|
-
getDetailTabPageByIndex(index: number):
|
|
7
|
+
getDetailTabPageById(name: string): Locator;
|
|
8
|
+
getDetailTabPageByIndex(index: number): Locator;
|
|
9
9
|
}
|
|
@@ -5,10 +5,10 @@ export class DetailTabPage extends BaseTab {
|
|
|
5
5
|
super(page, context);
|
|
6
6
|
this._objects = new DetailTabPageObjects(page, context);
|
|
7
7
|
}
|
|
8
|
-
|
|
8
|
+
getDetailTabPageById(name) {
|
|
9
9
|
return this._objects.detailTab(name);
|
|
10
10
|
}
|
|
11
|
-
|
|
11
|
+
getDetailTabPageByIndex(index) {
|
|
12
12
|
return this._objects.tabByIndex(index);
|
|
13
13
|
}
|
|
14
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DetailTabPage.js","sourceRoot":"","sources":["../../../components/tab/DetailTabPage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,OAAO,aAAc,SAAQ,OAAO;IAGxC,YAAY,IAAU,EAAE,UAA0B,IAAI;QACpD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAEM,
|
|
1
|
+
{"version":3,"file":"DetailTabPage.js","sourceRoot":"","sources":["../../../components/tab/DetailTabPage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,OAAO,aAAc,SAAQ,OAAO;IAGxC,YAAY,IAAU,EAAE,UAA0B,IAAI;QACpD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAEM,oBAAoB,CAAC,IAAY;QACtC,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAEM,uBAAuB,CAAC,KAAa;QAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;CACF"}
|
|
@@ -5,8 +5,8 @@ export declare class Tab extends BaseTab {
|
|
|
5
5
|
protected _objects: TabObjects;
|
|
6
6
|
constructor(page: Page, context?: Locator | null);
|
|
7
7
|
openListTab(tabindex?: string): Promise<void>;
|
|
8
|
-
getListTab(tabindex?: string):
|
|
8
|
+
getListTab(tabindex?: string): Locator;
|
|
9
9
|
openFormTab(): Promise<void>;
|
|
10
|
-
getFormTab():
|
|
11
|
-
|
|
10
|
+
getFormTab(): Locator;
|
|
11
|
+
openTabById(tabId: string): Promise<void>;
|
|
12
12
|
}
|
|
@@ -12,7 +12,7 @@ export class Tab extends BaseTab {
|
|
|
12
12
|
await this._objects.listTab(tabindex).click();
|
|
13
13
|
}
|
|
14
14
|
// Returns the “List” tab locator (scoped).
|
|
15
|
-
|
|
15
|
+
getListTab(tabindex = '-1') {
|
|
16
16
|
return this._objects.listTab(tabindex);
|
|
17
17
|
}
|
|
18
18
|
// Opens the “Form” tab in this tabstrip (scoped).
|
|
@@ -20,12 +20,12 @@ export class Tab extends BaseTab {
|
|
|
20
20
|
await this._objects.formTab().click();
|
|
21
21
|
}
|
|
22
22
|
// Returns the “Form” tab locator (scoped).
|
|
23
|
-
|
|
23
|
+
getFormTab() {
|
|
24
24
|
return this._objects.formTab();
|
|
25
25
|
}
|
|
26
26
|
// Opens a component tab by its ID in this tabstrip (scoped).
|
|
27
|
-
async
|
|
28
|
-
await this._objects.tab(
|
|
27
|
+
async openTabById(tabId) {
|
|
28
|
+
await this._objects.tab(tabId).click();
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
//# sourceMappingURL=Tab.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../../components/tab/Tab.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,OAAO,GAAI,SAAQ,OAAO;IAG9B,YAAY,IAAU,EAAE,UAA0B,IAAI;QACpD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,qCAAqC;IAErC,4EAA4E;IAC5E,wFAAwF;IACjF,KAAK,CAAC,WAAW,CAAC,WAAmB,IAAI;QAC9C,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;IAChD,CAAC;IAED,2CAA2C;IACpC,
|
|
1
|
+
{"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../../components/tab/Tab.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,OAAO,GAAI,SAAQ,OAAO;IAG9B,YAAY,IAAU,EAAE,UAA0B,IAAI;QACpD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,qCAAqC;IAErC,4EAA4E;IAC5E,wFAAwF;IACjF,KAAK,CAAC,WAAW,CAAC,WAAmB,IAAI;QAC9C,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;IAChD,CAAC;IAED,2CAA2C;IACpC,UAAU,CAAC,WAAmB,IAAI;QACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,kDAAkD;IAC3C,KAAK,CAAC,WAAW;QACtB,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC;IACxC,CAAC;IAED,2CAA2C;IACpC,UAAU;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;IAED,6DAA6D;IACtD,KAAK,CAAC,WAAW,CAAC,KAAa;QACpC,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;IACzC,CAAC;CACF"}
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
/** biome-ignore-all lint/suspicious/noExplicitAny: needed flexibility */
|
|
2
2
|
import type { Locator } from '@playwright/test';
|
|
3
|
-
|
|
4
|
-
private _locator;
|
|
5
|
-
constructor(locator: Locator);
|
|
3
|
+
export type ILookupDropdown = Locator & {
|
|
6
4
|
lookupSelect(optionToSelect: string): Promise<void>;
|
|
7
5
|
selectOption(optionText: string): Promise<void>;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export declare function createLookupDropdown(locator: Locator): LookupDropdown & Locator;
|
|
11
|
-
export {};
|
|
6
|
+
};
|
|
7
|
+
export declare function createLookupDropdown(locator: Locator): ILookupDropdown;
|
|
@@ -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":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAOxD,MAAM,cAAc;IAGlB,YAAY,OAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,cAAsB;QACvC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAE/F,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAEjE,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB;QACnC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;IAEO,KAAK,CAAC,MAAM,CAAC,cAAsB;QACzC,MAAM,oBAAoB,GAAG,IAAI,MAAM,CAAC,IAAI,WAAW,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAEjF,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;QACrG,MAAM,IAAI,CAAC,QAAQ;aAChB,IAAI,EAAE;aACN,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,KAAK,EAAE,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IACjG,CAAC;CACF;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;IAE7C,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE;QACzB,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;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,CAA+B,CAAC;AACnC,CAAC"}
|
|
@@ -5,6 +5,6 @@ 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_cells";
|
|
9
9
|
})(KnownElementTypes || (KnownElementTypes = {}));
|
|
10
10
|
//# sourceMappingURL=ElementTypes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ElementTypes.js","sourceRoot":"","sources":["../../enums/ElementTypes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,iBAOX;AAPD,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,iBAOX;AAPD,WAAY,iBAAiB;IAC3B,oCAAe,CAAA;IACf,0CAAqB,CAAA;IACrB,0CAAqB,CAAA;IACrB,0CAAqB,CAAA;IACrB,sCAAiB,CAAA;IACjB,4CAAuB,CAAA;AACzB,CAAC,EAPW,iBAAiB,KAAjB,iBAAiB,QAO5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigChecker.js","sourceRoot":"","sources":["../../helpers/ConfigChecker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAEjE,MAAM,OAAO,aAAa;IACjB,KAAK,CAAC,0BAA0B;QACrC,OAAO,MAAM,WAAW,CAAC,mBAAmB,EAAE,CAAC;IACjD,CAAC;CACF"}
|
|
@@ -4,7 +4,7 @@ import { fileURLToPath } from 'node:url';
|
|
|
4
4
|
import { testwiseConfig } from '../services/ConfigBuilder.js';
|
|
5
5
|
import { pollUntil } from './Poll.js';
|
|
6
6
|
const _dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
7
|
-
const configFixture = JSON.parse(fs.readFileSync(path.resolve(_dirname, '
|
|
7
|
+
const configFixture = JSON.parse(fs.readFileSync(path.resolve(_dirname, '../../config.json'), 'utf-8'));
|
|
8
8
|
export class LoginHelper {
|
|
9
9
|
constructor(page) {
|
|
10
10
|
this._page = page;
|
|
@@ -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,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"LoginHelper.js","sourceRoot":"","sources":["../../helpers/LoginHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,4 @@
|
|
|
1
1
|
import type { Test } from '../types/Test.js';
|
|
2
|
-
export type SubjectType = {
|
|
3
|
-
none: unknown;
|
|
4
|
-
};
|
|
5
|
-
declare module '@playwright/test' {
|
|
6
|
-
interface Page {
|
|
7
|
-
subject: SubjectType;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
2
|
export declare class SubjectRegistry {
|
|
11
3
|
private _test;
|
|
12
4
|
constructor(test: Test);
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
export class SubjectRegistry {
|
|
2
2
|
constructor(test) {
|
|
3
|
-
this
|
|
4
|
-
|
|
5
|
-
page.subject = {};
|
|
6
|
-
await use(page);
|
|
7
|
-
}
|
|
8
|
-
});
|
|
3
|
+
// Implementation of this class is in the templates folder, don't edit here
|
|
4
|
+
this._test = test;
|
|
9
5
|
}
|
|
10
6
|
get test() {
|
|
11
7
|
return this._test;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubjectRegistry.js","sourceRoot":"","sources":["../../page-extensions/SubjectRegistry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SubjectRegistry.js","sourceRoot":"","sources":["../../page-extensions/SubjectRegistry.ts"],"names":[],"mappings":"AACA,MAAM,OAAO,eAAe;IAG1B,YAAY,IAAU;QACpB,2EAA2E;QAC3E,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export * from './GlobalComponents.js';
|
|
2
2
|
export * from './GoToDeepLink.js';
|
|
3
3
|
export * from './LoginFeatures.js';
|
|
4
|
-
export * from './SubjectProvider.js';
|
|
5
4
|
export * from './SubjectRegistry.js';
|
|
6
5
|
export * from './UserSimulation.js';
|
|
7
6
|
export * from './WaitEventHandler.js';
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export * from './GlobalComponents.js';
|
|
2
2
|
export * from './GoToDeepLink.js';
|
|
3
3
|
export * from './LoginFeatures.js';
|
|
4
|
-
export * from './SubjectProvider.js';
|
|
5
4
|
export * from './SubjectRegistry.js';
|
|
6
5
|
export * from './UserSimulation.js';
|
|
7
6
|
export * from './WaitEventHandler.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../page-extensions/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../page-extensions/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export declare class IndiciumApiService {
|
|
2
|
+
private axiosInstance;
|
|
3
|
+
private metaEndpoint;
|
|
4
|
+
private guiApplId;
|
|
5
|
+
private isVerified;
|
|
6
|
+
private initPromise;
|
|
7
|
+
constructor();
|
|
8
|
+
/**
|
|
9
|
+
* Internal helper to ensure the service is fully initialized and verified
|
|
10
|
+
* before any API calls are made.
|
|
11
|
+
*/
|
|
12
|
+
private ensureReady;
|
|
13
|
+
private initialize;
|
|
14
|
+
private verifyConnection;
|
|
15
|
+
canConnectToProject(): Promise<boolean>;
|
|
16
|
+
getVerifiedGuiApplId(): Promise<number | null>;
|
|
17
|
+
getAllTables(): Promise<any[]>;
|
|
18
|
+
getAllColumns(): Promise<any[]>;
|
|
19
|
+
getLookups(): Promise<any[]>;
|
|
20
|
+
getScreenComponents(): Promise<any[]>;
|
|
21
|
+
/**
|
|
22
|
+
* Returns the verified GUI Application ID.
|
|
23
|
+
* Throws an error if verification failed or the alias was not found.
|
|
24
|
+
*/
|
|
25
|
+
getGuiApplId(): Promise<number>;
|
|
26
|
+
}
|
|
27
|
+
export declare const indiciumApi: IndiciumApiService;
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
/** biome-ignore-all lint/style/noNonNullAssertion: because null is bad */
|
|
3
|
+
/** biome-ignore-all lint/suspicious/noExplicitAny: because it is necessary */
|
|
4
|
+
import axios from 'axios';
|
|
5
|
+
import { testwiseConfig } from './ConfigBuilder.js';
|
|
6
|
+
export class IndiciumApiService {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.axiosInstance = null;
|
|
9
|
+
this.metaEndpoint = null;
|
|
10
|
+
this.guiApplId = null;
|
|
11
|
+
this.isVerified = false;
|
|
12
|
+
this.initPromise = this.initialize();
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Internal helper to ensure the service is fully initialized and verified
|
|
16
|
+
* before any API calls are made.
|
|
17
|
+
*/
|
|
18
|
+
async ensureReady() {
|
|
19
|
+
await this.initPromise;
|
|
20
|
+
}
|
|
21
|
+
async initialize() {
|
|
22
|
+
const config = testwiseConfig();
|
|
23
|
+
const serviceUrl = config.get('environmentSettings.serviceUrl')?.replace(/\/$/, '');
|
|
24
|
+
const metaEndpoint = config.get('environmentSettings.metaEndpoint')?.replace(/^\//, '').replace(/\/$/, '');
|
|
25
|
+
const authUser = config.get('environmentSettings.authUser');
|
|
26
|
+
const authUserPassword = config.get('environmentSettings.authUserPassword');
|
|
27
|
+
const guiApplAlias = config.get('environmentSettings.guiApplAlias');
|
|
28
|
+
if (!serviceUrl || !metaEndpoint || !authUser || !authUserPassword || !guiApplAlias) {
|
|
29
|
+
console.warn('IndiciumApiService: Configuration is incomplete.');
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
this.metaEndpoint = metaEndpoint;
|
|
33
|
+
this.axiosInstance = axios.create({
|
|
34
|
+
baseURL: serviceUrl,
|
|
35
|
+
headers: {
|
|
36
|
+
Authorization: `Basic ${Buffer.from(`${authUser}:${authUserPassword}`).toString('base64')}`,
|
|
37
|
+
accept: '*/*'
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
await this.verifyConnection(guiApplAlias);
|
|
41
|
+
}
|
|
42
|
+
async verifyConnection(targetAlias) {
|
|
43
|
+
if (!this.axiosInstance || !this.metaEndpoint)
|
|
44
|
+
return;
|
|
45
|
+
try {
|
|
46
|
+
const response = await this.axiosInstance.get(`/iam/${this.metaEndpoint}/i_ui_gui_appl`);
|
|
47
|
+
const apps = response.data?.value || [];
|
|
48
|
+
const foundApp = apps.find((app) => app.gui_appl_alias?.toString().toLowerCase() === targetAlias.toString().toLowerCase());
|
|
49
|
+
if (foundApp) {
|
|
50
|
+
this.guiApplId = foundApp.gui_appl_id;
|
|
51
|
+
this.isVerified = true;
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
console.warn(`IndiciumApiService: No GUI Application found for alias: ${targetAlias}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
console.error('IndiciumApiService: Verification failed:', error);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
async canConnectToProject() {
|
|
62
|
+
await this.ensureReady();
|
|
63
|
+
return this.isVerified;
|
|
64
|
+
}
|
|
65
|
+
async getVerifiedGuiApplId() {
|
|
66
|
+
await this.ensureReady();
|
|
67
|
+
return this.guiApplId;
|
|
68
|
+
}
|
|
69
|
+
async getAllTables() {
|
|
70
|
+
await this.ensureReady();
|
|
71
|
+
if (!this.isVerified || !this.guiApplId)
|
|
72
|
+
return [];
|
|
73
|
+
try {
|
|
74
|
+
const response = await this.axiosInstance.get(`/iam/${this.metaEndpoint}/i_ui_tab?$filter=gui_appl_id%20eq%20${this.guiApplId}`);
|
|
75
|
+
return response.data?.value || [];
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
console.error('Failed to fetch tables:', error);
|
|
79
|
+
return [];
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
async getAllColumns() {
|
|
83
|
+
await this.ensureReady();
|
|
84
|
+
if (!this.isVerified || !this.guiApplId)
|
|
85
|
+
return [];
|
|
86
|
+
try {
|
|
87
|
+
const response = await this.axiosInstance.get(`/iam/${this.metaEndpoint}/i_ui_col?$filter=gui_appl_id%20eq%20${this.guiApplId}`);
|
|
88
|
+
return response.data?.value || [];
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
console.error('Failed to fetch columns:', error);
|
|
92
|
+
return [];
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
async getLookups() {
|
|
96
|
+
await this.ensureReady();
|
|
97
|
+
if (!this.isVerified || !this.guiApplId)
|
|
98
|
+
return [];
|
|
99
|
+
try {
|
|
100
|
+
const response = await this.axiosInstance.get(`/iam/${this.metaEndpoint}/i_ui_tab_look_up?$filter=gui_appl_id%20eq%20${this.guiApplId}`);
|
|
101
|
+
return response.data?.value || [];
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
console.error('Failed to fetch lookups:', error);
|
|
105
|
+
return [];
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
async getScreenComponents() {
|
|
109
|
+
await this.ensureReady();
|
|
110
|
+
if (!this.isVerified || !this.guiApplId)
|
|
111
|
+
return [];
|
|
112
|
+
try {
|
|
113
|
+
const response = await this.axiosInstance.get(`/iam/${this.metaEndpoint}/i_ui_screen_component?$filter=gui_appl_id%20eq%20${this.guiApplId}`);
|
|
114
|
+
return response.data?.value || [];
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
console.error('Failed to fetch screen components:', error);
|
|
118
|
+
return [];
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Returns the verified GUI Application ID.
|
|
123
|
+
* Throws an error if verification failed or the alias was not found.
|
|
124
|
+
*/
|
|
125
|
+
async getGuiApplId() {
|
|
126
|
+
await this.ensureReady();
|
|
127
|
+
if (this.isVerified && this.guiApplId !== null) {
|
|
128
|
+
return this.guiApplId;
|
|
129
|
+
}
|
|
130
|
+
const alias = testwiseConfig().get('environmentSettings.guiApplAlias');
|
|
131
|
+
throw new Error(`IndiciumApiService: Failed to resolve GUI Application ID for alias "${alias}".`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
export const indiciumApi = new IndiciumApiService();
|
|
135
|
+
//# sourceMappingURL=IndiciumApi.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IndiciumApi.service.js","sourceRoot":"","sources":["../../services/IndiciumApi.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubjectPageBase.js","sourceRoot":"","sources":["../../../templates/test-artifacts/SubjectPageBase.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,eAAe;IAG1B,YAAY,WAAoB;QAC9B,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|