complexqa_frontend_core 1.28.1 → 1.30.1
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/package.json +1 -1
- package/publish/api/api_abstract_element_class.js +35 -0
- package/publish/api/autotest_case_api.js +78 -0
- package/publish/api/autotest_result_api.js +17 -0
- package/publish/api/autotest_run_api.js +36 -0
- package/publish/api/autotest_step_api.js +88 -0
- package/publish/api/autotest_suite_api.js +17 -0
- package/publish/api/file_app_api.js +76 -0
- package/publish/api/index.js +16 -0
- package/publish/api/object_repository_element_api.js +17 -0
- package/publish/api/object_repository_folder_api.js +17 -0
- package/publish/api/object_repository_page_api.js +17 -0
- package/publish/app_configuration/menu_configuration_main.js +14 -0
- package/publish/app_configuration/table/helpers/table_element_models.js +16 -0
- package/publish/app_configuration/table/sections/autotest_case.js +73 -0
- package/publish/app_configuration/table/sections/autotest_result.js +59 -0
- package/publish/app_configuration/table/sections/autotest_run.js +66 -0
- package/publish/app_configuration/table/sections/autotest_step.js +82 -0
- package/publish/app_configuration/table/sections/autotest_suite.js +42 -0
- package/publish/app_configuration/table/sections/object_repository_element.js +59 -0
- package/publish/app_configuration/table/sections/object_repository_folder.js +41 -0
- package/publish/app_configuration/table/sections/object_repository_page.js +55 -0
- package/publish/app_configuration/table/sections/test_case_step.js +66 -66
- package/publish/app_configuration/table/table_configuration.js +16 -0
- package/publish/index.js +28 -0
- package/publish/services/FileAppService.js +48 -0
- package/publish/types/core/0_familyGeneralElement.js +43 -0
- package/publish/types/element_translate/typeAttachment.i18n.js +22 -11
- package/publish/types/element_translate/typeAutotestCase.i18n.js +95 -0
- package/publish/types/element_translate/typeAutotestResult.i18n.js +77 -0
- package/publish/types/element_translate/typeAutotestRun.i18n.js +110 -0
- package/publish/types/element_translate/typeAutotestStep.i18n.js +80 -0
- package/publish/types/element_translate/typeAutotestSuite.i18n.js +40 -0
- package/publish/types/element_translate/typeCustomProperty.i18n.js +21 -6
- package/publish/types/element_translate/typeCustomPropertyValue.i18n.js +21 -6
- package/publish/types/element_translate/typeFile.i18n.js +21 -15
- package/publish/types/element_translate/typeObjectRepositoryElement.i18n.js +92 -0
- package/publish/types/element_translate/typeObjectRepositoryFolder.i18n.js +62 -0
- package/publish/types/element_translate/typeObjectRepositoryPage.i18n.js +43 -0
- package/publish/types/element_translate/typeTagRelation.i18n.js +18 -0
- package/publish/types/element_translate/typeTestCase.i18n.js +414 -414
- package/publish/types/element_translate/typeTestCaseStep.i18n.js +179 -179
- package/publish/types/family_elements/0_familyGeneralElement.js +43 -0
- package/publish/types/family_elements/autotest_step_actions/autotestStepActionCatalog.js +54 -0
- package/publish/types/family_elements/autotest_step_actions/autotestStepLocatorKind.js +56 -0
- package/publish/types/family_elements/autotest_step_actions/autotestStepTargetNormalizer.js +134 -0
- package/publish/types/family_elements/autotest_step_actions/typeAutotestStepAction.js +35 -0
- package/publish/types/family_elements/autotest_step_actions/typeAutotestStepActionVariants.js +148 -0
- package/publish/types/family_elements/autotest_step_actions/typeAutotestStepLocatorAction.js +12 -0
- package/publish/types/family_elements/autotest_step_actions/typeAutotestStepLocatorValueAction.js +13 -0
- package/publish/types/family_elements/typeAttachment.js +1 -1
- package/publish/types/family_elements/typeAutotestCase.js +220 -0
- package/publish/types/family_elements/typeAutotestResult.js +81 -0
- package/publish/types/family_elements/typeAutotestRun.js +165 -0
- package/publish/types/family_elements/typeAutotestStep.js +297 -0
- package/publish/types/family_elements/typeAutotestStepTarget.js +50 -0
- package/publish/types/family_elements/typeAutotestSuite.js +74 -0
- package/publish/types/family_elements/typeCustomProperty.js +1 -1
- package/publish/types/family_elements/typeObjectRepositoryElement.js +88 -0
- package/publish/types/family_elements/typeObjectRepositoryFolder.js +81 -0
- package/publish/types/family_elements/typeObjectRepositoryPage.js +77 -0
- package/publish/types/family_elements/typeTestCase.js +5 -6
- package/publish/types/family_elements/typeTestCaseStep.js +2 -2
- package/publish/types/family_files/familyFile.js +2 -0
- package/publish/types/family_files/typeFileAutotestScreenshot.js +33 -0
- package/publish/types/family_files/typeFileFactory.js +3 -0
- package/publish/types/family_relation/typeCustomPropertyValue.js +7 -2
- package/publish/types/family_relation/typeTagRelation.js +30 -0
|
@@ -1,179 +1,179 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Переводы для typeTestCaseStep.
|
|
3
|
-
*
|
|
4
|
-
* @see typeTestCaseStep
|
|
5
|
-
*/
|
|
6
|
-
export const typeTestCaseStep_i18n = {
|
|
7
|
-
attribute_name_translate_matrix: {
|
|
8
|
-
en: {
|
|
9
|
-
test_case_step_id : 'ID',
|
|
10
|
-
test_case_step_type : 'Step type',
|
|
11
|
-
team_id : 'Team',
|
|
12
|
-
test_case_id : 'Test case',
|
|
13
|
-
sort_order : 'Sort order',
|
|
14
|
-
step_text : 'Text',
|
|
15
|
-
step_element : 'Element',
|
|
16
|
-
step_element_action : 'Element action',
|
|
17
|
-
|
|
18
|
-
},
|
|
19
|
-
ru: {
|
|
20
|
-
test_case_step_id : 'ID',
|
|
21
|
-
test_case_step_type : 'Тип',
|
|
22
|
-
team_id : 'Команда',
|
|
23
|
-
test_case_id : 'Тест кейс',
|
|
24
|
-
sort_order : 'Порядковый номер',
|
|
25
|
-
step_text : 'Текст',
|
|
26
|
-
step_element : 'Элемент',
|
|
27
|
-
step_element_action : 'Действие',
|
|
28
|
-
|
|
29
|
-
},
|
|
30
|
-
de: {
|
|
31
|
-
test_case_step_id : 'ID',
|
|
32
|
-
test_case_step_type : 'Schritttyp',
|
|
33
|
-
team_id : 'Team',
|
|
34
|
-
test_case_id : 'Testfall',
|
|
35
|
-
sort_order : 'Reihenfolge',
|
|
36
|
-
step_text : 'Text',
|
|
37
|
-
step_element : 'Element',
|
|
38
|
-
step_element_action : 'Elementaktion',
|
|
39
|
-
|
|
40
|
-
},
|
|
41
|
-
ar: {
|
|
42
|
-
test_case_step_id : 'ID',
|
|
43
|
-
test_case_step_type : 'نوع الخطوة',
|
|
44
|
-
team_id : 'الفريق',
|
|
45
|
-
test_case_id : 'حالة الاختبار',
|
|
46
|
-
sort_order : 'ترتيب الفرز',
|
|
47
|
-
step_text : 'النص',
|
|
48
|
-
step_element : 'العنصر',
|
|
49
|
-
step_element_action : 'إجراء العنصر',
|
|
50
|
-
|
|
51
|
-
},
|
|
52
|
-
es: {
|
|
53
|
-
test_case_step_id : 'ID',
|
|
54
|
-
test_case_step_type : 'Tipo de paso',
|
|
55
|
-
team_id : 'Equipo',
|
|
56
|
-
test_case_id : 'Caso de prueba',
|
|
57
|
-
sort_order : 'Orden',
|
|
58
|
-
step_text : 'Texto',
|
|
59
|
-
step_element : 'Elemento',
|
|
60
|
-
step_element_action : 'Acción del elemento',
|
|
61
|
-
|
|
62
|
-
},
|
|
63
|
-
fr: {
|
|
64
|
-
test_case_step_id : 'ID',
|
|
65
|
-
test_case_step_type : 'Type d\'étape',
|
|
66
|
-
team_id : 'Équipe',
|
|
67
|
-
test_case_id : 'Cas de test',
|
|
68
|
-
sort_order : 'Ordre',
|
|
69
|
-
step_text : 'Texte',
|
|
70
|
-
step_element : 'Élément',
|
|
71
|
-
step_element_action : 'Action sur l\'élément',
|
|
72
|
-
|
|
73
|
-
},
|
|
74
|
-
hy: {
|
|
75
|
-
test_case_step_id : 'ID',
|
|
76
|
-
test_case_step_type : 'Քայլի տեսակ',
|
|
77
|
-
team_id : 'Թիմ',
|
|
78
|
-
test_case_id : 'Թեստային դեպք',
|
|
79
|
-
sort_order : 'Կարգ',
|
|
80
|
-
step_text : 'Տեքստ',
|
|
81
|
-
step_element : 'Էլեմենտ',
|
|
82
|
-
step_element_action : 'Գործողություն',
|
|
83
|
-
|
|
84
|
-
},
|
|
85
|
-
it: {
|
|
86
|
-
test_case_step_id : 'ID',
|
|
87
|
-
test_case_step_type : 'Tipo di passo',
|
|
88
|
-
team_id : 'Team',
|
|
89
|
-
test_case_id : 'Caso di test',
|
|
90
|
-
sort_order : 'Ordine',
|
|
91
|
-
step_text : 'Testo',
|
|
92
|
-
step_element : 'Elemento',
|
|
93
|
-
step_element_action : 'Azione sull\'elemento',
|
|
94
|
-
|
|
95
|
-
},
|
|
96
|
-
pl: {
|
|
97
|
-
test_case_step_id : 'ID',
|
|
98
|
-
test_case_step_type : 'Typ kroku',
|
|
99
|
-
team_id : 'Zespół',
|
|
100
|
-
test_case_id : 'Przypadek testowy',
|
|
101
|
-
sort_order : 'Kolejność',
|
|
102
|
-
step_text : 'Tekst',
|
|
103
|
-
step_element : 'Element',
|
|
104
|
-
step_element_action : 'Akcja elementu',
|
|
105
|
-
|
|
106
|
-
},
|
|
107
|
-
pt: {
|
|
108
|
-
test_case_step_id : 'ID',
|
|
109
|
-
test_case_step_type : 'Tipo de passo',
|
|
110
|
-
team_id : 'Equipa',
|
|
111
|
-
test_case_id : 'Caso de teste',
|
|
112
|
-
sort_order : 'Ordem',
|
|
113
|
-
step_text : 'Texto',
|
|
114
|
-
step_element : 'Elemento',
|
|
115
|
-
step_element_action : 'Ação do elemento',
|
|
116
|
-
|
|
117
|
-
},
|
|
118
|
-
tt: {
|
|
119
|
-
test_case_step_id : 'ID',
|
|
120
|
-
test_case_step_type : 'Адым тибы',
|
|
121
|
-
team_id : 'Команд',
|
|
122
|
-
test_case_id : 'Тест очрагы',
|
|
123
|
-
sort_order : 'Тәртип',
|
|
124
|
-
step_text : 'Текст',
|
|
125
|
-
step_element : 'Элемент',
|
|
126
|
-
step_element_action : 'Элемент гамәлесе',
|
|
127
|
-
|
|
128
|
-
},
|
|
129
|
-
},
|
|
130
|
-
|
|
131
|
-
enum_value_translate_matrix: {
|
|
132
|
-
test_case_step_type: {
|
|
133
|
-
en: {
|
|
134
|
-
TEST_CASE_STEP : 'Step',
|
|
135
|
-
TEST_CASE_PRESTEP: 'Prestep',
|
|
136
|
-
},
|
|
137
|
-
ru: {
|
|
138
|
-
TEST_CASE_STEP : 'Шаг теста',
|
|
139
|
-
TEST_CASE_PRESTEP: 'Предварительный шаг',
|
|
140
|
-
},
|
|
141
|
-
de: {
|
|
142
|
-
TEST_CASE_STEP : 'Testschritt',
|
|
143
|
-
TEST_CASE_PRESTEP: 'Vorbereitungsschritt',
|
|
144
|
-
},
|
|
145
|
-
ar: {
|
|
146
|
-
TEST_CASE_STEP : 'خطوة الاختبار',
|
|
147
|
-
TEST_CASE_PRESTEP: 'خطوة تمهيدية',
|
|
148
|
-
},
|
|
149
|
-
es: {
|
|
150
|
-
TEST_CASE_STEP : 'Paso de prueba',
|
|
151
|
-
TEST_CASE_PRESTEP: 'Prepaso',
|
|
152
|
-
},
|
|
153
|
-
fr: {
|
|
154
|
-
TEST_CASE_STEP : 'Étape de test',
|
|
155
|
-
TEST_CASE_PRESTEP: 'Pré-étape',
|
|
156
|
-
},
|
|
157
|
-
hy: {
|
|
158
|
-
TEST_CASE_STEP : 'Թեստային քայլ',
|
|
159
|
-
TEST_CASE_PRESTEP: 'Նախապատրաստական քայլ',
|
|
160
|
-
},
|
|
161
|
-
it: {
|
|
162
|
-
TEST_CASE_STEP : 'Passo di test',
|
|
163
|
-
TEST_CASE_PRESTEP: 'Pre-passo',
|
|
164
|
-
},
|
|
165
|
-
pl: {
|
|
166
|
-
TEST_CASE_STEP : 'Krok testu',
|
|
167
|
-
TEST_CASE_PRESTEP: 'Krok wstępny',
|
|
168
|
-
},
|
|
169
|
-
pt: {
|
|
170
|
-
TEST_CASE_STEP : 'Passo de teste',
|
|
171
|
-
TEST_CASE_PRESTEP: 'Pré-passo',
|
|
172
|
-
},
|
|
173
|
-
tt: {
|
|
174
|
-
TEST_CASE_STEP : 'Тест адымы',
|
|
175
|
-
TEST_CASE_PRESTEP: 'Алдангы адым',
|
|
176
|
-
},
|
|
177
|
-
},
|
|
178
|
-
},
|
|
179
|
-
};
|
|
1
|
+
/**
|
|
2
|
+
* Переводы для typeTestCaseStep.
|
|
3
|
+
*
|
|
4
|
+
* @see typeTestCaseStep
|
|
5
|
+
*/
|
|
6
|
+
export const typeTestCaseStep_i18n = {
|
|
7
|
+
attribute_name_translate_matrix: {
|
|
8
|
+
en: {
|
|
9
|
+
test_case_step_id : 'ID',
|
|
10
|
+
test_case_step_type : 'Step type',
|
|
11
|
+
team_id : 'Team',
|
|
12
|
+
test_case_id : 'Test case',
|
|
13
|
+
sort_order : 'Sort order',
|
|
14
|
+
step_text : 'Text',
|
|
15
|
+
step_element : 'Element',
|
|
16
|
+
step_element_action : 'Element action',
|
|
17
|
+
step_expected_result: 'Expected result',
|
|
18
|
+
},
|
|
19
|
+
ru: {
|
|
20
|
+
test_case_step_id : 'ID',
|
|
21
|
+
test_case_step_type : 'Тип',
|
|
22
|
+
team_id : 'Команда',
|
|
23
|
+
test_case_id : 'Тест кейс',
|
|
24
|
+
sort_order : 'Порядковый номер',
|
|
25
|
+
step_text : 'Текст',
|
|
26
|
+
step_element : 'Элемент',
|
|
27
|
+
step_element_action : 'Действие',
|
|
28
|
+
step_expected_result: 'Ожидаемый результат',
|
|
29
|
+
},
|
|
30
|
+
de: {
|
|
31
|
+
test_case_step_id : 'ID',
|
|
32
|
+
test_case_step_type : 'Schritttyp',
|
|
33
|
+
team_id : 'Team',
|
|
34
|
+
test_case_id : 'Testfall',
|
|
35
|
+
sort_order : 'Reihenfolge',
|
|
36
|
+
step_text : 'Text',
|
|
37
|
+
step_element : 'Element',
|
|
38
|
+
step_element_action : 'Elementaktion',
|
|
39
|
+
step_expected_result: 'Erwartetes Ergebnis',
|
|
40
|
+
},
|
|
41
|
+
ar: {
|
|
42
|
+
test_case_step_id : 'ID',
|
|
43
|
+
test_case_step_type : 'نوع الخطوة',
|
|
44
|
+
team_id : 'الفريق',
|
|
45
|
+
test_case_id : 'حالة الاختبار',
|
|
46
|
+
sort_order : 'ترتيب الفرز',
|
|
47
|
+
step_text : 'النص',
|
|
48
|
+
step_element : 'العنصر',
|
|
49
|
+
step_element_action : 'إجراء العنصر',
|
|
50
|
+
step_expected_result: 'النتيجة المتوقعة',
|
|
51
|
+
},
|
|
52
|
+
es: {
|
|
53
|
+
test_case_step_id : 'ID',
|
|
54
|
+
test_case_step_type : 'Tipo de paso',
|
|
55
|
+
team_id : 'Equipo',
|
|
56
|
+
test_case_id : 'Caso de prueba',
|
|
57
|
+
sort_order : 'Orden',
|
|
58
|
+
step_text : 'Texto',
|
|
59
|
+
step_element : 'Elemento',
|
|
60
|
+
step_element_action : 'Acción del elemento',
|
|
61
|
+
step_expected_result: 'Resultado esperado',
|
|
62
|
+
},
|
|
63
|
+
fr: {
|
|
64
|
+
test_case_step_id : 'ID',
|
|
65
|
+
test_case_step_type : 'Type d\'étape',
|
|
66
|
+
team_id : 'Équipe',
|
|
67
|
+
test_case_id : 'Cas de test',
|
|
68
|
+
sort_order : 'Ordre',
|
|
69
|
+
step_text : 'Texte',
|
|
70
|
+
step_element : 'Élément',
|
|
71
|
+
step_element_action : 'Action sur l\'élément',
|
|
72
|
+
step_expected_result: 'Résultat attendu',
|
|
73
|
+
},
|
|
74
|
+
hy: {
|
|
75
|
+
test_case_step_id : 'ID',
|
|
76
|
+
test_case_step_type : 'Քայլի տեսակ',
|
|
77
|
+
team_id : 'Թիմ',
|
|
78
|
+
test_case_id : 'Թեստային դեպք',
|
|
79
|
+
sort_order : 'Կարգ',
|
|
80
|
+
step_text : 'Տեքստ',
|
|
81
|
+
step_element : 'Էլեմենտ',
|
|
82
|
+
step_element_action : 'Գործողություն',
|
|
83
|
+
step_expected_result: 'Սպասվող արդյունք',
|
|
84
|
+
},
|
|
85
|
+
it: {
|
|
86
|
+
test_case_step_id : 'ID',
|
|
87
|
+
test_case_step_type : 'Tipo di passo',
|
|
88
|
+
team_id : 'Team',
|
|
89
|
+
test_case_id : 'Caso di test',
|
|
90
|
+
sort_order : 'Ordine',
|
|
91
|
+
step_text : 'Testo',
|
|
92
|
+
step_element : 'Elemento',
|
|
93
|
+
step_element_action : 'Azione sull\'elemento',
|
|
94
|
+
step_expected_result: 'Risultato atteso',
|
|
95
|
+
},
|
|
96
|
+
pl: {
|
|
97
|
+
test_case_step_id : 'ID',
|
|
98
|
+
test_case_step_type : 'Typ kroku',
|
|
99
|
+
team_id : 'Zespół',
|
|
100
|
+
test_case_id : 'Przypadek testowy',
|
|
101
|
+
sort_order : 'Kolejność',
|
|
102
|
+
step_text : 'Tekst',
|
|
103
|
+
step_element : 'Element',
|
|
104
|
+
step_element_action : 'Akcja elementu',
|
|
105
|
+
step_expected_result: 'Oczekiwany wynik',
|
|
106
|
+
},
|
|
107
|
+
pt: {
|
|
108
|
+
test_case_step_id : 'ID',
|
|
109
|
+
test_case_step_type : 'Tipo de passo',
|
|
110
|
+
team_id : 'Equipa',
|
|
111
|
+
test_case_id : 'Caso de teste',
|
|
112
|
+
sort_order : 'Ordem',
|
|
113
|
+
step_text : 'Texto',
|
|
114
|
+
step_element : 'Elemento',
|
|
115
|
+
step_element_action : 'Ação do elemento',
|
|
116
|
+
step_expected_result: 'Resultado esperado',
|
|
117
|
+
},
|
|
118
|
+
tt: {
|
|
119
|
+
test_case_step_id : 'ID',
|
|
120
|
+
test_case_step_type : 'Адым тибы',
|
|
121
|
+
team_id : 'Команд',
|
|
122
|
+
test_case_id : 'Тест очрагы',
|
|
123
|
+
sort_order : 'Тәртип',
|
|
124
|
+
step_text : 'Текст',
|
|
125
|
+
step_element : 'Элемент',
|
|
126
|
+
step_element_action : 'Элемент гамәлесе',
|
|
127
|
+
step_expected_result: 'Көтелгән нәтиҗә',
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
|
|
131
|
+
enum_value_translate_matrix: {
|
|
132
|
+
test_case_step_type: {
|
|
133
|
+
en: {
|
|
134
|
+
TEST_CASE_STEP : 'Step',
|
|
135
|
+
TEST_CASE_PRESTEP: 'Prestep',
|
|
136
|
+
},
|
|
137
|
+
ru: {
|
|
138
|
+
TEST_CASE_STEP : 'Шаг теста',
|
|
139
|
+
TEST_CASE_PRESTEP: 'Предварительный шаг',
|
|
140
|
+
},
|
|
141
|
+
de: {
|
|
142
|
+
TEST_CASE_STEP : 'Testschritt',
|
|
143
|
+
TEST_CASE_PRESTEP: 'Vorbereitungsschritt',
|
|
144
|
+
},
|
|
145
|
+
ar: {
|
|
146
|
+
TEST_CASE_STEP : 'خطوة الاختبار',
|
|
147
|
+
TEST_CASE_PRESTEP: 'خطوة تمهيدية',
|
|
148
|
+
},
|
|
149
|
+
es: {
|
|
150
|
+
TEST_CASE_STEP : 'Paso de prueba',
|
|
151
|
+
TEST_CASE_PRESTEP: 'Prepaso',
|
|
152
|
+
},
|
|
153
|
+
fr: {
|
|
154
|
+
TEST_CASE_STEP : 'Étape de test',
|
|
155
|
+
TEST_CASE_PRESTEP: 'Pré-étape',
|
|
156
|
+
},
|
|
157
|
+
hy: {
|
|
158
|
+
TEST_CASE_STEP : 'Թեստային քայլ',
|
|
159
|
+
TEST_CASE_PRESTEP: 'Նախապատրաստական քայլ',
|
|
160
|
+
},
|
|
161
|
+
it: {
|
|
162
|
+
TEST_CASE_STEP : 'Passo di test',
|
|
163
|
+
TEST_CASE_PRESTEP: 'Pre-passo',
|
|
164
|
+
},
|
|
165
|
+
pl: {
|
|
166
|
+
TEST_CASE_STEP : 'Krok testu',
|
|
167
|
+
TEST_CASE_PRESTEP: 'Krok wstępny',
|
|
168
|
+
},
|
|
169
|
+
pt: {
|
|
170
|
+
TEST_CASE_STEP : 'Passo de teste',
|
|
171
|
+
TEST_CASE_PRESTEP: 'Pré-passo',
|
|
172
|
+
},
|
|
173
|
+
tt: {
|
|
174
|
+
TEST_CASE_STEP : 'Тест адымы',
|
|
175
|
+
TEST_CASE_PRESTEP: 'Алдангы адым',
|
|
176
|
+
},
|
|
177
|
+
},
|
|
178
|
+
},
|
|
179
|
+
};
|
|
@@ -342,6 +342,49 @@ export class familyGeneralElement
|
|
|
342
342
|
}
|
|
343
343
|
|
|
344
344
|
|
|
345
|
+
/**
|
|
346
|
+
* Mass create. Payload: `{ items: object[] }`.
|
|
347
|
+
*
|
|
348
|
+
* @param {object} payload
|
|
349
|
+
* @param {array} payload.items
|
|
350
|
+
* @param {typeFunctionCallback|object|false} callback
|
|
351
|
+
* @version v.1.0 (29/08/2026)
|
|
352
|
+
*/
|
|
353
|
+
async create_mass(payload, callback)
|
|
354
|
+
{
|
|
355
|
+
if (!this.api_key)
|
|
356
|
+
{
|
|
357
|
+
throw new Error('Error #249-2215 - element has no api_key');
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
if (typeof callback?.before === 'function')
|
|
361
|
+
{
|
|
362
|
+
callback?.before({ payload });
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
return ApiService[ this.api_key ].create_mass(payload).then((response) =>
|
|
366
|
+
{
|
|
367
|
+
if (typeof callback?.success === 'function')
|
|
368
|
+
{
|
|
369
|
+
callback?.success({ response, payload })
|
|
370
|
+
}
|
|
371
|
+
}).catch((error) =>
|
|
372
|
+
{
|
|
373
|
+
echo({ error });
|
|
374
|
+
if (typeof callback?.error === 'function')
|
|
375
|
+
{
|
|
376
|
+
callback?.error({ error, payload })
|
|
377
|
+
}
|
|
378
|
+
}).finally((response) =>
|
|
379
|
+
{
|
|
380
|
+
if (typeof callback?.final === 'function')
|
|
381
|
+
{
|
|
382
|
+
callback?.final({ response, payload })
|
|
383
|
+
}
|
|
384
|
+
});
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
|
|
345
388
|
/**
|
|
346
389
|
* Обновление целой модели элемента
|
|
347
390
|
*
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { AUTOTEST_STEP_ACTION_CLASSES } from './typeAutotestStepActionVariants.js';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
const CLASS_BY_NAME = {};
|
|
5
|
+
AUTOTEST_STEP_ACTION_CLASSES.forEach((ActionClass) =>
|
|
6
|
+
{
|
|
7
|
+
CLASS_BY_NAME[ ActionClass.action_name ] = ActionClass;
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Explicit ACTION catalog. New action = new class + this map + form + runner branch.
|
|
13
|
+
*
|
|
14
|
+
* @version v.1.0 (05/09/2026)
|
|
15
|
+
*/
|
|
16
|
+
export function get_autotest_step_action_class(action_name)
|
|
17
|
+
{
|
|
18
|
+
return CLASS_BY_NAME[ action_name ] || null;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* @param {string} action_name
|
|
24
|
+
* @returns {object|null}
|
|
25
|
+
*/
|
|
26
|
+
export function get_autotest_step_action_entry(action_name)
|
|
27
|
+
{
|
|
28
|
+
const ActionClass = get_autotest_step_action_class(action_name);
|
|
29
|
+
if (!ActionClass)
|
|
30
|
+
{
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return new ActionClass().catalog_entry();
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @returns {object[]}
|
|
40
|
+
*/
|
|
41
|
+
export function list_autotest_step_actions()
|
|
42
|
+
{
|
|
43
|
+
return AUTOTEST_STEP_ACTION_CLASSES.map((ActionClass) => new ActionClass().catalog_entry());
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* @param {string} action_name
|
|
49
|
+
* @returns {boolean}
|
|
50
|
+
*/
|
|
51
|
+
export function is_autotest_step_action_known(action_name)
|
|
52
|
+
{
|
|
53
|
+
return !!CLASS_BY_NAME[ action_name ];
|
|
54
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Explicit locator kinds. Same ids as PHP AutotestStepLocatorKind.
|
|
3
|
+
*
|
|
4
|
+
* @version v.1.0 (05/09/2026)
|
|
5
|
+
*/
|
|
6
|
+
export const AUTOTEST_STEP_LOCATOR_KINDS = [
|
|
7
|
+
'ROLE',
|
|
8
|
+
'LABEL',
|
|
9
|
+
'PLACEHOLDER',
|
|
10
|
+
'TESTID',
|
|
11
|
+
'TEXT',
|
|
12
|
+
'CSS',
|
|
13
|
+
'ID',
|
|
14
|
+
'NAME',
|
|
15
|
+
'XPATH',
|
|
16
|
+
'SELECTOR',
|
|
17
|
+
];
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Playwright getByRole names. Subset used in the Role select.
|
|
22
|
+
*
|
|
23
|
+
* @version v.1.0 (05/09/2026)
|
|
24
|
+
*/
|
|
25
|
+
export const AUTOTEST_STEP_PLAYWRIGHT_ROLES = [
|
|
26
|
+
'alert',
|
|
27
|
+
'alertdialog',
|
|
28
|
+
'button',
|
|
29
|
+
'checkbox',
|
|
30
|
+
'combobox',
|
|
31
|
+
'dialog',
|
|
32
|
+
'heading',
|
|
33
|
+
'img',
|
|
34
|
+
'link',
|
|
35
|
+
'list',
|
|
36
|
+
'listitem',
|
|
37
|
+
'menuitem',
|
|
38
|
+
'navigation',
|
|
39
|
+
'option',
|
|
40
|
+
'radio',
|
|
41
|
+
'searchbox',
|
|
42
|
+
'switch',
|
|
43
|
+
'tab',
|
|
44
|
+
'table',
|
|
45
|
+
'textbox',
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* @param {string} kind
|
|
51
|
+
* @returns {boolean}
|
|
52
|
+
*/
|
|
53
|
+
export function is_autotest_step_locator_kind(kind)
|
|
54
|
+
{
|
|
55
|
+
return AUTOTEST_STEP_LOCATOR_KINDS.indexOf(String(kind || '').toUpperCase()) !== -1;
|
|
56
|
+
}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { is_autotest_step_locator_kind, AUTOTEST_STEP_LOCATOR_KINDS } from './autotestStepLocatorKind.js';
|
|
2
|
+
import { is_object } from '../../../utils/utils.js';
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
const LEGACY_KIND_ORDER = [
|
|
6
|
+
[ 'selector', 'SELECTOR' ],
|
|
7
|
+
[ 'css', 'CSS' ],
|
|
8
|
+
[ 'id', 'ID' ],
|
|
9
|
+
[ 'name', 'NAME' ],
|
|
10
|
+
[ 'placeholder', 'PLACEHOLDER' ],
|
|
11
|
+
[ 'label', 'LABEL' ],
|
|
12
|
+
[ 'testid', 'TESTID' ],
|
|
13
|
+
[ 'role', 'ROLE' ],
|
|
14
|
+
[ 'accessible_name', 'TEXT' ],
|
|
15
|
+
[ 'text', 'TEXT' ],
|
|
16
|
+
[ 'xpath', 'XPATH' ],
|
|
17
|
+
];
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Canonical target: { kind, value, name? }. expected_value is a sibling of the locator in storage JSON.
|
|
22
|
+
*
|
|
23
|
+
* @version v.1.0 (05/09/2026)
|
|
24
|
+
*/
|
|
25
|
+
export function hydrate_autotest_step_target(decoded)
|
|
26
|
+
{
|
|
27
|
+
if (!decoded || !is_object(decoded))
|
|
28
|
+
{
|
|
29
|
+
return { target: null, expected_value: null };
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const copy = { ...decoded };
|
|
33
|
+
let expected_value = null;
|
|
34
|
+
if (Object.prototype.hasOwnProperty.call(copy, 'expected_value'))
|
|
35
|
+
{
|
|
36
|
+
if (copy.expected_value !== null && copy.expected_value !== '')
|
|
37
|
+
{
|
|
38
|
+
expected_value = String(copy.expected_value);
|
|
39
|
+
}
|
|
40
|
+
delete copy.expected_value;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return {
|
|
44
|
+
target : locator_from_decoded(copy),
|
|
45
|
+
expected_value: expected_value,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* @param {object|null} target
|
|
52
|
+
* @param {string|null} expected_value
|
|
53
|
+
* @returns {object|null}
|
|
54
|
+
*/
|
|
55
|
+
export function build_autotest_step_target_storage(target, expected_value)
|
|
56
|
+
{
|
|
57
|
+
const payload = {};
|
|
58
|
+
if (target && is_object(target))
|
|
59
|
+
{
|
|
60
|
+
const kind = String(target.kind || '').toUpperCase();
|
|
61
|
+
if (kind && is_autotest_step_locator_kind(kind))
|
|
62
|
+
{
|
|
63
|
+
payload.kind = kind;
|
|
64
|
+
payload.value = String(target.value ?? '');
|
|
65
|
+
if (target.name)
|
|
66
|
+
{
|
|
67
|
+
payload.name = String(target.name);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (expected_value !== null && expected_value !== undefined && expected_value !== '')
|
|
72
|
+
{
|
|
73
|
+
payload.expected_value = String(expected_value);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return Object.keys(payload).length ? payload : null;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* @param {object} decoded
|
|
82
|
+
* @returns {object|null}
|
|
83
|
+
*/
|
|
84
|
+
function locator_from_decoded(decoded)
|
|
85
|
+
{
|
|
86
|
+
const kind = String(decoded.kind || '').toUpperCase();
|
|
87
|
+
if (kind)
|
|
88
|
+
{
|
|
89
|
+
if (!is_autotest_step_locator_kind(kind))
|
|
90
|
+
{
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
const locator = {
|
|
94
|
+
kind : kind,
|
|
95
|
+
value: String(decoded.value ?? ''),
|
|
96
|
+
};
|
|
97
|
+
const name = decoded.name || decoded.accessible_name || '';
|
|
98
|
+
if (name)
|
|
99
|
+
{
|
|
100
|
+
locator.name = String(name);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return locator;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
for (let i = 0; i < LEGACY_KIND_ORDER.length; i++)
|
|
107
|
+
{
|
|
108
|
+
const key = LEGACY_KIND_ORDER[ i ][ 0 ];
|
|
109
|
+
const map = LEGACY_KIND_ORDER[ i ][ 1 ];
|
|
110
|
+
if (decoded[ key ] === undefined || decoded[ key ] === null || decoded[ key ] === '')
|
|
111
|
+
{
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
const locator = {
|
|
115
|
+
kind : map,
|
|
116
|
+
value: String(decoded[ key ]),
|
|
117
|
+
};
|
|
118
|
+
if (map === 'ROLE')
|
|
119
|
+
{
|
|
120
|
+
const name = decoded.accessible_name || decoded.text || '';
|
|
121
|
+
if (name)
|
|
122
|
+
{
|
|
123
|
+
locator.name = String(name);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
return locator;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
export { AUTOTEST_STEP_LOCATOR_KINDS };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base ACTION type. Shell (sort, clone, delete, timeout) lives on typeAutotestStep.
|
|
3
|
+
* Subclasses own only action fields and target rules.
|
|
4
|
+
*
|
|
5
|
+
* @version v.1.0 (05/09/2026)
|
|
6
|
+
*/
|
|
7
|
+
export class typeAutotestStepAction
|
|
8
|
+
{
|
|
9
|
+
static type_id = 'ACTION';
|
|
10
|
+
static action_name = '';
|
|
11
|
+
static group = 'page';
|
|
12
|
+
static value_need = 'unused';
|
|
13
|
+
static target_need = 'unused';
|
|
14
|
+
static has_expected_value = false;
|
|
15
|
+
static value_field_key = 'value_text';
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @returns {object}
|
|
20
|
+
*/
|
|
21
|
+
catalog_entry()
|
|
22
|
+
{
|
|
23
|
+
const ctor = this.constructor;
|
|
24
|
+
|
|
25
|
+
return {
|
|
26
|
+
type_id : ctor.action_name || ctor.type_id,
|
|
27
|
+
action_name : ctor.action_name,
|
|
28
|
+
group : ctor.group,
|
|
29
|
+
value_need : ctor.value_need,
|
|
30
|
+
target_need : ctor.target_need,
|
|
31
|
+
has_expected_value: ctor.has_expected_value,
|
|
32
|
+
value_field_key : ctor.value_field_key,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
}
|