@thinkwise/testwise 0.2.16 → 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.
- package/artifact-builder/SubjectComponentGenerator.ts +46 -14
- package/artifact-builder/SubjectRegistration.ts +2 -2
- package/artifact-builder/helpers/NamingHandler.ts +5 -13
- package/components/export/ExportComponent.ts +1 -0
- package/controls/DateControl.ts +67 -0
- package/controls/FormComboBox.ts +6 -4
- package/controls/InputFieldControl.ts +79 -0
- package/controls/index.ts +2 -0
- package/dist/artifact-builder/SubjectComponentGenerator.js +30 -9
- package/dist/artifact-builder/SubjectComponentGenerator.js.map +1 -1
- package/dist/artifact-builder/helpers/NamingHandler.js +4 -12
- package/dist/artifact-builder/helpers/NamingHandler.js.map +1 -1
- package/dist/components/export/ExportComponent.js +1 -0
- package/dist/components/export/ExportComponent.js.map +1 -1
- package/dist/controls/DateControl.d.ts +25 -0
- package/dist/controls/DateControl.js +44 -0
- package/dist/controls/DateControl.js.map +1 -0
- package/dist/controls/FormComboBox.d.ts +0 -1
- package/dist/controls/FormComboBox.js +3 -1
- package/dist/controls/FormComboBox.js.map +1 -1
- package/dist/controls/InputFieldControl.d.ts +26 -0
- package/dist/controls/InputFieldControl.js +48 -0
- package/dist/controls/InputFieldControl.js.map +1 -0
- package/dist/controls/index.d.ts +2 -0
- package/dist/controls/index.js +2 -0
- package/dist/controls/index.js.map +1 -1
- package/dist/enums/ElementTypes.d.ts +3 -2
- package/dist/enums/ElementTypes.js +2 -1
- package/dist/enums/ElementTypes.js.map +1 -1
- package/enums/ElementTypes.ts +3 -2
- package/package.json +3 -3
- package/scripts/sync.js +1 -1
|
@@ -105,8 +105,8 @@ export class SubjectComponentGenerator {
|
|
|
105
105
|
gridGetters = this.generateGridGetters(propertyLines, componentName);
|
|
106
106
|
} else {
|
|
107
107
|
propertyDeclarations = this.generatePropertyDeclarations(propertyLines, componentName);
|
|
108
|
-
|
|
109
|
-
if (componentName === 'Form') {
|
|
108
|
+
|
|
109
|
+
if (componentName === 'Form') {
|
|
110
110
|
this.transformInterfaceTypes(componentFile);
|
|
111
111
|
}
|
|
112
112
|
|
|
@@ -180,13 +180,17 @@ export class SubjectComponentGenerator {
|
|
|
180
180
|
const property = line.split(':')[0].replace(/\?$/, '').trim();
|
|
181
181
|
const pageLocatorString = this._selectorBuilder.getPageLocatorString(property, componentName);
|
|
182
182
|
|
|
183
|
-
if (componentName === 'Form'
|
|
184
|
-
return ` this.${property} = createLookupDropdown(${pageLocatorString});`;
|
|
185
|
-
}
|
|
183
|
+
if (componentName === 'Form') {
|
|
184
|
+
if (property.endsWith('Lookup')) return ` this.${property} = createLookupDropdown(${pageLocatorString});`;
|
|
186
185
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
186
|
+
if (property.endsWith('DatePicker'))
|
|
187
|
+
return ` this.${property} = createDateControl(page, '${this._selectorBuilder.getElementId(property, componentName)}');`;
|
|
188
|
+
|
|
189
|
+
if (property.endsWith('ComboBox'))
|
|
190
|
+
return ` this.${property} = createFormComboBox(page, '${this._selectorBuilder.getElementId(property, componentName)}');`;
|
|
191
|
+
|
|
192
|
+
if (property.endsWith('Field'))
|
|
193
|
+
return ` this.${property} = createInputFieldControl(page, '${this._selectorBuilder.getElementId(property, componentName)}');`;
|
|
190
194
|
}
|
|
191
195
|
|
|
192
196
|
return ` this.${property} = ${pageLocatorString};`;
|
|
@@ -197,18 +201,36 @@ export class SubjectComponentGenerator {
|
|
|
197
201
|
private addImportsDynamically(componentFile: { content: string }): void {
|
|
198
202
|
const lookupType = 'ILookupDropdown';
|
|
199
203
|
const comboBoxType = 'IFormComboBox';
|
|
204
|
+
const inputFieldType = 'IInputFieldControl';
|
|
205
|
+
const datePickerType = 'IDateControl';
|
|
206
|
+
|
|
207
|
+
const inputFieldImport =
|
|
208
|
+
"import { createInputFieldControl, type IInputFieldControl } from '../../../../controls/InputFieldControl.js';";
|
|
209
|
+
|
|
200
210
|
const lookupImport =
|
|
201
211
|
"import { createLookupDropdown, type ILookupDropdown } from '../../../../controls/LookupDropdown.js';";
|
|
212
|
+
|
|
202
213
|
const comboBoxImport =
|
|
203
214
|
"import { createFormComboBox, type IFormComboBox } from '../../../../controls/FormComboBox.js';";
|
|
204
215
|
|
|
216
|
+
const datePickerImport =
|
|
217
|
+
"import { createDateControl, type IDateControl } from '../../../../controls/DateControl.js';";
|
|
218
|
+
|
|
205
219
|
if (componentFile.content.includes(lookupType) && !componentFile.content.includes(lookupImport)) {
|
|
206
220
|
componentFile.content = `${lookupImport}\n${componentFile.content}`;
|
|
207
|
-
}
|
|
208
|
-
|
|
221
|
+
}
|
|
222
|
+
|
|
209
223
|
if (componentFile.content.includes(comboBoxType) && !componentFile.content.includes(comboBoxImport)) {
|
|
210
224
|
componentFile.content = `${comboBoxImport}\n${componentFile.content}`;
|
|
211
225
|
}
|
|
226
|
+
|
|
227
|
+
if (componentFile.content.includes(inputFieldType) && !componentFile.content.includes(inputFieldImport)) {
|
|
228
|
+
componentFile.content = `${inputFieldImport}\n${componentFile.content}`;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
if (componentFile.content.includes(datePickerType) && !componentFile.content.includes(datePickerImport)) {
|
|
232
|
+
componentFile.content = `${datePickerImport}\n${componentFile.content}`;
|
|
233
|
+
}
|
|
212
234
|
}
|
|
213
235
|
|
|
214
236
|
private generatePropertyDeclarations(propertiesToConvert: string[], componentName: SubjectComponents): string {
|
|
@@ -224,6 +246,14 @@ export class SubjectComponentGenerator {
|
|
|
224
246
|
return ` ${property}: IFormComboBox;`;
|
|
225
247
|
}
|
|
226
248
|
|
|
249
|
+
if (componentName === 'Form' && property.endsWith('Field')) {
|
|
250
|
+
return ` ${property}: IInputFieldControl;`;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
if (componentName === 'Form' && property.endsWith('DatePicker')) {
|
|
254
|
+
return ` ${property}: IDateControl;`;
|
|
255
|
+
}
|
|
256
|
+
|
|
227
257
|
return ` ${property}: Locator;`;
|
|
228
258
|
})
|
|
229
259
|
.join('\n');
|
|
@@ -233,13 +263,15 @@ export class SubjectComponentGenerator {
|
|
|
233
263
|
const interfaceRegex = /export interface \w+ extends Form \{([\s\S]*?)\}/g;
|
|
234
264
|
|
|
235
265
|
const typeMapping: Record<string, string> = {
|
|
236
|
-
|
|
237
|
-
|
|
266
|
+
Lookup: 'ILookupDropdown',
|
|
267
|
+
ComboBox: 'IFormComboBox',
|
|
268
|
+
Field: 'IInputFieldControl',
|
|
269
|
+
DatePicker: 'IDateControl'
|
|
238
270
|
};
|
|
239
271
|
|
|
240
272
|
componentFile.content = componentFile.content.replace(interfaceRegex, (match, interfaceBody) => {
|
|
241
|
-
const propertyRegex = /(\w+(Lookup|ComboBox))\s*:\s*Locator;/g;
|
|
242
|
-
|
|
273
|
+
const propertyRegex = /(\w+(Lookup|ComboBox|Field|DatePicker))\s*:\s*Locator;/g;
|
|
274
|
+
|
|
243
275
|
const updatedBody = interfaceBody.replace(propertyRegex, (_match: string, propName: string, suffix: string) => {
|
|
244
276
|
const newType = typeMapping[suffix];
|
|
245
277
|
return `${propName}: ${newType};`;
|
|
@@ -27,11 +27,11 @@ export class SubjectRegistration {
|
|
|
27
27
|
const root = path.resolve(this._currentDirname, '../../');
|
|
28
28
|
const registryPath = path.join(root, 'page-extensions', 'SubjectRegistry.ts');
|
|
29
29
|
const templatePath = path.join(root, 'templates', 'SubjectRegistry.template.ts');
|
|
30
|
-
|
|
30
|
+
|
|
31
31
|
if (fs.existsSync(registryPath)) {
|
|
32
32
|
fs.rmSync(registryPath, { force: true });
|
|
33
33
|
}
|
|
34
|
-
|
|
34
|
+
|
|
35
35
|
if (fs.existsSync(templatePath)) {
|
|
36
36
|
fs.copyFileSync(templatePath, registryPath);
|
|
37
37
|
}
|
|
@@ -6,7 +6,7 @@ import type { ScreenComponents, SubjectComponents } from '../../types/Components
|
|
|
6
6
|
export class NamingHandler {
|
|
7
7
|
public getDefaultElementSuffixFromComponentType(componentType: SubjectComponents): KnownElementTypes {
|
|
8
8
|
const controlTypeMapping: Record<SubjectComponents, KnownElementTypes> = {
|
|
9
|
-
Form: KnownElementTypes.
|
|
9
|
+
Form: KnownElementTypes.Field,
|
|
10
10
|
Grid: KnownElementTypes.Column
|
|
11
11
|
};
|
|
12
12
|
|
|
@@ -20,7 +20,6 @@ export class NamingHandler {
|
|
|
20
20
|
controlType = controlType.toLowerCase();
|
|
21
21
|
|
|
22
22
|
const formDefaultSuffix: KnownElementTypes = this.getDefaultElementSuffixFromComponentType('Form');
|
|
23
|
-
const gridDefaultSuffix: KnownElementTypes = this.getDefaultElementSuffixFromComponentType('Grid');
|
|
24
23
|
|
|
25
24
|
const controlTypeMappingMatrix: Record<SubjectComponents, Record<string, KnownElementTypes>> = {
|
|
26
25
|
Form: {
|
|
@@ -28,24 +27,17 @@ export class NamingHandler {
|
|
|
28
27
|
phone_number: formDefaultSuffix,
|
|
29
28
|
suggestion_starts_with: formDefaultSuffix,
|
|
30
29
|
lookup_dropdown: KnownElementTypes.Lookup,
|
|
31
|
-
dropdown
|
|
30
|
+
dropdown: KnownElementTypes.Dropdown,
|
|
32
31
|
lookup: KnownElementTypes.Lookup,
|
|
33
32
|
checkbox: KnownElementTypes.Checkbox,
|
|
34
33
|
multiline: KnownElementTypes.Textarea,
|
|
35
34
|
combo: KnownElementTypes.ComboBox,
|
|
36
35
|
combo_box: KnownElementTypes.ComboBox,
|
|
36
|
+
date: KnownElementTypes.DatePicker,
|
|
37
|
+
date_picker: KnownElementTypes.DatePicker
|
|
37
38
|
},
|
|
38
39
|
Grid: {
|
|
39
|
-
|
|
40
|
-
phone_number: gridDefaultSuffix,
|
|
41
|
-
suggestion_starts_with: gridDefaultSuffix,
|
|
42
|
-
lookup_dropdown: gridDefaultSuffix,
|
|
43
|
-
dropdown : gridDefaultSuffix,
|
|
44
|
-
lookup: gridDefaultSuffix,
|
|
45
|
-
checkbox: gridDefaultSuffix,
|
|
46
|
-
multiline: gridDefaultSuffix,
|
|
47
|
-
combo: gridDefaultSuffix,
|
|
48
|
-
combo_box: gridDefaultSuffix
|
|
40
|
+
// Insert Grid-specific control type mappings here
|
|
49
41
|
}
|
|
50
42
|
};
|
|
51
43
|
|
|
@@ -26,6 +26,7 @@ export class ExportComponent {
|
|
|
26
26
|
public async selectColumns(columns: string[]): Promise<void> {
|
|
27
27
|
for (const column of columns) {
|
|
28
28
|
const checkbox = this._objects.selectColumnsCheckbox(column);
|
|
29
|
+
await this._page.waitForTimeout(100);
|
|
29
30
|
await checkbox.check();
|
|
30
31
|
}
|
|
31
32
|
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
/* biome-ignore-all lint/suspicious/noExplicitAny: reason42 */
|
|
3
|
+
import type { Locator, Page } from '@playwright/test';
|
|
4
|
+
|
|
5
|
+
export type IDateControl = Locator & IDateControlCore;
|
|
6
|
+
|
|
7
|
+
export type IDateControlCore = {
|
|
8
|
+
fill(value: string): Promise<void>;
|
|
9
|
+
clear(): Promise<void>;
|
|
10
|
+
inputValue(): Promise<string>;
|
|
11
|
+
inputElement(): Locator;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export class DateControl implements IDateControlCore {
|
|
15
|
+
private _dateFieldLocator: Locator;
|
|
16
|
+
private _inputLocator: Locator;
|
|
17
|
+
|
|
18
|
+
constructor(page: Page, id: string) {
|
|
19
|
+
this._dateFieldLocator = page.getByTestId(`form-field__${id}`);
|
|
20
|
+
this._inputLocator = this._dateFieldLocator.locator('input');
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Enter a date value in any common format (e.g., "MM/DD/YYYY", "YYYY-MM-DD", "DD-MM-YYYY").
|
|
25
|
+
* The method will extract the numbers and input them sequentially, allowing the date picker to format it correctly.
|
|
26
|
+
* For example, entering "01012025" will be interpreted as "01/01/2025".
|
|
27
|
+
* This approach provides flexibility in how dates can be entered while ensuring compatibility with various date picker implementations.
|
|
28
|
+
* @param value
|
|
29
|
+
*/
|
|
30
|
+
public async fill(value: string): Promise<void> {
|
|
31
|
+
const numbersOnlyValue = value.replace(/\D/g, '');
|
|
32
|
+
|
|
33
|
+
await this._inputLocator.focus();
|
|
34
|
+
await this._inputLocator.pressSequentially(numbersOnlyValue);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
public async clear(): Promise<void> {
|
|
38
|
+
await this._inputLocator.fill('');
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
public async inputValue(): Promise<string> {
|
|
42
|
+
return await this._inputLocator.inputValue();
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
public inputElement(): Locator {
|
|
46
|
+
return this._inputLocator;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export function createDateControl(page: Page, id: string): IDateControl {
|
|
51
|
+
const inputFieldControl = new DateControl(page, id);
|
|
52
|
+
const locator = page.getByTestId(`form-field__${id}`);
|
|
53
|
+
|
|
54
|
+
return new Proxy(inputFieldControl, {
|
|
55
|
+
get(target, prop, receiver) {
|
|
56
|
+
if (prop in target) {
|
|
57
|
+
return Reflect.get(target, prop, receiver);
|
|
58
|
+
}
|
|
59
|
+
const value = (locator as any)[prop];
|
|
60
|
+
|
|
61
|
+
if (typeof value === 'function') {
|
|
62
|
+
return value.bind(locator);
|
|
63
|
+
}
|
|
64
|
+
return value;
|
|
65
|
+
}
|
|
66
|
+
}) as unknown as IDateControl;
|
|
67
|
+
}
|
package/controls/FormComboBox.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
|
|
2
|
+
/* biome-ignore-all lint/suspicious/noExplicitAny: Reason42 */
|
|
3
3
|
import type { Locator, Page } from '@playwright/test';
|
|
4
4
|
|
|
5
5
|
export type IFormComboBox = Locator & IFormComboBoxCore;
|
|
@@ -21,7 +21,7 @@ class FormComboBox implements IFormComboBoxCore {
|
|
|
21
21
|
this._formFieldLocator = page.getByTestId(`form-field__${id}`);
|
|
22
22
|
this._autoCompleteMenu = page.getByTestId(`form-field__${id}__select__options-list`);
|
|
23
23
|
}
|
|
24
|
-
|
|
24
|
+
|
|
25
25
|
async selectOption(optionText: string): Promise<void> {
|
|
26
26
|
await this._formFieldLocator.locator('input').click();
|
|
27
27
|
|
|
@@ -47,7 +47,9 @@ class FormComboBox implements IFormComboBoxCore {
|
|
|
47
47
|
|
|
48
48
|
const optionToSelectLowercase = optionToSelect.toLowerCase();
|
|
49
49
|
|
|
50
|
-
await this._autoCompleteMenu
|
|
50
|
+
await this._autoCompleteMenu
|
|
51
|
+
.getByTestId(`form-field__${this._id}__select__${optionToSelectLowercase}__text`)
|
|
52
|
+
.click();
|
|
51
53
|
}
|
|
52
54
|
}
|
|
53
55
|
|
|
@@ -62,7 +64,7 @@ export function createFormComboBox(page: Page, id: string): IFormComboBox {
|
|
|
62
64
|
}
|
|
63
65
|
|
|
64
66
|
const value = (locator as any)[prop];
|
|
65
|
-
|
|
67
|
+
|
|
66
68
|
if (typeof value === 'function') {
|
|
67
69
|
return value.bind(locator);
|
|
68
70
|
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
/** biome-ignore-all lint/suspicious/noExplicitAny: reason42 */
|
|
3
|
+
import type { Locator, Page } from '@playwright/test';
|
|
4
|
+
|
|
5
|
+
export type IInputFieldControl = Locator & ICoreInputFieldControl;
|
|
6
|
+
|
|
7
|
+
export type ICoreInputFieldControl = {
|
|
8
|
+
getValidationMessage(): Promise<string>;
|
|
9
|
+
getLabelText(): Promise<string>;
|
|
10
|
+
fill(value: string): Promise<void>;
|
|
11
|
+
click(): Promise<void>;
|
|
12
|
+
clear(): Promise<void>;
|
|
13
|
+
inputValue(): Promise<string>;
|
|
14
|
+
inputElement(): Locator;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export class InputFieldControl implements ICoreInputFieldControl {
|
|
18
|
+
private _formFieldLocator: Locator;
|
|
19
|
+
private _inputLocator: Locator;
|
|
20
|
+
private _id: string;
|
|
21
|
+
|
|
22
|
+
constructor(page: Page, id: string) {
|
|
23
|
+
this._id = id;
|
|
24
|
+
this._formFieldLocator = page.getByTestId(`form-field__${id}`);
|
|
25
|
+
this._inputLocator = this._formFieldLocator.locator('input');
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
public async getValidationMessage(): Promise<string> {
|
|
29
|
+
await this._formFieldLocator.locator('.TooltipContainer p').waitFor({ state: 'visible' });
|
|
30
|
+
return await this._formFieldLocator.locator('.TooltipContainer p').innerText();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
public async fill(value: string): Promise<void> {
|
|
34
|
+
await this._inputLocator.fill(value);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
public async click(): Promise<void> {
|
|
38
|
+
await this._inputLocator.click();
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
public async clear(): Promise<void> {
|
|
42
|
+
await this._inputLocator.fill('');
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
public async inputValue(): Promise<string> {
|
|
46
|
+
return await this._inputLocator.inputValue();
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
public inputElement(): Locator {
|
|
50
|
+
return this._inputLocator;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
public async getLabelText(): Promise<string> {
|
|
54
|
+
let returnText = (await this._formFieldLocator.getByTestId(`form-field__${this._id}__label`).textContent()) || '';
|
|
55
|
+
|
|
56
|
+
returnText = returnText.replace(/\s+/g, ' ').trim();
|
|
57
|
+
|
|
58
|
+
return returnText;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export function createInputFieldControl(page: Page, id: string): IInputFieldControl {
|
|
63
|
+
const inputFieldControl = new InputFieldControl(page, id);
|
|
64
|
+
const locator = page.getByTestId(`form-field__${id}`);
|
|
65
|
+
|
|
66
|
+
return new Proxy(inputFieldControl, {
|
|
67
|
+
get(target, prop, receiver) {
|
|
68
|
+
if (prop in target) {
|
|
69
|
+
return Reflect.get(target, prop, receiver);
|
|
70
|
+
}
|
|
71
|
+
const value = (locator as any)[prop];
|
|
72
|
+
|
|
73
|
+
if (typeof value === 'function') {
|
|
74
|
+
return value.bind(locator);
|
|
75
|
+
}
|
|
76
|
+
return value;
|
|
77
|
+
}
|
|
78
|
+
}) as unknown as IInputFieldControl;
|
|
79
|
+
}
|
package/controls/index.ts
CHANGED
|
@@ -133,12 +133,15 @@ export class SubjectComponentGenerator {
|
|
|
133
133
|
.map((line) => {
|
|
134
134
|
const property = line.split(':')[0].replace(/\?$/, '').trim();
|
|
135
135
|
const pageLocatorString = this._selectorBuilder.getPageLocatorString(property, componentName);
|
|
136
|
-
if (componentName === 'Form'
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
136
|
+
if (componentName === 'Form') {
|
|
137
|
+
if (property.endsWith('Lookup'))
|
|
138
|
+
return ` this.${property} = createLookupDropdown(${pageLocatorString});`;
|
|
139
|
+
if (property.endsWith('DatePicker'))
|
|
140
|
+
return ` this.${property} = createDateControl(page, '${this._selectorBuilder.getElementId(property, componentName)}');`;
|
|
141
|
+
if (property.endsWith('ComboBox'))
|
|
142
|
+
return ` this.${property} = createFormComboBox(page, '${this._selectorBuilder.getElementId(property, componentName)}');`;
|
|
143
|
+
if (property.endsWith('Field'))
|
|
144
|
+
return ` this.${property} = createInputFieldControl(page, '${this._selectorBuilder.getElementId(property, componentName)}');`;
|
|
142
145
|
}
|
|
143
146
|
return ` this.${property} = ${pageLocatorString};`;
|
|
144
147
|
})
|
|
@@ -147,14 +150,24 @@ export class SubjectComponentGenerator {
|
|
|
147
150
|
addImportsDynamically(componentFile) {
|
|
148
151
|
const lookupType = 'ILookupDropdown';
|
|
149
152
|
const comboBoxType = 'IFormComboBox';
|
|
153
|
+
const inputFieldType = 'IInputFieldControl';
|
|
154
|
+
const datePickerType = 'IDateControl';
|
|
155
|
+
const inputFieldImport = "import { createInputFieldControl, type IInputFieldControl } from '../../../../controls/InputFieldControl.js';";
|
|
150
156
|
const lookupImport = "import { createLookupDropdown, type ILookupDropdown } from '../../../../controls/LookupDropdown.js';";
|
|
151
157
|
const comboBoxImport = "import { createFormComboBox, type IFormComboBox } from '../../../../controls/FormComboBox.js';";
|
|
158
|
+
const datePickerImport = "import { createDateControl, type IDateControl } from '../../../../controls/DateControl.js';";
|
|
152
159
|
if (componentFile.content.includes(lookupType) && !componentFile.content.includes(lookupImport)) {
|
|
153
160
|
componentFile.content = `${lookupImport}\n${componentFile.content}`;
|
|
154
161
|
}
|
|
155
162
|
if (componentFile.content.includes(comboBoxType) && !componentFile.content.includes(comboBoxImport)) {
|
|
156
163
|
componentFile.content = `${comboBoxImport}\n${componentFile.content}`;
|
|
157
164
|
}
|
|
165
|
+
if (componentFile.content.includes(inputFieldType) && !componentFile.content.includes(inputFieldImport)) {
|
|
166
|
+
componentFile.content = `${inputFieldImport}\n${componentFile.content}`;
|
|
167
|
+
}
|
|
168
|
+
if (componentFile.content.includes(datePickerType) && !componentFile.content.includes(datePickerImport)) {
|
|
169
|
+
componentFile.content = `${datePickerImport}\n${componentFile.content}`;
|
|
170
|
+
}
|
|
158
171
|
}
|
|
159
172
|
generatePropertyDeclarations(propertiesToConvert, componentName) {
|
|
160
173
|
return propertiesToConvert
|
|
@@ -166,6 +179,12 @@ export class SubjectComponentGenerator {
|
|
|
166
179
|
if (componentName === 'Form' && property.endsWith('ComboBox')) {
|
|
167
180
|
return ` ${property}: IFormComboBox;`;
|
|
168
181
|
}
|
|
182
|
+
if (componentName === 'Form' && property.endsWith('Field')) {
|
|
183
|
+
return ` ${property}: IInputFieldControl;`;
|
|
184
|
+
}
|
|
185
|
+
if (componentName === 'Form' && property.endsWith('DatePicker')) {
|
|
186
|
+
return ` ${property}: IDateControl;`;
|
|
187
|
+
}
|
|
169
188
|
return ` ${property}: Locator;`;
|
|
170
189
|
})
|
|
171
190
|
.join('\n');
|
|
@@ -173,11 +192,13 @@ export class SubjectComponentGenerator {
|
|
|
173
192
|
transformInterfaceTypes(componentFile) {
|
|
174
193
|
const interfaceRegex = /export interface \w+ extends Form \{([\s\S]*?)\}/g;
|
|
175
194
|
const typeMapping = {
|
|
176
|
-
|
|
177
|
-
|
|
195
|
+
Lookup: 'ILookupDropdown',
|
|
196
|
+
ComboBox: 'IFormComboBox',
|
|
197
|
+
Field: 'IInputFieldControl',
|
|
198
|
+
DatePicker: 'IDateControl'
|
|
178
199
|
};
|
|
179
200
|
componentFile.content = componentFile.content.replace(interfaceRegex, (match, interfaceBody) => {
|
|
180
|
-
const propertyRegex = /(\w+(Lookup|ComboBox))\s*:\s*Locator;/g;
|
|
201
|
+
const propertyRegex = /(\w+(Lookup|ComboBox|Field|DatePicker))\s*:\s*Locator;/g;
|
|
181
202
|
const updatedBody = interfaceBody.replace(propertyRegex, (_match, propName, suffix) => {
|
|
182
203
|
const newType = typeMapping[suffix];
|
|
183
204
|
return `${propName}: ${newType};`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubjectComponentGenerator.js","sourceRoot":"","sources":["../../artifact-builder/SubjectComponentGenerator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SubjectComponentGenerator.js","sourceRoot":"","sources":["../../artifact-builder/SubjectComponentGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { KnownElementTypes } from '../../enums/ElementTypes.js';
|
|
|
4
4
|
export class NamingHandler {
|
|
5
5
|
getDefaultElementSuffixFromComponentType(componentType) {
|
|
6
6
|
const controlTypeMapping = {
|
|
7
|
-
Form: KnownElementTypes.
|
|
7
|
+
Form: KnownElementTypes.Field,
|
|
8
8
|
Grid: KnownElementTypes.Column
|
|
9
9
|
};
|
|
10
10
|
return controlTypeMapping[componentType];
|
|
@@ -12,7 +12,6 @@ export class NamingHandler {
|
|
|
12
12
|
getElementSuffixFromControlTypeAndComponentType(controlType, componentType) {
|
|
13
13
|
controlType = controlType.toLowerCase();
|
|
14
14
|
const formDefaultSuffix = this.getDefaultElementSuffixFromComponentType('Form');
|
|
15
|
-
const gridDefaultSuffix = this.getDefaultElementSuffixFromComponentType('Grid');
|
|
16
15
|
const controlTypeMappingMatrix = {
|
|
17
16
|
Form: {
|
|
18
17
|
email: formDefaultSuffix,
|
|
@@ -25,18 +24,11 @@ export class NamingHandler {
|
|
|
25
24
|
multiline: KnownElementTypes.Textarea,
|
|
26
25
|
combo: KnownElementTypes.ComboBox,
|
|
27
26
|
combo_box: KnownElementTypes.ComboBox,
|
|
27
|
+
date: KnownElementTypes.DatePicker,
|
|
28
|
+
date_picker: KnownElementTypes.DatePicker
|
|
28
29
|
},
|
|
29
30
|
Grid: {
|
|
30
|
-
|
|
31
|
-
phone_number: gridDefaultSuffix,
|
|
32
|
-
suggestion_starts_with: gridDefaultSuffix,
|
|
33
|
-
lookup_dropdown: gridDefaultSuffix,
|
|
34
|
-
dropdown: gridDefaultSuffix,
|
|
35
|
-
lookup: gridDefaultSuffix,
|
|
36
|
-
checkbox: gridDefaultSuffix,
|
|
37
|
-
multiline: gridDefaultSuffix,
|
|
38
|
-
combo: gridDefaultSuffix,
|
|
39
|
-
combo_box: gridDefaultSuffix
|
|
31
|
+
// Insert Grid-specific control type mappings here
|
|
40
32
|
}
|
|
41
33
|
};
|
|
42
34
|
const componentMapping = controlTypeMappingMatrix[componentType];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NamingHandler.js","sourceRoot":"","sources":["../../../artifact-builder/helpers/NamingHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGhE,MAAM,OAAO,aAAa;IACjB,wCAAwC,CAAC,aAAgC;QAC9E,MAAM,kBAAkB,GAAiD;YACvE,IAAI,EAAE,iBAAiB,CAAC,KAAK;YAC7B,IAAI,EAAE,iBAAiB,CAAC,MAAM;SAC/B,CAAC;QAEF,OAAO,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC;IAEM,+CAA+C,CACpD,WAAmB,EACnB,aAAgC;QAEhC,WAAW,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;QAExC,MAAM,iBAAiB,GAAsB,IAAI,CAAC,wCAAwC,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"NamingHandler.js","sourceRoot":"","sources":["../../../artifact-builder/helpers/NamingHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -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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"}
|
|
@@ -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"}
|
|
@@ -21,7 +21,9 @@ class FormComboBox {
|
|
|
21
21
|
await this._formFieldLocator.locator('input').fill(optionToSelect);
|
|
22
22
|
await this._autoCompleteMenu.waitFor({ state: 'visible' });
|
|
23
23
|
const optionToSelectLowercase = optionToSelect.toLowerCase();
|
|
24
|
-
await this._autoCompleteMenu
|
|
24
|
+
await this._autoCompleteMenu
|
|
25
|
+
.getByTestId(`form-field__${this._id}__select__${optionToSelectLowercase}__text`)
|
|
26
|
+
.click();
|
|
25
27
|
}
|
|
26
28
|
}
|
|
27
29
|
export function createFormComboBox(page, id) {
|
|
@@ -1 +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,
|
|
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"}
|
package/dist/controls/index.d.ts
CHANGED
package/dist/controls/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../controls/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,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,9 +1,10 @@
|
|
|
1
1
|
export declare enum KnownElementTypes {
|
|
2
|
-
|
|
2
|
+
Field = "field",
|
|
3
3
|
Dropdown = "dropdown",
|
|
4
4
|
Textarea = "textarea",
|
|
5
5
|
Checkbox = "checkbox",
|
|
6
6
|
Lookup = "lookup",
|
|
7
7
|
Column = "column_cells",
|
|
8
|
-
ComboBox = "combo_box"
|
|
8
|
+
ComboBox = "combo_box",
|
|
9
|
+
DatePicker = "date_picker"
|
|
9
10
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
export var KnownElementTypes;
|
|
2
2
|
(function (KnownElementTypes) {
|
|
3
|
-
KnownElementTypes["
|
|
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
9
|
KnownElementTypes["ComboBox"] = "combo_box";
|
|
10
|
+
KnownElementTypes["DatePicker"] = "date_picker";
|
|
10
11
|
})(KnownElementTypes || (KnownElementTypes = {}));
|
|
11
12
|
//# sourceMappingURL=ElementTypes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ElementTypes.js","sourceRoot":"","sources":["../../enums/ElementTypes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,
|
|
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"}
|
package/enums/ElementTypes.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
export enum KnownElementTypes {
|
|
2
|
-
|
|
2
|
+
Field = 'field',
|
|
3
3
|
Dropdown = 'dropdown',
|
|
4
4
|
Textarea = 'textarea',
|
|
5
5
|
Checkbox = 'checkbox',
|
|
6
6
|
Lookup = 'lookup',
|
|
7
7
|
Column = 'column_cells',
|
|
8
|
-
ComboBox = 'combo_box'
|
|
8
|
+
ComboBox = 'combo_box',
|
|
9
|
+
DatePicker = 'date_picker'
|
|
9
10
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thinkwise/testwise",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.20",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"license": "ISC",
|
|
19
19
|
"description": "",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@thinkwise/backups": "^1.0.
|
|
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",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"csv-parse": "^5.6.0",
|
|
27
27
|
"dotenv": "^17.2.2",
|
|
28
28
|
"playwright-bdd": "^8.4.2",
|
|
29
|
-
"prettier": "^3.
|
|
29
|
+
"prettier": "^3.8.1",
|
|
30
30
|
"prompts": "^2.4.2",
|
|
31
31
|
"quicktype-core": "^23.2.6",
|
|
32
32
|
"rimraf": "^6.0.1",
|
package/scripts/sync.js
CHANGED
|
@@ -5,9 +5,9 @@ import fs from 'node:fs';
|
|
|
5
5
|
import path from 'node:path';
|
|
6
6
|
import process from 'node:process';
|
|
7
7
|
import { fileURLToPath } from 'node:url';
|
|
8
|
+
import { SubjectRegistration } from '../dist/artifact-builder/SubjectRegistration.js';
|
|
8
9
|
import { PathResolver } from '../dist/helpers/index.js';
|
|
9
10
|
import { indiciumApi } from '../dist/services/IndiciumApi.service.js';
|
|
10
|
-
import { SubjectRegistration } from '../dist/artifact-builder/SubjectRegistration.js';
|
|
11
11
|
|
|
12
12
|
// ============================================================================
|
|
13
13
|
// Constants & Configuration
|