@thinkwise/testwise 0.2.7 → 0.2.20

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 (60) hide show
  1. package/artifact-builder/InterfaceGenerator.ts +2 -2
  2. package/artifact-builder/SchemaGenerator.ts +2 -2
  3. package/artifact-builder/SelectorBuilder.ts +6 -2
  4. package/artifact-builder/SubjectComponentGenerator.ts +68 -10
  5. package/artifact-builder/SubjectGenerator.ts +2 -2
  6. package/artifact-builder/SubjectRegistration.ts +14 -0
  7. package/artifact-builder/helpers/NamingHandler.ts +28 -56
  8. package/components/export/ExportComponent.ts +1 -0
  9. package/components/tab/BaseTabObjects.ts +1 -1
  10. package/controls/DateControl.ts +67 -0
  11. package/controls/FormComboBox.ts +74 -0
  12. package/controls/InputFieldControl.ts +79 -0
  13. package/controls/LookupDropdown.ts +4 -2
  14. package/controls/index.ts +3 -0
  15. package/dist/artifact-builder/InterfaceGenerator.js +3 -3
  16. package/dist/artifact-builder/InterfaceGenerator.js.map +1 -1
  17. package/dist/artifact-builder/SchemaGenerator.js +2 -2
  18. package/dist/artifact-builder/SchemaGenerator.js.map +1 -1
  19. package/dist/artifact-builder/SelectorBuilder.d.ts +1 -0
  20. package/dist/artifact-builder/SelectorBuilder.js +4 -1
  21. package/dist/artifact-builder/SelectorBuilder.js.map +1 -1
  22. package/dist/artifact-builder/SubjectComponentGenerator.d.ts +2 -2
  23. package/dist/artifact-builder/SubjectComponentGenerator.js +50 -11
  24. package/dist/artifact-builder/SubjectComponentGenerator.js.map +1 -1
  25. package/dist/artifact-builder/SubjectGenerator.js +2 -2
  26. package/dist/artifact-builder/SubjectGenerator.js.map +1 -1
  27. package/dist/artifact-builder/SubjectRegistration.d.ts +1 -0
  28. package/dist/artifact-builder/SubjectRegistration.js +11 -0
  29. package/dist/artifact-builder/SubjectRegistration.js.map +1 -1
  30. package/dist/artifact-builder/helpers/NamingHandler.d.ts +2 -4
  31. package/dist/artifact-builder/helpers/NamingHandler.js +26 -52
  32. package/dist/artifact-builder/helpers/NamingHandler.js.map +1 -1
  33. package/dist/components/export/ExportComponent.js +1 -0
  34. package/dist/components/export/ExportComponent.js.map +1 -1
  35. package/dist/components/tab/BaseTabObjects.js +1 -1
  36. package/dist/components/tab/BaseTabObjects.js.map +1 -1
  37. package/dist/controls/DateControl.d.ts +25 -0
  38. package/dist/controls/DateControl.js +44 -0
  39. package/dist/controls/DateControl.js.map +1 -0
  40. package/dist/controls/FormComboBox.d.ts +9 -0
  41. package/dist/controls/FormComboBox.js +45 -0
  42. package/dist/controls/FormComboBox.js.map +1 -0
  43. package/dist/controls/InputFieldControl.d.ts +26 -0
  44. package/dist/controls/InputFieldControl.js +48 -0
  45. package/dist/controls/InputFieldControl.js.map +1 -0
  46. package/dist/controls/LookupDropdown.d.ts +2 -1
  47. package/dist/controls/LookupDropdown.js.map +1 -1
  48. package/dist/controls/index.d.ts +3 -0
  49. package/dist/controls/index.js +3 -0
  50. package/dist/controls/index.js.map +1 -1
  51. package/dist/enums/ElementTypes.d.ts +4 -2
  52. package/dist/enums/ElementTypes.js +3 -1
  53. package/dist/enums/ElementTypes.js.map +1 -1
  54. package/dist/helpers/UserSimulationHelper.js +1 -1
  55. package/dist/helpers/UserSimulationHelper.js.map +1 -1
  56. package/enums/ElementTypes.ts +4 -2
  57. package/helpers/UserSimulationHelper.ts +1 -1
  58. package/package.json +7 -7
  59. package/scripts/postinstall.js +3 -1
  60. package/scripts/sync.js +748 -756
