@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.
Files changed (115) hide show
  1. package/Testwise.ts +1 -3
  2. package/artifact-builder/InterfaceGenerator.ts +9 -1
  3. package/artifact-builder/ModelDataBuilder.ts +31 -60
  4. package/artifact-builder/ModelDataRefiner.ts +9 -5
  5. package/artifact-builder/SelectorBuilder.ts +8 -1
  6. package/artifact-builder/SubjectComponentGenerator.ts +77 -7
  7. package/artifact-builder/SubjectGenerator.ts +1 -1
  8. package/artifact-builder/SubjectRegistration.ts +68 -55
  9. package/artifact-builder/helpers/DataRetriever.ts +5 -2
  10. package/artifact-builder/helpers/NamingHandler.ts +25 -19
  11. package/components/BaseComponentObjects.ts +4 -1
  12. package/components/action-bar/ActionBar.ts +3 -3
  13. package/components/grid/Grid.ts +18 -21
  14. package/components/tab/BaseTab.ts +2 -2
  15. package/components/tab/BaseTabObjects.ts +1 -1
  16. package/components/tab/DetailTabPage.ts +2 -2
  17. package/components/tab/Tab.ts +4 -4
  18. package/controls/LookupDropdown.ts +7 -2
  19. package/dist/Testwise.js +1 -3
  20. package/dist/Testwise.js.map +1 -1
  21. package/dist/artifact-builder/InterfaceGenerator.d.ts +1 -0
  22. package/dist/artifact-builder/InterfaceGenerator.js +6 -1
  23. package/dist/artifact-builder/InterfaceGenerator.js.map +1 -1
  24. package/dist/artifact-builder/ModelDataBuilder.js +26 -50
  25. package/dist/artifact-builder/ModelDataBuilder.js.map +1 -1
  26. package/dist/artifact-builder/ModelDataRefiner.js +9 -5
  27. package/dist/artifact-builder/ModelDataRefiner.js.map +1 -1
  28. package/dist/artifact-builder/SelectorBuilder.js +3 -1
  29. package/dist/artifact-builder/SelectorBuilder.js.map +1 -1
  30. package/dist/artifact-builder/SubjectComponentGenerator.d.ts +4 -0
  31. package/dist/artifact-builder/SubjectComponentGenerator.js +61 -5
  32. package/dist/artifact-builder/SubjectComponentGenerator.js.map +1 -1
  33. package/dist/artifact-builder/SubjectGenerator.js +1 -1
  34. package/dist/artifact-builder/SubjectGenerator.js.map +1 -1
  35. package/dist/artifact-builder/SubjectRegistration.d.ts +9 -9
  36. package/dist/artifact-builder/SubjectRegistration.js +51 -42
  37. package/dist/artifact-builder/SubjectRegistration.js.map +1 -1
  38. package/dist/artifact-builder/helpers/DataRetriever.js +3 -2
  39. package/dist/artifact-builder/helpers/DataRetriever.js.map +1 -1
  40. package/dist/artifact-builder/helpers/NamingHandler.d.ts +2 -1
  41. package/dist/artifact-builder/helpers/NamingHandler.js +20 -15
  42. package/dist/artifact-builder/helpers/NamingHandler.js.map +1 -1
  43. package/dist/components/BaseComponentObjects.d.ts +1 -0
  44. package/dist/components/BaseComponentObjects.js +3 -1
  45. package/dist/components/BaseComponentObjects.js.map +1 -1
  46. package/dist/components/action-bar/ActionBar.d.ts +1 -1
  47. package/dist/components/action-bar/ActionBar.js +3 -3
  48. package/dist/components/grid/Grid.d.ts +5 -4
  49. package/dist/components/grid/Grid.js +13 -19
  50. package/dist/components/grid/Grid.js.map +1 -1
  51. package/dist/components/tab/BaseTab.d.ts +2 -2
  52. package/dist/components/tab/BaseTab.js +2 -2
  53. package/dist/components/tab/BaseTab.js.map +1 -1
  54. package/dist/components/tab/BaseTabObjects.js +1 -1
  55. package/dist/components/tab/BaseTabObjects.js.map +1 -1
  56. package/dist/components/tab/DetailTabPage.d.ts +2 -2
  57. package/dist/components/tab/DetailTabPage.js +2 -2
  58. package/dist/components/tab/DetailTabPage.js.map +1 -1
  59. package/dist/components/tab/Tab.d.ts +3 -3
  60. package/dist/components/tab/Tab.js +4 -4
  61. package/dist/components/tab/Tab.js.map +1 -1
  62. package/dist/controls/LookupDropdown.d.ts +3 -7
  63. package/dist/controls/LookupDropdown.js.map +1 -1
  64. package/dist/enums/ElementTypes.d.ts +1 -1
  65. package/dist/enums/ElementTypes.js +1 -1
  66. package/dist/enums/ElementTypes.js.map +1 -1
  67. package/dist/helpers/ConfigChecker.d.ts +3 -0
  68. package/dist/helpers/ConfigChecker.js +7 -0
  69. package/dist/helpers/ConfigChecker.js.map +1 -0
  70. package/dist/helpers/LoginHelper.js +1 -1
  71. package/dist/helpers/LoginHelper.js.map +1 -1
  72. package/dist/interfaces/IComponentObjects.d.ts +1 -0
  73. package/dist/page-extensions/SubjectRegistry.d.ts +0 -8
  74. package/dist/page-extensions/SubjectRegistry.js +2 -6
  75. package/dist/page-extensions/SubjectRegistry.js.map +1 -1
  76. package/dist/page-extensions/index.d.ts +0 -1
  77. package/dist/page-extensions/index.js +0 -1
  78. package/dist/page-extensions/index.js.map +1 -1
  79. package/dist/services/IndiciumApi.service.d.ts +27 -0
  80. package/dist/services/IndiciumApi.service.js +135 -0
  81. package/dist/services/IndiciumApi.service.js.map +1 -0
  82. package/dist/templates/test-artifacts/SubjectPageBase.d.ts +5 -0
  83. package/dist/templates/test-artifacts/SubjectPageBase.js +6 -0
  84. package/dist/templates/test-artifacts/SubjectPageBase.js.map +1 -0
  85. package/dist/templates/test-artifacts/screens/index.d.ts +1 -0
  86. package/dist/templates/test-artifacts/screens/index.js +2 -0
  87. package/dist/templates/test-artifacts/screens/index.js.map +1 -0
  88. package/dist/templates/test-artifacts/subjects/index.d.ts +1 -0
  89. package/dist/templates/test-artifacts/subjects/index.js +2 -0
  90. package/dist/templates/test-artifacts/subjects/index.js.map +1 -0
  91. package/enums/ElementTypes.ts +1 -1
  92. package/helpers/ConfigChecker.ts +7 -0
  93. package/helpers/LoginHelper.ts +1 -1
  94. package/interfaces/IComponentObjects.ts +1 -0
  95. package/package.json +3 -2
  96. package/page-extensions/SubjectRegistry.ts +2 -19
  97. package/page-extensions/index.ts +0 -1
  98. package/scripts/main.js +48 -69
  99. package/scripts/postinstall.js +40 -39
  100. package/scripts/sync.js +756 -102
  101. package/services/IndiciumApi.service.ts +159 -0
  102. package/templates/SubjectRegistry.template.ts +73 -0
  103. package/templates/test-artifacts/SubjectPageBase.ts +9 -0
  104. package/templates/test-artifacts/screens/index.ts +0 -0
  105. package/templates/test-artifacts/subjects/index.ts +0 -0
  106. package/tsconfig.json +2 -3
  107. package/dist/config.json +0 -10
  108. package/dist/page-extensions/SubjectProvider.d.ts +0 -11
  109. package/dist/page-extensions/SubjectProvider.js +0 -24
  110. package/dist/page-extensions/SubjectProvider.js.map +0 -1
  111. package/dist/test-artifacts/index.d.ts +0 -3
  112. package/dist/test-artifacts/index.js +0 -4
  113. package/dist/test-artifacts/index.js.map +0 -1
  114. package/page-extensions/SubjectProvider.ts +0 -41
  115. package/test-artifacts/index.ts +0 -3
