complexqa_frontend_core 1.28.1 → 1.29.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/app_configuration/table/sections/test_case_step.js +66 -66
- package/publish/types/core/0_familyGeneralElement.js +43 -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/typeTestCase.js +5 -6
- package/publish/types/family_elements/typeTestCaseStep.js +2 -2
package/package.json
CHANGED
|
@@ -69,6 +69,41 @@ export class ApiAbstractElementClass extends ApiAbstractClass
|
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
|
|
72
|
+
/**
|
|
73
|
+
* Mass create. Payload: `{ items: object[] }`.
|
|
74
|
+
* Backend implements this per module; test_case is the first.
|
|
75
|
+
*
|
|
76
|
+
* @version v.1.0 (29/08/2026)
|
|
77
|
+
* @param payload
|
|
78
|
+
*/
|
|
79
|
+
async create_mass(payload)
|
|
80
|
+
{
|
|
81
|
+
if (!this.module_prefix)
|
|
82
|
+
{
|
|
83
|
+
throw new Error('Error #10-1152 in ApiAbstractClass');
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
if (this.stage === 'development')
|
|
87
|
+
{
|
|
88
|
+
return {
|
|
89
|
+
response: payload,
|
|
90
|
+
payload : payload
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
let url = `/${ this.api_prefix }/${ this.module_prefix }/create_mass`;
|
|
95
|
+
|
|
96
|
+
payload = this.handle_request_payload(payload);
|
|
97
|
+
let response = this.api_request(url, payload);
|
|
98
|
+
response = this.handle_response(response, false);
|
|
99
|
+
|
|
100
|
+
return {
|
|
101
|
+
response: response,
|
|
102
|
+
payload : payload
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
|
|
72
107
|
/**
|
|
73
108
|
*
|
|
74
109
|
* @version v.0.1 (08/03/2026)
|
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
import { typeTestCaseStep } from '../../../types/family_elements/typeTestCaseStep.js';
|
|
2
|
-
import { UserService } from '../../../services/UserService.js';
|
|
3
|
-
import { createColumn } from '../helpers/column_factory.js';
|
|
4
|
-
import { createListingFor, registerSection } from '../helpers/section_registry.js';
|
|
5
|
-
import { typeTableColumn } from '../../../types/family_service/typeTableColumn.js';
|
|
6
|
-
|
|
7
|
-
function build_test_case_step_shared_columns(locale)
|
|
8
|
-
{
|
|
9
|
-
const model = new typeTestCaseStep();
|
|
10
|
-
|
|
11
|
-
return [
|
|
12
|
-
createColumn(model, locale, 'sort_order', {
|
|
13
|
-
width : '150',
|
|
14
|
-
sort_order : '0',
|
|
15
|
-
default_sort: 'asc',
|
|
16
|
-
is_editable : true,
|
|
17
|
-
}),
|
|
18
|
-
createColumn(model, locale, 'step_element', { width: '200', is_editable: true }),
|
|
19
|
-
createColumn(model, locale, 'step_element_action', { width: '200', is_editable: true }),
|
|
20
|
-
createColumn(model, locale, '
|
|
21
|
-
width : '480',
|
|
22
|
-
is_editable: true,
|
|
23
|
-
is_title : true,
|
|
24
|
-
}),
|
|
25
|
-
new typeTableColumn({
|
|
26
|
-
header_name : '',
|
|
27
|
-
field : 'test_case_step_id',
|
|
28
|
-
width : '80',
|
|
29
|
-
sort_order : '99',
|
|
30
|
-
is_sortable : false,
|
|
31
|
-
is_filter : false,
|
|
32
|
-
is_editable : false,
|
|
33
|
-
column_kind : 'sort_action',
|
|
34
|
-
}),
|
|
35
|
-
];
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
function build_test_case_steps_columns(locale)
|
|
39
|
-
{
|
|
40
|
-
return build_test_case_step_shared_columns(locale);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
function build_test_case_presteps_columns(locale)
|
|
44
|
-
{
|
|
45
|
-
return build_test_case_step_shared_columns(locale);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Секции `test_case_step`: `steps`, `presteps` (шаги и престепы тест-кейса).
|
|
50
|
-
*
|
|
51
|
-
* @param {Object<string, Object<string, { config: import('../../../types/family_service/typeTableConfiguration.js').typeTableConfiguration }>>} config
|
|
52
|
-
* @returns {void}
|
|
53
|
-
*/
|
|
54
|
-
export function bootstrap_test_case_step(config)
|
|
55
|
-
{
|
|
56
|
-
const locale = UserService.get_current_language();
|
|
57
|
-
const embedded_for = createListingFor([ 'test_case_id', 'test_case_step_type' ]);
|
|
58
|
-
|
|
59
|
-
registerSection(config, 'test_case_step', 'steps', build_test_case_steps_columns(locale), {
|
|
60
|
-
for: embedded_for,
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
registerSection(config, 'test_case_step', 'presteps', build_test_case_presteps_columns(locale), {
|
|
64
|
-
for: embedded_for,
|
|
65
|
-
});
|
|
66
|
-
}
|
|
1
|
+
import { typeTestCaseStep } from '../../../types/family_elements/typeTestCaseStep.js';
|
|
2
|
+
import { UserService } from '../../../services/UserService.js';
|
|
3
|
+
import { createColumn } from '../helpers/column_factory.js';
|
|
4
|
+
import { createListingFor, registerSection } from '../helpers/section_registry.js';
|
|
5
|
+
import { typeTableColumn } from '../../../types/family_service/typeTableColumn.js';
|
|
6
|
+
|
|
7
|
+
function build_test_case_step_shared_columns(locale)
|
|
8
|
+
{
|
|
9
|
+
const model = new typeTestCaseStep();
|
|
10
|
+
|
|
11
|
+
return [
|
|
12
|
+
createColumn(model, locale, 'sort_order', {
|
|
13
|
+
width : '150',
|
|
14
|
+
sort_order : '0',
|
|
15
|
+
default_sort: 'asc',
|
|
16
|
+
is_editable : true,
|
|
17
|
+
}),
|
|
18
|
+
createColumn(model, locale, 'step_element', { width: '200', is_editable: true }),
|
|
19
|
+
createColumn(model, locale, 'step_element_action', { width: '200', is_editable: true }),
|
|
20
|
+
createColumn(model, locale, 'step_expected_result', {
|
|
21
|
+
width : '480',
|
|
22
|
+
is_editable: true,
|
|
23
|
+
is_title : true,
|
|
24
|
+
}),
|
|
25
|
+
new typeTableColumn({
|
|
26
|
+
header_name : '',
|
|
27
|
+
field : 'test_case_step_id',
|
|
28
|
+
width : '80',
|
|
29
|
+
sort_order : '99',
|
|
30
|
+
is_sortable : false,
|
|
31
|
+
is_filter : false,
|
|
32
|
+
is_editable : false,
|
|
33
|
+
column_kind : 'sort_action',
|
|
34
|
+
}),
|
|
35
|
+
];
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function build_test_case_steps_columns(locale)
|
|
39
|
+
{
|
|
40
|
+
return build_test_case_step_shared_columns(locale);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function build_test_case_presteps_columns(locale)
|
|
44
|
+
{
|
|
45
|
+
return build_test_case_step_shared_columns(locale);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Секции `test_case_step`: `steps`, `presteps` (шаги и престепы тест-кейса).
|
|
50
|
+
*
|
|
51
|
+
* @param {Object<string, Object<string, { config: import('../../../types/family_service/typeTableConfiguration.js').typeTableConfiguration }>>} config
|
|
52
|
+
* @returns {void}
|
|
53
|
+
*/
|
|
54
|
+
export function bootstrap_test_case_step(config)
|
|
55
|
+
{
|
|
56
|
+
const locale = UserService.get_current_language();
|
|
57
|
+
const embedded_for = createListingFor([ 'test_case_id', 'test_case_step_type' ]);
|
|
58
|
+
|
|
59
|
+
registerSection(config, 'test_case_step', 'steps', build_test_case_steps_columns(locale), {
|
|
60
|
+
for: embedded_for,
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
registerSection(config, 'test_case_step', 'presteps', build_test_case_presteps_columns(locale), {
|
|
64
|
+
for: embedded_for,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
@@ -418,6 +418,49 @@ export class familyGeneralElement
|
|
|
418
418
|
}
|
|
419
419
|
|
|
420
420
|
|
|
421
|
+
/**
|
|
422
|
+
* Mass create. Payload: `{ items: object[] }`.
|
|
423
|
+
*
|
|
424
|
+
* @param {object} payload
|
|
425
|
+
* @param {array} payload.items
|
|
426
|
+
* @param {typeFunctionCallback|object|false} callback
|
|
427
|
+
* @version v.1.0 (29/08/2026)
|
|
428
|
+
*/
|
|
429
|
+
async create_mass(payload, callback)
|
|
430
|
+
{
|
|
431
|
+
if (!this.api_key)
|
|
432
|
+
{
|
|
433
|
+
throw new Error('Error #249-2215 - element has no api_key');
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
if (typeof callback?.before === 'function')
|
|
437
|
+
{
|
|
438
|
+
callback?.before({ payload });
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
return ApiService[ this.api_key ].create_mass(payload).then((response) =>
|
|
442
|
+
{
|
|
443
|
+
if (typeof callback?.success === 'function')
|
|
444
|
+
{
|
|
445
|
+
callback?.success({ response, payload })
|
|
446
|
+
}
|
|
447
|
+
}).catch((error) =>
|
|
448
|
+
{
|
|
449
|
+
echo({ error });
|
|
450
|
+
if (typeof callback?.error === 'function')
|
|
451
|
+
{
|
|
452
|
+
callback?.error({ error, payload })
|
|
453
|
+
}
|
|
454
|
+
}).finally((response) =>
|
|
455
|
+
{
|
|
456
|
+
if (typeof callback?.final === 'function')
|
|
457
|
+
{
|
|
458
|
+
callback?.final({ response, payload })
|
|
459
|
+
}
|
|
460
|
+
});
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
|
|
421
464
|
/**
|
|
422
465
|
* Обновление целой модели элемента
|
|
423
466
|
*
|