@@ -1 +1 @@
1
- {"version":3,"file":"ExportComponent.js","sourceRoot":"","sources":["../../../components/export/ExportComponent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExportComponent.js","sourceRoot":"","sources":["../../../components/export/ExportComponent.ts"],"names":[],"mappings":"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"}
@@ -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,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"}
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,MAAM,CAAC,CAAC;QAEhG,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"}
@@ -0,0 +1,25 @@
1
+ import type { Locator, Page } from '@playwright/test';
2
+ export type IDateControl = Locator & IDateControlCore;
3
+ export type IDateControlCore = {
4
+ fill(value: string): Promise<void>;
5
+ clear(): Promise<void>;
6
+ inputValue(): Promise<string>;
7
+ inputElement(): Locator;
8
+ };
9
+ export declare class DateControl implements IDateControlCore {
10
+ private _dateFieldLocator;
11
+ private _inputLocator;
12
+ constructor(page: Page, id: string);
13
+ /**
14
+ * Enter a date value in any common format (e.g., "MM/DD/YYYY", "YYYY-MM-DD", "DD-MM-YYYY").
15
+ * The method will extract the numbers and input them sequentially, allowing the date picker to format it correctly.
16
+ * For example, entering "01012025" will be interpreted as "01/01/2025".
17
+ * This approach provides flexibility in how dates can be entered while ensuring compatibility with various date picker implementations.
18
+ * @param value
19
+ */
20
+ fill(value: string): Promise<void>;
21
+ clear(): Promise<void>;
22
+ inputValue(): Promise<string>;
23
+ inputElement(): Locator;
24
+ }
25
+ export declare function createDateControl(page: Page, id: string): IDateControl;
@@ -0,0 +1,44 @@
1
+ export class DateControl {
2
+ constructor(page, id) {
3
+ this._dateFieldLocator = page.getByTestId(`form-field__${id}`);
4
+ this._inputLocator = this._dateFieldLocator.locator('input');
5
+ }
6
+ /**
7
+ * Enter a date value in any common format (e.g., "MM/DD/YYYY", "YYYY-MM-DD", "DD-MM-YYYY").
8
+ * The method will extract the numbers and input them sequentially, allowing the date picker to format it correctly.
9
+ * For example, entering "01012025" will be interpreted as "01/01/2025".
10
+ * This approach provides flexibility in how dates can be entered while ensuring compatibility with various date picker implementations.
11
+ * @param value
12
+ */
13
+ async fill(value) {
14
+ const numbersOnlyValue = value.replace(/\D/g, '');
15
+ await this._inputLocator.focus();
16
+ await this._inputLocator.pressSequentially(numbersOnlyValue);
17
+ }
18
+ async clear() {
19
+ await this._inputLocator.fill('');
20
+ }
21
+ async inputValue() {
22
+ return await this._inputLocator.inputValue();
23
+ }
24
+ inputElement() {
25
+ return this._inputLocator;
26
+ }
27
+ }
28
+ export function createDateControl(page, id) {
29
+ const inputFieldControl = new DateControl(page, id);
30
+ const locator = page.getByTestId(`form-field__${id}`);
31
+ return new Proxy(inputFieldControl, {
32
+ get(target, prop, receiver) {
33
+ if (prop in target) {
34
+ return Reflect.get(target, prop, receiver);
35
+ }
36
+ const value = locator[prop];
37
+ if (typeof value === 'function') {
38
+ return value.bind(locator);
39
+ }
40
+ return value;
41
+ }
42
+ });
43
+ }
44
+ //# sourceMappingURL=DateControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateControl.js","sourceRoot":"","sources":["../../controls/DateControl.ts"],"names":[],"mappings":"AAaA,MAAM,OAAO,WAAW;IAItB,YAAY,IAAU,EAAE,EAAU;QAChC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,IAAI,CAAC,KAAa;QAC7B,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAElD,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QACjC,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAC/D,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;CACF;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAU,EAAE,EAAU;IACtD,MAAM,iBAAiB,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAEtD,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,CAA4B,CAAC;AAChC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { Locator, Page } from '@playwright/test';
2
+ export type IFormComboBox = Locator & IFormComboBoxCore;
3
+ export type IFormComboBoxCore = {
4
+ lookupSelect(optionToSelect: string): Promise<void>;
5
+ selectOption(optionText: string): Promise<void>;
6
+ getValidationMessage(): Promise<string>;
7
+ clearByClick(): Promise<void>;
8
+ };
9
+ export declare function createFormComboBox(page: Page, id: string): IFormComboBox;
@@ -0,0 +1,45 @@
1
+ class FormComboBox {
2
+ constructor(page, id) {
3
+ this._id = id;
4
+ this._formFieldLocator = page.getByTestId(`form-field__${id}`);
5
+ this._autoCompleteMenu = page.getByTestId(`form-field__${id}__select__options-list`);
6
+ }
7
+ async selectOption(optionText) {
8
+ await this._formFieldLocator.locator('input').click();
9
+ await this._autoCompleteMenu.waitFor({ state: 'visible' });
10
+ const optionTextLowercase = optionText.toLowerCase();
11
+ await this._autoCompleteMenu.getByTestId(`form-field__${this._id}__select__${optionTextLowercase}__text`).click();
12
+ }
13
+ async getValidationMessage() {
14
+ await this._formFieldLocator.locator('.TooltipContainer p').waitFor({ state: 'visible' });
15
+ return await this._formFieldLocator.locator('.TooltipContainer p').innerText();
16
+ }
17
+ async clearByClick() {
18
+ await this._formFieldLocator.locator('Button[aria-label="Clear"]').click();
19
+ }
20
+ async lookupSelect(optionToSelect) {
21
+ await this._formFieldLocator.locator('input').fill(optionToSelect);
22
+ await this._autoCompleteMenu.waitFor({ state: 'visible' });
23
+ const optionToSelectLowercase = optionToSelect.toLowerCase();
24
+ await this._autoCompleteMenu
25
+ .getByTestId(`form-field__${this._id}__select__${optionToSelectLowercase}__text`)
26
+ .click();
27
+ }
28
+ }
29
+ export function createFormComboBox(page, id) {
30
+ const comboBox = new FormComboBox(page, id);
31
+ const locator = page.getByTestId(`form-field__${id}`);
32
+ return new Proxy(comboBox, {
33
+ get(target, prop, receiver) {
34
+ if (prop in target) {
35
+ return Reflect.get(target, prop, receiver);
36
+ }
37
+ const value = locator[prop];
38
+ if (typeof value === 'function') {
39
+ return value.bind(locator);
40
+ }
41
+ return value;
42
+ }
43
+ });
44
+ }
45
+ //# sourceMappingURL=FormComboBox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormComboBox.js","sourceRoot":"","sources":["../../controls/FormComboBox.ts"],"names":[],"mappings":"AAaA,MAAM,YAAY;IAKhB,YAAY,IAAU,EAAE,EAAU;QAChC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,wBAAwB,CAAC,CAAC;IACvF,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB;QACnC,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;QAEtD,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAE3D,MAAM,mBAAmB,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QAErD,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,eAAe,IAAI,CAAC,GAAG,aAAa,mBAAmB,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;IACpH,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,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;IACD,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,KAAK,EAAE,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,cAAsB;QACvC,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEnE,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAE3D,MAAM,uBAAuB,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;QAE7D,MAAM,IAAI,CAAC,iBAAiB;aACzB,WAAW,CAAC,eAAe,IAAI,CAAC,GAAG,aAAa,uBAAuB,QAAQ,CAAC;aAChF,KAAK,EAAE,CAAC;IACb,CAAC;CACF;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAU,EAAE,EAAU;IACvD,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAEtD,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,CAA6B,CAAC;AACjC,CAAC"}
@@ -0,0 +1,26 @@
1
+ /** biome-ignore-all lint/suspicious/noExplicitAny: reason42 */
2
+ import type { Locator, Page } from '@playwright/test';
3
+ export type IInputFieldControl = Locator & ICoreInputFieldControl;
4
+ export type ICoreInputFieldControl = {
5
+ getValidationMessage(): Promise<string>;
6
+ getLabelText(): Promise<string>;
7
+ fill(value: string): Promise<void>;
8
+ click(): Promise<void>;
9
+ clear(): Promise<void>;
10
+ inputValue(): Promise<string>;
11
+ inputElement(): Locator;
12
+ };
13
+ export declare class InputFieldControl implements ICoreInputFieldControl {
14
+ private _formFieldLocator;
15
+ private _inputLocator;
16
+ private _id;
17
+ constructor(page: Page, id: string);
18
+ getValidationMessage(): Promise<string>;
19
+ fill(value: string): Promise<void>;
20
+ click(): Promise<void>;
21
+ clear(): Promise<void>;
22
+ inputValue(): Promise<string>;
23
+ inputElement(): Locator;
24
+ getLabelText(): Promise<string>;
25
+ }
26
+ export declare function createInputFieldControl(page: Page, id: string): IInputFieldControl;
@@ -0,0 +1,48 @@
1
+ export class InputFieldControl {
2
+ constructor(page, id) {
3
+ this._id = id;
4
+ this._formFieldLocator = page.getByTestId(`form-field__${id}`);
5
+ this._inputLocator = this._formFieldLocator.locator('input');
6
+ }
7
+ async getValidationMessage() {
8
+ await this._formFieldLocator.locator('.TooltipContainer p').waitFor({ state: 'visible' });
9
+ return await this._formFieldLocator.locator('.TooltipContainer p').innerText();
10
+ }
11
+ async fill(value) {
12
+ await this._inputLocator.fill(value);
13
+ }
14
+ async click() {
15
+ await this._inputLocator.click();
16
+ }
17
+ async clear() {
18
+ await this._inputLocator.fill('');
19
+ }
20
+ async inputValue() {
21
+ return await this._inputLocator.inputValue();
22
+ }
23
+ inputElement() {
24
+ return this._inputLocator;
25
+ }
26
+ async getLabelText() {
27
+ let returnText = (await this._formFieldLocator.getByTestId(`form-field__${this._id}__label`).textContent()) || '';
28
+ returnText = returnText.replace(/\s+/g, ' ').trim();
29
+ return returnText;
30
+ }
31
+ }
32
+ export function createInputFieldControl(page, id) {
33
+ const inputFieldControl = new InputFieldControl(page, id);
34
+ const locator = page.getByTestId(`form-field__${id}`);
35
+ return new Proxy(inputFieldControl, {
36
+ get(target, prop, receiver) {
37
+ if (prop in target) {
38
+ return Reflect.get(target, prop, receiver);
39
+ }
40
+ const value = locator[prop];
41
+ if (typeof value === 'function') {
42
+ return value.bind(locator);
43
+ }
44
+ return value;
45
+ }
46
+ });
47
+ }
48
+ //# sourceMappingURL=InputFieldControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputFieldControl.js","sourceRoot":"","sources":["../../controls/InputFieldControl.ts"],"names":[],"mappings":"AAgBA,MAAM,OAAO,iBAAiB;IAK5B,YAAY,IAAU,EAAE,EAAU;QAChC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QAC/D,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,IAAU,EAAE,EAAU;IAC5D,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAEtD,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"}
@@ -1,6 +1,7 @@
1
1
  /** biome-ignore-all lint/suspicious/noExplicitAny: needed flexibility */
2
2
  import type { Locator } from '@playwright/test';
3
- export type ILookupDropdown = Locator & {
3
+ export type ILookupDropdown = Locator & ILookupDropdownCore;
4
+ export type ILookupDropdownCore = {
4
5
  lookupSelect(optionToSelect: string): Promise<void>;
5
6
  selectOption(optionText: string): Promise<void>;
6
7
  };
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"LookupDropdown.js","sourceRoot":"","sources":["../../controls/LookupDropdown.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AASxD,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"}
@@ -1 +1,4 @@
1
+ export * from './DateControl.js';
2
+ export * from './FormComboBox.js';
3
+ export * from './InputFieldControl.js';
1
4
  export * from './LookupDropdown.js';
@@ -1,2 +1,5 @@
1
+ export * from './DateControl.js';
2
+ export * from './FormComboBox.js';
3
+ export * from './InputFieldControl.js';
1
4
  export * from './LookupDropdown.js';
2
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../controls/index.ts"],"names":[],"mappings":"AAAA,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,qBAAqB,CAAC"}
@@ -1,8 +1,10 @@
1
1
  export declare enum KnownElementTypes {
2
- Input = "input",
2
+ Field = "field",
3
3
  Dropdown = "dropdown",
4
4
  Textarea = "textarea",
5
5
  Checkbox = "checkbox",
6
6
  Lookup = "lookup",
7
- Column = "column_cells"
7
+ Column = "column_cells",
8
+ ComboBox = "combo_box",
9
+ DatePicker = "date_picker"
8
10
  }
@@ -1,10 +1,12 @@
1
1
  export var KnownElementTypes;
2
2
  (function (KnownElementTypes) {
3
- KnownElementTypes["Input"] = "input";
3
+ KnownElementTypes["Field"] = "field";
4
4
  KnownElementTypes["Dropdown"] = "dropdown";
5
5
  KnownElementTypes["Textarea"] = "textarea";
6
6
  KnownElementTypes["Checkbox"] = "checkbox";
7
7
  KnownElementTypes["Lookup"] = "lookup";
8
8
  KnownElementTypes["Column"] = "column_cells";
9
+ KnownElementTypes["ComboBox"] = "combo_box";
10
+ KnownElementTypes["DatePicker"] = "date_picker";
9
11
  })(KnownElementTypes || (KnownElementTypes = {}));
10
12
  //# 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,4CAAuB,CAAA;AACzB,CAAC,EAPW,iBAAiB,KAAjB,iBAAiB,QAO5B"}
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,4CAAuB,CAAA;IACvB,2CAAsB,CAAA;IACtB,+CAA0B,CAAA;AAC5B,CAAC,EATW,iBAAiB,KAAjB,iBAAiB,QAS5B"}
@@ -16,7 +16,7 @@ export class UserSimulationHelper {
16
16
  const response = await this._page.request.get(`${this._serviceUrl}/account/api/usersimulation`);
17
17
  switch (response.status()) {
18
18
  case 204:
19
- console.error('User simulation not active', response.status());
19
+ console.info('User simulation not active', response.status());
20
20
  return '';
21
21
  case 200:
22
22
  return (await response.json()).simulated_user;
@@ -1 +1 @@
1
- {"version":3,"file":"UserSimulationHelper.js","sourceRoot":"","sources":["../../helpers/UserSimulationHelper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,OAAO,oBAAoB;IAI/B,YAAY,IAAU;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC,GAAG,CAAS,gCAAgC,CAAC,CAAC;QAElF,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QAExG,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAChC,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,gBAAgB;QAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,6BAA6B,CAAC,CAAC;QAEhG,QAAQ,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1B,KAAK,GAAG;gBACN,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC/D,OAAO,EAAE,CAAC;YACZ,KAAK,GAAG;gBACN,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,cAAc,CAAC;YAChD;gBACE,MAAM,IAAI,KAAK,CAAC,kDAAkD,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,cAAc;QACzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,6BAA6B,CAAC,CAAC;QAEnG,IAAI,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,4CAA4C,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAChF,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,+CAA+C,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;YAC7C,OAAO,EAAE,IAAK;YACd,QAAQ,EAAE,GAAG;YACb,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE;SAC/B,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,YAAY,CAAC,QAAgB;QACxC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,WAAW,6BAA6B,EAAE;YAChG,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,kBAAkB;aAC3B;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,cAAc,EAAE,QAAQ;aACzB,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,uCAAuC,EAAE,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACjF,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,0CAA0C,MAAM,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"UserSimulationHelper.js","sourceRoot":"","sources":["../../helpers/UserSimulationHelper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,OAAO,oBAAoB;IAI/B,YAAY,IAAU;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC,GAAG,CAAS,gCAAgC,CAAC,CAAC;QAElF,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QAExG,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAChC,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,gBAAgB;QAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,6BAA6B,CAAC,CAAC;QAEhG,QAAQ,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1B,KAAK,GAAG;gBACN,OAAO,CAAC,IAAI,CAAC,4BAA4B,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC9D,OAAO,EAAE,CAAC;YACZ,KAAK,GAAG;gBACN,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,cAAc,CAAC;YAChD;gBACE,MAAM,IAAI,KAAK,CAAC,kDAAkD,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,cAAc;QACzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,6BAA6B,CAAC,CAAC;QAEnG,IAAI,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,4CAA4C,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAChF,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,+CAA+C,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;YAC7C,OAAO,EAAE,IAAK;YACd,QAAQ,EAAE,GAAG;YACb,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE;SAC/B,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,YAAY,CAAC,QAAgB;QACxC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,WAAW,6BAA6B,EAAE;YAChG,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,kBAAkB;aAC3B;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,cAAc,EAAE,QAAQ;aACzB,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,uCAAuC,EAAE,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACjF,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,0CAA0C,MAAM,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;CACF"}
@@ -1,8 +1,10 @@
1
1
  export enum KnownElementTypes {
2
- Input = 'input',
2
+ Field = 'field',
3
3
  Dropdown = 'dropdown',
4
4
  Textarea = 'textarea',
5
5
  Checkbox = 'checkbox',
6
6
  Lookup = 'lookup',
7
- Column = 'column_cells'
7
+ Column = 'column_cells',
8
+ ComboBox = 'combo_box',
9
+ DatePicker = 'date_picker'
8
10
  }
@@ -25,7 +25,7 @@ export class UserSimulationHelper {
25
25
 
26
26
  switch (response.status()) {
27
27
  case 204:
28
- console.error('User simulation not active', response.status());
28
+ console.info('User simulation not active', response.status());
29
29
  return '';
30
30
  case 200:
31
31
  return (await response.json()).simulated_user;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thinkwise/testwise",
3
- "version": "0.2.7",
3
+ "version": "0.2.20",
4
4
  "main": "dist/index.js",
5
5
  "type": "module",
6
6
  "bin": {
@@ -9,8 +9,8 @@
9
9
  },
10
10
  "scripts": {
11
11
  "lint": "eslint ./ --cache --ignore-pattern .gitignore",
12
- "format:fix": "run-s \"lint --fix\" && biome check --fix --unsafe",
13
- "format:check": "run-s \"lint \" && biome check",
12
+ "format:fix": "npm run lint --fix && biome check --fix --unsafe",
13
+ "format:check": "npm run lint && biome check",
14
14
  "postinstall": "node scripts/main.js postinstall"
15
15
  },
16
16
  "keywords": [],
@@ -18,14 +18,15 @@
18
18
  "license": "ISC",
19
19
  "description": "",
20
20
  "dependencies": {
21
- "@thinkwise/backups": "^1.0.12",
21
+ "@thinkwise/backups": "^1.0.13",
22
22
  "@types/node": "^22.15.29",
23
23
  "axios": "^1.9.0",
24
24
  "chalk": "^5.4.1",
25
+ "change-case": "^5.4.4",
25
26
  "csv-parse": "^5.6.0",
26
27
  "dotenv": "^17.2.2",
27
28
  "playwright-bdd": "^8.4.2",
28
- "prettier": "^3.6.2",
29
+ "prettier": "^3.8.1",
29
30
  "prompts": "^2.4.2",
30
31
  "quicktype-core": "^23.2.6",
31
32
  "rimraf": "^6.0.1",
@@ -38,9 +39,8 @@
38
39
  "devDependencies": {
39
40
  "@biomejs/biome": "^2.3.8",
40
41
  "@eslint/js": "^9.28.0",
41
- "eslint": "^9.28.0",
42
+ "eslint": "^9.39.2",
42
43
  "eslint-plugin-playwright": "^2.2.0",
43
- "npm-run-all": "^4.1.5",
44
44
  "typescript-eslint": "^8.34.0"
45
45
  },
46
46
  "exports": {
@@ -23,7 +23,9 @@ export async function postinstall() {
23
23
 
24
24
  // eslint-disable-next-line @typescript-eslint/naming-convention
25
25
  const { SubjectRegistration } = await import('../dist/artifact-builder/index.js');
26
- new SubjectRegistration().run();
26
+ const subjectRegistration = new SubjectRegistration();
27
+ await subjectRegistration.resetSubjectRegistry();
28
+ await subjectRegistration.run();
27
29
 
28
30
  execSync('npx tsc', { cwd: rootDir, stdio: 'inherit' });
29
31