@@ -48,17 +48,16 @@ export class NamingHandler {
48
48
  ).toLowerCase();
49
49
  }
50
50
 
51
- public getIdFromElementName(elementName: string): string {
52
- return (
53
- elementName
54
- // Remove the suffix at the end
55
- .replace(/([A-Z][a-z0-9]*)$/, '')
56
- // Convert to kebab-case
57
- .replace(/([a-z])([A-Z])/g, '$1-$2')
58
- .toLowerCase()
59
- // Replace underscores with hyphens
60
- .replace(/_/g, '-')
61
- );
51
+ public getIdFromElementName(elementName: string, componentType: SubjectComponents, controlType: string): string {
52
+ const elementSuffixToRemove = this.getElementSuffixFromControlTypeAndComponentType(controlType, componentType);
53
+ const snakeCaseElementName = this.pascalToSnakeCase(elementName);
54
+
55
+ return snakeCaseElementName
56
+ .replace(new RegExp(`${elementSuffixToRemove}$`, 'i'), '')
57
+ .replace(/([a-z])([A-Z])/g, '$1-$2')
58
+ .toLowerCase()
59
+ .replace(/_/g, '-')
60
+ .replace(/-+$/g, '');
62
61
  }
63
62
 
64
63
  public getComponentTypeFromFileName(fileName: string): SubjectComponents {
@@ -73,18 +72,18 @@ export class NamingHandler {
73
72
  }
74
73
 
75
74
  public getElementTypeFromElementName(elementName: string): string {
76
- // Get the suffix at the end of the element name
77
- const match = elementName.match(/([A-Z][a-z0-9]*)$/);
75
+ const snakeCaseElementName = this.pascalToSnakeCase(elementName);
76
+ const parts = snakeCaseElementName.split('_');
78
77
 
79
- // verify that match is a known element type
80
- if (match) {
81
- const elementType = match[1].toLowerCase();
82
- if (Object.values(KnownElementTypes).includes(elementType as KnownElementTypes)) {
83
- return elementType;
78
+ for (let i = parts.length - 1; i > 0; i--) {
79
+ const candidate = parts.slice(i).join('_');
80
+
81
+ if (Object.values(KnownElementTypes).includes(candidate as KnownElementTypes)) {
82
+ return candidate;
84
83
  }
85
84
  }
86
85
 
87
- throw new Error(`Could not extract element type from element name: ${elementName}`);
86
+ throw new Error(`No KnownElementType match found for a partial suffix of "${elementName}"`);
88
87
  }
89
88
 
90
89
  public getSubjectFromFileName(fileName: string): string {
@@ -138,6 +137,13 @@ export class NamingHandler {
138
137
  .join('');
139
138
  }
140
139
 
140
+ public pascalToSnakeCase(value: string): string {
141
+ return value
142
+ .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')
143
+ .replace(/([a-z\d])([A-Z])/g, '$1_$2')
144
+ .toLowerCase();
145
+ }
146
+
141
147
  public getComponentIdFromName(componentName: string, componentType: ScreenComponents): string {
142
148
  if (componentType === 'ActionBar' || componentType === 'CustomActionBar') {
143
149
  const capitalizedComponentName = this.capitalizeFirstLetter(componentName);
@@ -3,8 +3,11 @@ import type { IComponentObjects } from '../interfaces/IComponentObjects.js';
3
3
 
4
4
  export abstract class BaseComponentObjects implements IComponentObjects {
5
5
  context: Locator;
6
+ mainHeader: Locator;
6
7
 
7
8
  constructor(page: Page, context: Locator | null = null) {
8
- this.context = context ? context : page.locator('body');
9
+ this.mainHeader = page.locator('main header');
10
+ const body = page.locator('body');
11
+ this.context = context ? context : body;
9
12
  }
10
13
  }
@@ -90,9 +90,9 @@ export class ActionBar extends ActionBarActions {
90
90
  private _actionBarObjects: ActionBarObjects;
91
91
  private _overflowMenu: ActionBarOverflow;
92
92
 
93
- constructor(page: Page, actionbarContext: Locator | null = null) {
94
- super(page, actionbarContext);
95
- this._actionBarObjects = new ActionBarObjects(page, actionbarContext);
93
+ constructor(page: Page, actionBarContext: Locator | null = null) {
94
+ super(page, actionBarContext);
95
+ this._actionBarObjects = new ActionBarObjects(page, actionBarContext);
96
96
  this._overflowMenu = new ActionBarOverflow(page);
97
97
  }
98
98
 
@@ -12,6 +12,10 @@ export class Grid {
12
12
  this._page = page;
13
13
  }
14
14
 
15
+ protected get page() {
16
+ return this._page;
17
+ }
18
+
15
19
  /**
16
20
  * Retrieves a column header element by its text content.
17
21
  * @param text
@@ -253,7 +257,7 @@ export class Grid {
253
257
  const optionButton = this._gridObjects.excelStyleFilterPopupOptionByText(columnId, valueRegex);
254
258
  await optionButton.locator('input[type="checkbox"]').check();
255
259
 
256
- await this._gridObjects.gridCell().first().click();
260
+ await this._gridObjects.mainHeader.click(); // Click outside to close the popup
257
261
  await popup.waitFor({ state: 'detached' });
258
262
  }
259
263
 
@@ -281,11 +285,11 @@ export class Grid {
281
285
  }
282
286
 
283
287
  /**
284
- * Verifies the number of rows in the grid and checks for "No result" overlay if zero.
285
- * @param expectedRowCount The expected number of rows.
288
+ * Verifies the number of records in the grid and checks for "No result" overlay if zero.
289
+ * @param expectedRecordCount The expected number of records.
286
290
  */
287
- public async verifyNumberOfRowsInGrid(expectedRowCount: number): Promise<void> {
288
- if (expectedRowCount === 0) {
291
+ public async verifyGridRecordCount(expectedRecordCount: number): Promise<void> {
292
+ if (expectedRecordCount === 0) {
289
293
  if (await this.hasNoRowsOverlay()) {
290
294
  return;
291
295
  } else {
@@ -294,29 +298,22 @@ export class Grid {
294
298
  }
295
299
 
296
300
  await pollUntil(() => this.rows().count(), {
297
- predicate: (n: number) => n === expectedRowCount
301
+ predicate: (n: number) => n === expectedRecordCount + 1 // +1 to account for header row
298
302
  });
299
303
  }
300
304
 
301
305
  /**
302
306
  * Verifies if the "No result" overlay is visible in the grid.
303
- * @returns A promise that resolves to true if the overlay is visible, otherwise false.
307
+ * @returns A promise that resolves to true if the overlay is visible and , otherwise false.
304
308
  */
305
309
  public async hasNoRowsOverlay(): Promise<boolean> {
306
- try {
307
- const overlay = this._gridObjects.noRowsOverlay();
308
- await pollUntil(
309
- async () => {
310
- const txt = (await overlay.textContent())?.trim() ?? '';
311
- return txt.includes('No result');
312
- },
313
- { predicate: Boolean }
314
- );
315
- } catch {
316
- console.error('The "No result" overlay is not displaying the expected text.');
317
- return false;
318
- }
310
+ const overlay = this._gridObjects.noRowsOverlay();
311
+
312
+ const hasCorrectWording = await pollUntil(
313
+ async () => (await overlay.textContent())?.trim().includes('No result') ?? false,
314
+ { predicate: Boolean }
315
+ );
319
316
 
320
- return await this._gridObjects.noRowsOverlay().isVisible();
317
+ return hasCorrectWording && (await overlay.isVisible());
321
318
  }
322
319
  }
@@ -22,11 +22,11 @@ export class BaseTab {
22
22
  }
23
23
 
24
24
  // --- Useful getters ---
25
- public async getTabById(name: string): Promise<Locator> {
25
+ public getTabById(name: string): Locator {
26
26
  return this._objects.tabByTestId(name);
27
27
  }
28
28
 
29
- public async getTabByIndex(index: number): Promise<Locator> {
29
+ public getTabByIndex(index: number): Locator {
30
30
  return this._objects.tabByIndex(index);
31
31
  }
32
32
 
@@ -12,7 +12,7 @@ export class BaseTabObjects extends BaseComponentObjects {
12
12
  public tabList = (): Locator => this.context.getByRole('tablist');
13
13
 
14
14
  public tabByTestId = (name: string): Locator =>
15
- this.tabList().locator(`[role="tab"][data-testid^="tabstrip__tab__${name.toLowerCase()}__"]`);
15
+ this.tabList().locator(`[role="tab"][data-testid^="tabstrip__tab__${name.toLowerCase()}"]`);
16
16
 
17
17
  // use role for generic index-based selection
18
18
  public tabByIndex = (index: number): Locator => this.tabList().getByRole('tab').nth(index);
@@ -10,11 +10,11 @@ export class DetailTabPage extends BaseTab {
10
10
  this._objects = new DetailTabPageObjects(page, context);
11
11
  }
12
12
 
13
- public async getDetailTabPageById(name: string): Promise<Locator> {
13
+ public getDetailTabPageById(name: string): Locator {
14
14
  return this._objects.detailTab(name);
15
15
  }
16
16
 
17
- public async getDetailTabPageByIndex(index: number): Promise<Locator> {
17
+ public getDetailTabPageByIndex(index: number): Locator {
18
18
  return this._objects.tabByIndex(index);
19
19
  }
20
20
  }
@@ -19,7 +19,7 @@ export class Tab extends BaseTab {
19
19
  }
20
20
 
21
21
  // Returns the “List” tab locator (scoped).
22
- public async getListTab(tabindex: string = '-1'): Promise<Locator> {
22
+ public getListTab(tabindex: string = '-1'): Locator {
23
23
  return this._objects.listTab(tabindex);
24
24
  }
25
25
 
@@ -29,12 +29,12 @@ export class Tab extends BaseTab {
29
29
  }
30
30
 
31
31
  // Returns the “Form” tab locator (scoped).
32
- public async getFormTab(): Promise<Locator> {
32
+ public getFormTab(): Locator {
33
33
  return this._objects.formTab();
34
34
  }
35
35
 
36
36
  // Opens a component tab by its ID in this tabstrip (scoped).
37
- public async openTabByID(tabid: string): Promise<void> {
38
- await this._objects.tab(tabid).click();
37
+ public async openTabById(tabId: string): Promise<void> {
38
+ await this._objects.tab(tabId).click();
39
39
  }
40
40
  }
@@ -3,6 +3,11 @@
3
3
  import type { Locator } from '@playwright/test';
4
4
  import { escapeRegex } from '../helpers/RegexHelper.js';
5
5
 
6
+ export type ILookupDropdown = Locator & {
7
+ lookupSelect(optionToSelect: string): Promise<void>;
8
+ selectOption(optionText: string): Promise<void>;
9
+ };
10
+
6
11
  class LookupDropdown {
7
12
  private _locator: Locator;
8
13
 
@@ -34,7 +39,7 @@ class LookupDropdown {
34
39
  }
35
40
  }
36
41
 
37
- export function createLookupDropdown(locator: Locator): LookupDropdown & Locator {
42
+ export function createLookupDropdown(locator: Locator): ILookupDropdown {
38
43
  const dropdown = new LookupDropdown(locator);
39
44
 
40
45
  return new Proxy(dropdown, {
@@ -50,5 +55,5 @@ export function createLookupDropdown(locator: Locator): LookupDropdown & Locator
50
55
  }
51
56
  return value;
52
57
  }
53
- }) as LookupDropdown & Locator;
58
+ }) as unknown as ILookupDropdown;
54
59
  }
package/dist/Testwise.js CHANGED
@@ -1,7 +1,6 @@
1
1
  import { test as base } from '@playwright/test';
2
2
  import { test as bddBase } from 'playwright-bdd';
3
3
  import { Components, GoToDeepLink, LoginFeatures, UserSimulation } from './page-extensions/index.js';
4
- import { SubjectProvider } from './page-extensions/SubjectProvider.js';
5
4
  import { SubjectRegistry } from './page-extensions/SubjectRegistry.js';
6
5
  import { WaitEventHandler } from './page-extensions/WaitEventHandler.js';
7
6
  import { ClickOverride } from './page-overrides/ClickOverride.js';
@@ -19,8 +18,7 @@ const extensions = [
19
18
  LoginFeatures,
20
19
  UserSimulation,
21
20
  WaitEventHandler,
22
- SubjectRegistry,
23
- SubjectProvider
21
+ SubjectRegistry
24
22
  ];
25
23
  export const test = combineExtensions(base, ...extensions);
26
24
  export const bddTest = combineExtensions(bddBase, ...extensions);
@@ -1 +1 @@
1
- {"version":3,"file":"Testwise.js","sourceRoot":"","sources":["../Testwise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACrG,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAGhE,SAAS,iBAAiB,CAAC,QAAc,EAAE,GAAG,UAAkD;IAC9F,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,GAAG;IACjB,mBAAmB;IACnB,aAAa;IACb,YAAY;IAEZ,iBAAiB;IACjB,UAAU;IACV,YAAY;IACZ,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,eAAe;IACf,eAAe;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAS,iBAAiB,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,OAAO,GAAS,iBAAiB,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC"}
1
+ {"version":3,"file":"Testwise.js","sourceRoot":"","sources":["../Testwise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACrG,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAGhE,SAAS,iBAAiB,CAAC,QAAc,EAAE,GAAG,UAAkD;IAC9F,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,GAAG;IACjB,mBAAmB;IACnB,aAAa;IACb,YAAY;IAEZ,iBAAiB;IACjB,UAAU;IACV,YAAY;IACZ,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,eAAe;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAS,iBAAiB,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,OAAO,GAAS,iBAAiB,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC"}
@@ -2,6 +2,7 @@ export declare class InterfaceGenerator {
2
2
  private readonly _namingHandler;
3
3
  private _filename;
4
4
  private _dirname;
5
+ private _screensToBuild;
5
6
  constructor();
6
7
  generateScreenInterfacesFromSchemas(): Promise<void>;
7
8
  generateSubjectInterfacesFromSchemas(): Promise<void>;
@@ -4,12 +4,13 @@ import { fileURLToPath } from 'node:url';
4
4
  import * as prettier from 'prettier';
5
5
  import { FetchingJSONSchemaStore, InputData, JSONSchemaInput, quicktype } from 'quicktype-core';
6
6
  import { PathResolver } from '../helpers/PathResolver.js';
7
- import { NamingHandler } from '../index.js';
7
+ import { DataRetriever, NamingHandler } from '../index.js';
8
8
  export class InterfaceGenerator {
9
9
  constructor() {
10
10
  this._namingHandler = new NamingHandler();
11
11
  this._filename = fileURLToPath(import.meta.url);
12
12
  this._dirname = path.dirname(this._filename);
13
+ this._screensToBuild = new DataRetriever().getScreensToBuild();
13
14
  }
14
15
  async generateScreenInterfacesFromSchemas() {
15
16
  const screenOutputDirectory = path.resolve(this._dirname, '..', '..', 'test-artifacts/screens/');
@@ -98,6 +99,10 @@ export class InterfaceGenerator {
98
99
  return this.createInterfaceFromSchema(schemasDirectory, perFileOutputPath, file);
99
100
  }
100
101
  if (schemaType === SchemaType.Screen) {
102
+ const fileNameSnakeCase = this._namingHandler.pascalToSnakeCase(fileName);
103
+ if (this._screensToBuild.length > 0 && !this._screensToBuild.includes(fileNameSnakeCase)) {
104
+ return Promise.resolve(true);
105
+ }
101
106
  const perFileOutputPath = path.join(outputPath, `I${fileName}.ts`);
102
107
  return this.createInterfaceFromSchema(schemasDirectory, perFileOutputPath, file, true);
103
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"InterfaceGenerator.js","sourceRoot":"","sources":["../../artifact-builder/InterfaceGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InterfaceGenerator.js","sourceRoot":"","sources":["../../artifact-builder/InterfaceGenerator.ts"],"names":[],"mappings":"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"}
@@ -3,28 +3,15 @@
3
3
  /** biome-ignore-all lint/suspicious/noExplicitAny: Because I can */
4
4
  import * as fs from 'node:fs/promises';
5
5
  import * as path from 'node:path';
6
- import axios from 'axios';
7
- import { testwiseConfig } from '../services/ConfigBuilder.js';
6
+ import { indiciumApi } from '../services/IndiciumApi.service.js';
8
7
  import { DataRetriever } from './helpers/DataRetriever.js';
9
- const serviceUrl = testwiseConfig().get('environmentSettings.serviceUrl').replace(/\/$/, '');
10
- const metaEndpoint = testwiseConfig()
11
- .get('environmentSettings.metaEndpoint')
12
- .replace(/^\//, '')
13
- .replace(/\/$/, '');
14
- const authUser = testwiseConfig().get('environmentSettings.authUser');
15
- const authUserPassword = testwiseConfig().get('environmentSettings.authUserPassword');
16
- const axiosInstance = axios.create({
17
- baseURL: serviceUrl,
18
- headers: {
19
- Authorization: `Basic ${Buffer.from(`${authUser}:${authUserPassword}`).toString('base64')}`,
20
- accept: '*/*'
21
- }
22
- });
23
- const guiApplId = await getGuiApplId();
24
8
  export async function buildSubjects() {
25
- const response = await axiosInstance.get(`/iam/${metaEndpoint}/i_ui_tab?$filter=gui_appl_id%20eq%20${guiApplId}`);
26
- const rawTabs = response.data?.value || [];
27
- const subjects = rawTabs
9
+ if (!(await indiciumApi.canConnectToProject())) {
10
+ console.log('Cannot connect to Indicium API. Aborting subject build.');
11
+ return;
12
+ }
13
+ const rawTables = await indiciumApi.getAllTables();
14
+ const subjects = rawTables
28
15
  .flatMap((tab) => {
29
16
  const base = {
30
17
  subject: tab.tab_id,
@@ -33,13 +20,18 @@ export async function buildSubjects() {
33
20
  return [
34
21
  { ...base, screentype_id: tab.main_screen_type_id, screentype_context: 'main' },
35
22
  { ...base, screentype_id: tab.detail_screen_type_id, screentype_context: 'detail' },
36
- { ...base, screentype_id: tab.zoom_screen_type_id, screentype_context: 'zoom' },
37
- { ...base, screentype_id: tab.popup_screen_type_id, screentype_context: 'popup' }
23
+ { ...base, screentype_id: tab.popup_screen_type_id, screentype_context: 'popup' },
24
+ { ...base, screentype_id: tab.zoom_screen_type_id, screentype_context: 'zoom' }
38
25
  ];
39
26
  })
40
27
  .filter((item) => item.screentype_id !== 'not_visible_in_gui');
41
- const colResponse = await axiosInstance.get(`/iam/${metaEndpoint}/i_ui_col?$filter=gui_appl_id%20eq%20${guiApplId}`);
42
- const allProperties = colResponse.data?.value.map((col) => ({
28
+ const screentypeOrder = ['main', 'detail', 'popup', 'zoom'];
29
+ subjects.sort((a, b) => {
30
+ return (a.subject.localeCompare(b.subject) ||
31
+ a.variant.localeCompare(b.variant) ||
32
+ screentypeOrder.indexOf(a.screentype_context) - screentypeOrder.indexOf(b.screentype_context));
33
+ });
34
+ const allProperties = (await indiciumApi.getAllColumns()).map((col) => ({
43
35
  subject: col.tab_id,
44
36
  variant: col.tab_variant_id,
45
37
  col: col.col_id,
@@ -47,8 +39,10 @@ export async function buildSubjects() {
47
39
  }));
48
40
  for (const subject of subjects) {
49
41
  const matchingProperties = allProperties.filter((prop) => prop.subject === subject.subject && prop.variant === subject.variant);
50
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
51
- subject.properties = matchingProperties.map(({ subject, variant, ...rest }) => rest);
42
+ subject.properties = matchingProperties
43
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
44
+ .map(({ subject, variant, ...rest }) => rest)
45
+ .sort((a, b) => a.col.localeCompare(b.col));
52
46
  }
53
47
  const subjectsWithLookupsSet = await setLookupDropdowns(subjects);
54
48
  const seedDataDirectory = new DataRetriever().getSeedDataDirectory();
@@ -57,8 +51,7 @@ export async function buildSubjects() {
57
51
  console.log(`Seed data written to ${seedDataPath}`);
58
52
  }
59
53
  async function setLookupDropdowns(subjects) {
60
- const response = await axiosInstance.get(`/iam/${metaEndpoint}/i_ui_tab_look_up?$filter=gui_appl_id%20eq%20${guiApplId}`);
61
- const lookupMappings = response.data?.value || [];
54
+ const lookupMappings = await indiciumApi.getLookups();
62
55
  for (const mapping of lookupMappings) {
63
56
  const targetSubject = subjects.find((subj) => subj.subject === mapping.tab_id && subj.variant === mapping.tab_variant_id);
64
57
  const targetProperty = targetSubject?.properties?.find((prop) => prop.col === mapping.col_id);
@@ -69,8 +62,11 @@ async function setLookupDropdowns(subjects) {
69
62
  return subjects;
70
63
  }
71
64
  export async function buildScreens() {
72
- const response = await axiosInstance.get(`/iam/${metaEndpoint}/i_ui_screen_component?$filter=gui_appl_id eq ${guiApplId}`);
73
- const rawComponents = response.data?.value || [];
65
+ if (!(await indiciumApi.canConnectToProject())) {
66
+ console.log('Cannot connect to Indicium API. Aborting screen build.');
67
+ return;
68
+ }
69
+ const rawComponents = await indiciumApi.getScreenComponents();
74
70
  const screenMap = new Map();
75
71
  for (const item of rawComponents) {
76
72
  // eslint-disable-next-line @typescript-eslint/naming-convention
@@ -118,24 +114,4 @@ export async function buildScreens() {
118
114
  }
119
115
  console.log('Screen schemas generated successfully.');
120
116
  }
121
- async function getGuiApplId() {
122
- const guiApplAlias = testwiseConfig().get('environmentSettings.guiApplAlias');
123
- if (guiApplAlias) {
124
- const response = await axiosInstance.get(`/iam/${metaEndpoint}/i_ui_gui_appl`);
125
- const guiAppl = response.data?.value.find((appl) => {
126
- const currentAlias = appl?.gui_appl_alias?.toString();
127
- const targetAlias = guiApplAlias?.toString();
128
- return currentAlias === targetAlias;
129
- });
130
- if (guiAppl) {
131
- return guiAppl.gui_appl_id;
132
- }
133
- else {
134
- throw new Error(`No GUI Application found for GUI Application Alias: ${guiApplAlias}`);
135
- }
136
- }
137
- else {
138
- throw new Error('GUI Application Alias is not defined in the configuration.');
139
- }
140
- }
141
117
  //# sourceMappingURL=ModelDataBuilder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModelDataBuilder.js","sourceRoot":"","sources":["../../artifact-builder/ModelDataBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModelDataBuilder.js","sourceRoot":"","sources":["../../artifact-builder/ModelDataBuilder.ts"],"names":[],"mappings":"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"}
@@ -7,22 +7,26 @@ export class ModelDataRefiner {
7
7
  }
8
8
  run() {
9
9
  const seedDataDir = this._dataRetriever.getSeedDataDirectory();
10
+ const subjectsToBuildPath = path.resolve(seedDataDir, 'subjectsToBuild.json');
11
+ const screensToBuildPath = path.resolve(seedDataDir, 'screensToBuild.json');
10
12
  const registeredSubjects = this._dataRetriever.getRegisteredSubjects();
11
13
  if (!registeredSubjects || registeredSubjects.length === 0) {
12
14
  console.info('No registered subjects found.');
15
+ if (fs.existsSync(screensToBuildPath))
16
+ fs.unlinkSync(screensToBuildPath);
17
+ if (fs.existsSync(subjectsToBuildPath))
18
+ fs.unlinkSync(subjectsToBuildPath);
13
19
  return;
14
20
  }
15
21
  const subjects = this._dataRetriever.getSubjectsSeedData();
16
22
  const subjectsToBuild = subjects.filter((subject) => registeredSubjects.some((registered) => registered.subject === subject.subject &&
17
23
  (registered.variant != null ? registered.variant === subject.variant : subject.variant === '') &&
18
24
  registered.screen_type === subject.screentype_context));
19
- const subjectsToBuildPath = path.resolve(seedDataDir, 'subjectsToBuild.json');
20
25
  fs.writeFileSync(subjectsToBuildPath, JSON.stringify(subjectsToBuild, null, 2));
21
26
  console.log(`Created subjectsToBuild.json with ${subjectsToBuild.length} subjects.`);
22
- const screensToBuild = Array.from(new Set(subjectsToBuild.map((subject) => subject.screentype_id)));
23
- const screensToBuildPath = path.resolve(seedDataDir, 'screensToBuild.json');
24
- fs.writeFileSync(screensToBuildPath, JSON.stringify(screensToBuild, null, 2));
25
- console.log(`Created screensToBuild.json with ${screensToBuild.length} screens.`);
27
+ const screensToBuildList = Array.from(new Set(subjectsToBuild.map((subject) => subject.screentype_id)));
28
+ fs.writeFileSync(screensToBuildPath, JSON.stringify(screensToBuildList, null, 2));
29
+ console.log(`Created screensToBuild.json with ${screensToBuildList.length} screens.`);
26
30
  }
27
31
  }
28
32
  //# sourceMappingURL=ModelDataRefiner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModelDataRefiner.js","sourceRoot":"","sources":["../../artifact-builder/ModelDataRefiner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,OAAO,gBAAgB;IAA7B;QACU,mBAAc,GAAG,IAAI,aAAa,EAAE,CAAC;IAgC/C,CAAC;IA9BQ,GAAG;QACR,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE,CAAC;QAC/D,MAAM,kBAAkB,GAAiC,IAAI,CAAC,cAAc,CAAC,qBAAqB,EAAE,CAAC;QAErG,IAAI,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE,CAAC;QAE3D,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAClD,kBAAkB,CAAC,IAAI,CACrB,CAAC,UAAU,EAAE,EAAE,CACb,UAAU,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;YACtC,CAAC,UAAU,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,KAAK,EAAE,CAAC;YAC9F,UAAU,CAAC,WAAW,KAAK,OAAO,CAAC,kBAAkB,CACxD,CACF,CAAC;QAEF,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;QAC9E,EAAE,CAAC,aAAa,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAChF,OAAO,CAAC,GAAG,CAAC,qCAAqC,eAAe,CAAC,MAAM,YAAY,CAAC,CAAC;QAErF,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAEpG,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;QAC5E,EAAE,CAAC,aAAa,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,oCAAoC,cAAc,CAAC,MAAM,WAAW,CAAC,CAAC;IACpF,CAAC;CACF"}
1
+ {"version":3,"file":"ModelDataRefiner.js","sourceRoot":"","sources":["../../artifact-builder/ModelDataRefiner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,OAAO,gBAAgB;IAA7B;QACU,mBAAc,GAAG,IAAI,aAAa,EAAE,CAAC;IAoC/C,CAAC;IAlCQ,GAAG;QACR,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE,CAAC;QAC/D,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;QAC9E,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;QAC5E,MAAM,kBAAkB,GAAiC,IAAI,CAAC,cAAc,CAAC,qBAAqB,EAAE,CAAC;QAErG,IAAI,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YAE9C,IAAI,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC;gBAAE,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;YACzE,IAAI,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC;gBAAE,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;YAE3E,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE,CAAC;QAE3D,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAClD,kBAAkB,CAAC,IAAI,CACrB,CAAC,UAAU,EAAE,EAAE,CACb,UAAU,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;YACtC,CAAC,UAAU,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,KAAK,EAAE,CAAC;YAC9F,UAAU,CAAC,WAAW,KAAK,OAAO,CAAC,kBAAkB,CACxD,CACF,CAAC;QAEF,EAAE,CAAC,aAAa,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAChF,OAAO,CAAC,GAAG,CAAC,qCAAqC,eAAe,CAAC,MAAM,YAAY,CAAC,CAAC;QAErF,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAExG,EAAE,CAAC,aAAa,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAClF,OAAO,CAAC,GAAG,CAAC,oCAAoC,kBAAkB,CAAC,MAAM,WAAW,CAAC,CAAC;IACxF,CAAC;CACF"}
@@ -43,7 +43,9 @@ export class SelectorBuilder {
43
43
  return suffix;
44
44
  }
45
45
  getPageLocatorString(property, componentName) {
46
- const elementId = this._namingHandler.getIdFromElementName(property);
46
+ let elementId = this._namingHandler.getIdFromElementName(property, componentName, this._namingHandler.getElementTypeFromElementName(property));
47
+ if (componentName === 'Grid')
48
+ elementId = elementId.replace(/-/g, '_');
47
49
  const selectorPrefix = this.getDefaultPrefix(componentName);
48
50
  const defaultSuffix = this.getDefaultSuffix(componentName);
49
51
  const selectorSuffix = this.determineSelectorSuffix(property, componentName) || defaultSuffix;
@@ -1 +1 @@
1
- {"version":3,"file":"SelectorBuilder.js","sourceRoot":"","sources":["../../artifact-builder/SelectorBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SelectorBuilder.js","sourceRoot":"","sources":["../../artifact-builder/SelectorBuilder.ts"],"names":[],"mappings":"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"}
@@ -11,10 +11,14 @@ export declare class SubjectComponentGenerator {
11
11
  private refineSubjectComponents;
12
12
  private getComponentNameFromFile;
13
13
  private refine;
14
+ private transformGridInterface;
15
+ private generateGridGetters;
14
16
  private getSubjectFolderPath;
15
17
  private verifyDirectoryExists;
16
18
  private getPropertyInitializations;
19
+ private addLookupImportIfRequired;
17
20
  private generatePropertyDeclarations;
21
+ private transformLookupTypes;
18
22
  private convertStringsToArray;
19
23
  private getPropertyNamesFromInterface;
20
24
  private setSubjectExtendsComponent;