1
1
/**
2
2
* Pick the field type in the inputs modal.
3
- *
3
+ *
4
4
* @param {import("@playwright/test").Page } page - The page object to interact with the web page.
5
5
* @param {string } fieldType The field type.
6
6
*/
7
- export async function pickFieldTypeInModal ( page , fieldType ) {
8
- await page . locator ( `.ppom-fields-name-model .ppom-field-item[data-field-type="${ fieldType } "]` ) . click ( ) ;
7
+ export async function pickFieldTypeInModal ( page , fieldType ) {
8
+ await page
9
+ . locator (
10
+ `.ppom-fields-name-model .ppom-field-item[data-field-type="${ fieldType } "]` ,
11
+ )
12
+ . click ( ) ;
13
+ }
14
+
15
+ /**
16
+ * Open the Field Edit Modal.
17
+ *
18
+ * @param {import("@playwright/test").Page } page
19
+ * @param {string|number } modelId
20
+ */
21
+ export async function openFieldEditModal ( page , modelId ) {
22
+ await page . locator ( `#ppom_sort_id_${ modelId } .ppom-edit-field` ) . click ( ) ;
9
23
}
10
24
11
25
/**
@@ -17,106 +31,148 @@ export async function pickFieldTypeInModal( page, fieldType ) {
17
31
* @returns {Promise<string> } The base name of the created fields.
18
32
*/
19
33
export async function createSimpleGroupField ( admin , page , fieldsNumber = 2 ) {
20
-
21
- await admin . visitAdminPage ( 'admin.php?page=ppom' ) ;
34
+ await admin . visitAdminPage ( "admin.php?page=ppom" ) ;
22
35
23
- await page . getByRole ( ' link' , { name : ' Add New Group' } ) . click ( ) ;
24
- await page . getByRole ( ' textbox' ) . fill ( ' Test Group Field' ) ;
36
+ await page . getByRole ( " link" , { name : " Add New Group" } ) . click ( ) ;
37
+ await page . getByRole ( " textbox" ) . fill ( " Test Group Field" ) ;
25
38
26
- const randomNumber = Math . floor ( Math . random ( ) * 1000 ) ;
39
+ const randomNumber = Math . floor ( Math . random ( ) * 1000 ) ;
27
40
28
- for ( let i = 1 ; i <= fieldsNumber ; i ++ ) {
29
- await addNewField ( page ) ;
30
- await pickFieldTypeInModal ( page , 'text' ) ;
31
- await fillFieldNameAndId ( page , i , `test ${ randomNumber + i - 1 } ` , `test_${ randomNumber + i - 1 } ` )
32
- await saveFieldInModal ( page , i ) ;
33
- }
41
+ for ( let i = 1 ; i <= fieldsNumber ; i ++ ) {
42
+ await addNewField ( page ) ;
43
+ await pickFieldTypeInModal ( page , "text" ) ;
44
+ await fillFieldNameAndId (
45
+ page ,
46
+ i ,
47
+ `test ${ randomNumber + i - 1 } ` ,
48
+ `test_${ randomNumber + i - 1 } ` ,
49
+ ) ;
50
+ await saveFieldInModal ( page , i ) ;
51
+ }
34
52
35
- await saveFields ( page ) ;
36
- return `test ${ randomNumber } ` ;
53
+ await saveFields ( page ) ;
54
+ return `test ${ randomNumber } ` ;
37
55
}
38
56
39
57
/**
40
58
* Fill the `Title` (fieldName) and `Data name` (fieldId) on field edit modal.
41
- *
59
+ *
42
60
* @param {import("@playwright/test").Page } page The page.
43
61
* @param {string|number } modelId The input field model id.
44
62
* @param {string } name The field display name.
45
63
* @param {string } id The field ID.
46
64
*/
47
65
export async function fillFieldNameAndId ( page , modelId , name , id ) {
48
- await page . locator ( `input[name="ppom\\[${ modelId } \\]\\[title\\]"]` ) . fill ( name ) ;
49
- await page . locator ( `input[name="ppom\\[${ modelId } \\]\\[data_name\\]"]` ) . fill ( id ) ;
66
+ await page
67
+ . locator ( `input[name="ppom\\[${ modelId } \\]\\[title\\]"]` )
68
+ . fill ( name ) ;
69
+ await page
70
+ . locator ( `input[name="ppom\\[${ modelId } \\]\\[data_name\\]"]` )
71
+ . fill ( id ) ;
50
72
}
51
73
52
74
/**
53
75
* Fill the option name and id on field edit modal.
54
- *
76
+ *
55
77
* @param {import("@playwright/test").Page } page The page.
56
78
* @param {string|number } modelId The model ID.
57
79
* @param {string|number } optionId The option ID.
58
80
* @param {string } name The option display name.
59
81
* @param {string|number } value The option value.
60
82
*/
61
- export async function fillOptionNameAndValue ( page , modelId , optionId , name , value ) {
62
- await page . locator ( `input[name="ppom\\[${ modelId } \\]\\[options\\]\\[${ optionId } \\]\\[option\\]"]` ) . fill ( name ) ;
63
- await page . locator ( `input[name="ppom\\[${ modelId } \\]\\[options\\]\\[${ optionId } \\]\\[id\\]"]` ) . fill ( value ) ;
83
+ export async function fillOptionNameAndValue (
84
+ page ,
85
+ modelId ,
86
+ optionId ,
87
+ name ,
88
+ value ,
89
+ ) {
90
+ await page
91
+ . locator (
92
+ `input[name="ppom\\[${ modelId } \\]\\[options\\]\\[${ optionId } \\]\\[option\\]"]` ,
93
+ )
94
+ . fill ( name ) ;
95
+ await page
96
+ . locator (
97
+ `input[name="ppom\\[${ modelId } \\]\\[options\\]\\[${ optionId } \\]\\[id\\]"]` ,
98
+ )
99
+ . fill ( value ) ;
64
100
}
65
101
66
102
/**
67
103
* Enable the condition in field edit modal.
68
- *
104
+ *
69
105
* @param {import("@playwright/test").Page } page The page.
70
106
* @param {string|number } The input field model id.
71
107
*/
72
108
export async function enableConditionsInModal ( page , modelId ) {
73
- await page . locator ( `input[name="ppom[${ modelId } ][logic]"] + span` ) . click ( ) ;
109
+ await page . locator ( `input[name="ppom[${ modelId } ][logic]"] + span` ) . click ( ) ;
74
110
}
75
111
76
112
/**
77
- * Open the field edit modal.
78
- *
113
+ * Switch to Conditions tab in field edit modal.
114
+ *
79
115
* @param {import("@playwright/test").Page } page The page.
80
116
* @param {string|number } modelId The input field model id.
81
117
*/
82
118
export async function switchToConditionsModalTab ( page , modelId ) {
83
- await page . locator ( `#ppom_field_model_${ modelId } #condition_tab` ) . click ( ) ;
119
+ await page . locator ( `#ppom_field_model_${ modelId } #condition_tab` ) . click ( ) ;
120
+ }
121
+
122
+ /**
123
+ * Switch to Options tab in field edit modal.
124
+ *
125
+ * @param {import("@playwright/test").Page } page The page.
126
+ * @param {string|number } modelId The input field model id.
127
+ */
128
+ export async function switchToOptionsModalTab ( page , modelId ) {
129
+ await page
130
+ . locator ( `#ppom_field_model_${ modelId } ` )
131
+ . getByText ( "Add Options" , { exact : true } )
132
+ . click ( ) ;
84
133
}
85
134
86
135
/**
87
136
* Add a new option below the last option in the field edit modal.
88
- *
137
+ *
89
138
* @param {import("@playwright/test").Page } page The page.
90
139
* @param {string|number } modelId The input field model id.
91
140
*/
92
141
export async function addNewOptionInModal ( page , modelId ) {
93
- await page . locator ( `#ppom_field_model_${ modelId } button.ppom-add-option` ) . last ( ) . click ( ) ;
142
+ await page
143
+ . locator ( `#ppom_field_model_${ modelId } button.ppom-add-option` )
144
+ . last ( )
145
+ . click ( ) ;
94
146
}
95
147
96
148
/**
97
149
* Save the fields of group input fields.
98
- *
99
- * @param {import("@playwright/test").Page } page The page.
150
+ *
151
+ * @param {import("@playwright/test").Page } page The page.
100
152
*/
101
153
export async function saveFields ( page ) {
102
- await page . getByRole ( ' button' , { name : ' Save Fields' } ) . click ( ) ;
154
+ await page . getByRole ( " button" , { name : " Save Fields" } ) . click ( ) ;
103
155
}
104
156
105
157
/**
106
158
* Open the modal for adding a new input field.
107
- *
108
- * @param {import("@playwright/test").Page } page The page.
159
+ *
160
+ * @param {import("@playwright/test").Page } page The page.
109
161
*/
110
162
export async function addNewField ( page ) {
111
- await page . getByRole ( ' button' , { name : ' Add field' } ) . click ( ) ;
163
+ await page . getByRole ( " button" , { name : " Add field" } ) . click ( ) ;
112
164
}
113
165
114
166
/**
115
167
* Save the option field in the field edit modal.
116
- *
168
+ *
117
169
* @param {import("@playwright/test").Page } page The page.
118
170
* @param {string|number } modelId The input field model id.
119
171
*/
120
172
export async function saveFieldInModal ( page , modelId ) {
121
- await page . locator ( `.ppom_sort_id_${ modelId } :is(.ppom-add-field, .ppom-update-field)` ) . click ( ) ;
122
- }
173
+ await page
174
+ . locator (
175
+ `.ppom_sort_id_${ modelId } :is(.ppom-add-field, .ppom-update-field)` ,
176
+ )
177
+ . click ( ) ;
178
+ }
0 commit comments