@open-mercato/core 0.4.5-develop-2e9903a57a → 0.4.5-develop-eeccf7adf4
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 +2 -2
- package/dist/modules/auth/__integration__/TC-AUTH-001.spec.js +0 -9
- package/dist/modules/auth/__integration__/TC-AUTH-001.spec.js.map +0 -7
- package/dist/modules/auth/__integration__/TC-AUTH-002.spec.js +0 -22
- package/dist/modules/auth/__integration__/TC-AUTH-002.spec.js.map +0 -7
- package/dist/modules/auth/__integration__/TC-AUTH-003.spec.js +0 -21
- package/dist/modules/auth/__integration__/TC-AUTH-003.spec.js.map +0 -7
- package/dist/modules/auth/__integration__/TC-AUTH-004.spec.js +0 -15
- package/dist/modules/auth/__integration__/TC-AUTH-004.spec.js.map +0 -7
- package/dist/modules/auth/__integration__/TC-AUTH-005.spec.js +0 -11
- package/dist/modules/auth/__integration__/TC-AUTH-005.spec.js.map +0 -7
- package/dist/modules/auth/__integration__/TC-AUTH-006.spec.js +0 -11
- package/dist/modules/auth/__integration__/TC-AUTH-006.spec.js.map +0 -7
- package/dist/modules/auth/__integration__/TC-AUTH-007.spec.js +0 -14
- package/dist/modules/auth/__integration__/TC-AUTH-007.spec.js.map +0 -7
- package/dist/modules/auth/__integration__/TC-AUTH-008.spec.js +0 -26
- package/dist/modules/auth/__integration__/TC-AUTH-008.spec.js.map +0 -7
- package/dist/modules/auth/__integration__/TC-AUTH-009.spec.js +0 -16
- package/dist/modules/auth/__integration__/TC-AUTH-009.spec.js.map +0 -7
- package/dist/modules/auth/__integration__/TC-AUTH-010.spec.js +0 -32
- package/dist/modules/auth/__integration__/TC-AUTH-010.spec.js.map +0 -7
- package/dist/modules/auth/__integration__/TC-AUTH-011.spec.js +0 -26
- package/dist/modules/auth/__integration__/TC-AUTH-011.spec.js.map +0 -7
- package/dist/modules/auth/__integration__/TC-AUTH-012.spec.js +0 -30
- package/dist/modules/auth/__integration__/TC-AUTH-012.spec.js.map +0 -7
- package/dist/modules/auth/__integration__/TC-AUTH-013.spec.js +0 -41
- package/dist/modules/auth/__integration__/TC-AUTH-013.spec.js.map +0 -7
- package/dist/modules/auth/__integration__/TC-AUTH-014.spec.js +0 -25
- package/dist/modules/auth/__integration__/TC-AUTH-014.spec.js.map +0 -7
- package/dist/modules/auth/__integration__/TC-AUTH-015.spec.js +0 -20
- package/dist/modules/auth/__integration__/TC-AUTH-015.spec.js.map +0 -7
- package/dist/modules/auth/__integration__/TC-AUTH-016.spec.js +0 -76
- package/dist/modules/auth/__integration__/TC-AUTH-016.spec.js.map +0 -7
- package/dist/modules/catalog/__integration__/TC-CAT-001.spec.js +0 -20
- package/dist/modules/catalog/__integration__/TC-CAT-001.spec.js.map +0 -7
- package/dist/modules/catalog/__integration__/TC-CAT-002.spec.js +0 -12
- package/dist/modules/catalog/__integration__/TC-CAT-002.spec.js.map +0 -7
- package/dist/modules/catalog/__integration__/TC-CAT-003.spec.js +0 -28
- package/dist/modules/catalog/__integration__/TC-CAT-003.spec.js.map +0 -7
- package/dist/modules/catalog/__integration__/TC-CAT-004.spec.js +0 -33
- package/dist/modules/catalog/__integration__/TC-CAT-004.spec.js.map +0 -7
- package/dist/modules/catalog/__integration__/TC-CAT-005.spec.js +0 -30
- package/dist/modules/catalog/__integration__/TC-CAT-005.spec.js.map +0 -7
- package/dist/modules/catalog/__integration__/TC-CAT-006.spec.js +0 -31
- package/dist/modules/catalog/__integration__/TC-CAT-006.spec.js.map +0 -7
- package/dist/modules/catalog/__integration__/TC-CAT-007.spec.js +0 -31
- package/dist/modules/catalog/__integration__/TC-CAT-007.spec.js.map +0 -7
- package/dist/modules/catalog/__integration__/TC-CAT-008.spec.js +0 -65
- package/dist/modules/catalog/__integration__/TC-CAT-008.spec.js.map +0 -7
- package/dist/modules/catalog/__integration__/TC-CAT-009.spec.js +0 -31
- package/dist/modules/catalog/__integration__/TC-CAT-009.spec.js.map +0 -7
- package/dist/modules/catalog/__integration__/TC-CAT-010.spec.js +0 -28
- package/dist/modules/catalog/__integration__/TC-CAT-010.spec.js.map +0 -7
- package/dist/modules/catalog/__integration__/TC-CAT-011.spec.js +0 -34
- package/dist/modules/catalog/__integration__/TC-CAT-011.spec.js.map +0 -7
- package/dist/modules/catalog/__integration__/TC-CAT-012.spec.js +0 -27
- package/dist/modules/catalog/__integration__/TC-CAT-012.spec.js.map +0 -7
- package/dist/modules/core/__integration__/admin/TC-ADMIN-001.spec.js +0 -44
- package/dist/modules/core/__integration__/admin/TC-ADMIN-001.spec.js.map +0 -7
- package/dist/modules/core/__integration__/admin/TC-ADMIN-002.spec.js +0 -53
- package/dist/modules/core/__integration__/admin/TC-ADMIN-002.spec.js.map +0 -7
- package/dist/modules/core/__integration__/admin/TC-ADMIN-003.spec.js +0 -26
- package/dist/modules/core/__integration__/admin/TC-ADMIN-003.spec.js.map +0 -7
- package/dist/modules/core/__integration__/admin/TC-ADMIN-004.spec.js +0 -47
- package/dist/modules/core/__integration__/admin/TC-ADMIN-004.spec.js.map +0 -7
- package/dist/modules/core/__integration__/admin/TC-ADMIN-005.spec.js +0 -33
- package/dist/modules/core/__integration__/admin/TC-ADMIN-005.spec.js.map +0 -7
- package/dist/modules/core/__integration__/admin/TC-ADMIN-006.spec.js +0 -30
- package/dist/modules/core/__integration__/admin/TC-ADMIN-006.spec.js.map +0 -7
- package/dist/modules/core/__integration__/admin/TC-ADMIN-007.spec.js +0 -36
- package/dist/modules/core/__integration__/admin/TC-ADMIN-007.spec.js.map +0 -7
- package/dist/modules/core/__integration__/admin/TC-ADMIN-008.spec.js +0 -113
- package/dist/modules/core/__integration__/admin/TC-ADMIN-008.spec.js.map +0 -7
- package/dist/modules/core/__integration__/admin/TC-ADMIN-009.spec.js +0 -25
- package/dist/modules/core/__integration__/admin/TC-ADMIN-009.spec.js.map +0 -7
- package/dist/modules/core/__integration__/admin/TC-ADMIN-010.spec.js +0 -35
- package/dist/modules/core/__integration__/admin/TC-ADMIN-010.spec.js.map +0 -7
- package/dist/modules/core/__integration__/helpers/api.js +0 -64
- package/dist/modules/core/__integration__/helpers/api.js.map +0 -7
- package/dist/modules/core/__integration__/helpers/auth.js +0 -98
- package/dist/modules/core/__integration__/helpers/auth.js.map +0 -7
- package/dist/modules/core/__integration__/helpers/authUi.js +0 -31
- package/dist/modules/core/__integration__/helpers/authUi.js.map +0 -7
- package/dist/modules/core/__integration__/helpers/catalogFixtures.js +0 -49
- package/dist/modules/core/__integration__/helpers/catalogFixtures.js.map +0 -7
- package/dist/modules/core/__integration__/helpers/crmFixtures.js +0 -73
- package/dist/modules/core/__integration__/helpers/crmFixtures.js.map +0 -7
- package/dist/modules/core/__integration__/helpers/salesFixtures.js +0 -63
- package/dist/modules/core/__integration__/helpers/salesFixtures.js.map +0 -7
- package/dist/modules/core/__integration__/helpers/salesUi.js +0 -464
- package/dist/modules/core/__integration__/helpers/salesUi.js.map +0 -7
- package/dist/modules/core/__integration__/integration/TC-INT-001.spec.js +0 -26
- package/dist/modules/core/__integration__/integration/TC-INT-001.spec.js.map +0 -7
- package/dist/modules/core/__integration__/integration/TC-INT-002.spec.js +0 -60
- package/dist/modules/core/__integration__/integration/TC-INT-002.spec.js.map +0 -7
- package/dist/modules/core/__integration__/integration/TC-INT-003.spec.js +0 -36
- package/dist/modules/core/__integration__/integration/TC-INT-003.spec.js.map +0 -7
- package/dist/modules/core/__integration__/integration/TC-INT-004.spec.js +0 -74
- package/dist/modules/core/__integration__/integration/TC-INT-004.spec.js.map +0 -7
- package/dist/modules/core/__integration__/integration/TC-INT-005.spec.js +0 -21
- package/dist/modules/core/__integration__/integration/TC-INT-005.spec.js.map +0 -7
- package/dist/modules/customers/__integration__/TC-CRM-001.spec.js +0 -32
- package/dist/modules/customers/__integration__/TC-CRM-001.spec.js.map +0 -7
- package/dist/modules/customers/__integration__/TC-CRM-002.spec.js +0 -35
- package/dist/modules/customers/__integration__/TC-CRM-002.spec.js.map +0 -7
- package/dist/modules/customers/__integration__/TC-CRM-003.spec.js +0 -40
- package/dist/modules/customers/__integration__/TC-CRM-003.spec.js.map +0 -7
- package/dist/modules/customers/__integration__/TC-CRM-004.spec.js +0 -40
- package/dist/modules/customers/__integration__/TC-CRM-004.spec.js.map +0 -7
- package/dist/modules/customers/__integration__/TC-CRM-005.spec.js +0 -37
- package/dist/modules/customers/__integration__/TC-CRM-005.spec.js.map +0 -7
- package/dist/modules/customers/__integration__/TC-CRM-006.spec.js +0 -42
- package/dist/modules/customers/__integration__/TC-CRM-006.spec.js.map +0 -7
- package/dist/modules/customers/__integration__/TC-CRM-007.spec.js +0 -44
- package/dist/modules/customers/__integration__/TC-CRM-007.spec.js.map +0 -7
- package/dist/modules/customers/__integration__/TC-CRM-008.spec.js +0 -50
- package/dist/modules/customers/__integration__/TC-CRM-008.spec.js.map +0 -7
- package/dist/modules/customers/__integration__/TC-CRM-009.spec.js +0 -33
- package/dist/modules/customers/__integration__/TC-CRM-009.spec.js.map +0 -7
- package/dist/modules/customers/__integration__/TC-CRM-010.spec.js +0 -39
- package/dist/modules/customers/__integration__/TC-CRM-010.spec.js.map +0 -7
- package/dist/modules/customers/__integration__/TC-CRM-011.spec.js +0 -37
- package/dist/modules/customers/__integration__/TC-CRM-011.spec.js.map +0 -7
- package/dist/modules/customers/__integration__/TC-CRM-012.spec.js +0 -38
- package/dist/modules/customers/__integration__/TC-CRM-012.spec.js.map +0 -7
- package/dist/modules/customers/__integration__/TC-CRM-013.spec.js +0 -43
- package/dist/modules/customers/__integration__/TC-CRM-013.spec.js.map +0 -7
- package/dist/modules/customers/__integration__/TC-CRM-014.spec.js +0 -23
- package/dist/modules/customers/__integration__/TC-CRM-014.spec.js.map +0 -7
- package/dist/modules/customers/__integration__/TC-CRM-015.spec.js +0 -63
- package/dist/modules/customers/__integration__/TC-CRM-015.spec.js.map +0 -7
- package/dist/modules/customers/__integration__/TC-CRM-016.spec.js +0 -46
- package/dist/modules/customers/__integration__/TC-CRM-016.spec.js.map +0 -7
- package/dist/modules/customers/__integration__/TC-CRM-017.spec.js +0 -29
- package/dist/modules/customers/__integration__/TC-CRM-017.spec.js.map +0 -7
- package/dist/modules/customers/__integration__/TC-CRM-018.spec.js +0 -52
- package/dist/modules/customers/__integration__/TC-CRM-018.spec.js.map +0 -7
- package/dist/modules/customers/__integration__/TC-CRM-019.spec.js +0 -37
- package/dist/modules/customers/__integration__/TC-CRM-019.spec.js.map +0 -7
- package/dist/modules/customers/__integration__/TC-CRM-020.spec.js +0 -65
- package/dist/modules/customers/__integration__/TC-CRM-020.spec.js.map +0 -7
- package/dist/modules/progress/__integration__/TC-PROG-001.spec.js +0 -51
- package/dist/modules/progress/__integration__/TC-PROG-001.spec.js.map +0 -7
- package/dist/modules/resources/__integration__/TC-INT-007.spec.js +0 -88
- package/dist/modules/resources/__integration__/TC-INT-007.spec.js.map +0 -7
- package/dist/modules/resources/__integration__/helpers/resourcesFixtures.js +0 -45
- package/dist/modules/resources/__integration__/helpers/resourcesFixtures.js.map +0 -7
- package/dist/modules/sales/__integration__/TC-SALES-001.spec.js +0 -20
- package/dist/modules/sales/__integration__/TC-SALES-001.spec.js.map +0 -7
- package/dist/modules/sales/__integration__/TC-SALES-002.spec.js +0 -31
- package/dist/modules/sales/__integration__/TC-SALES-002.spec.js.map +0 -7
- package/dist/modules/sales/__integration__/TC-SALES-003.spec.js +0 -13
- package/dist/modules/sales/__integration__/TC-SALES-003.spec.js.map +0 -7
- package/dist/modules/sales/__integration__/TC-SALES-004.spec.js +0 -14
- package/dist/modules/sales/__integration__/TC-SALES-004.spec.js.map +0 -7
- package/dist/modules/sales/__integration__/TC-SALES-005.spec.js +0 -15
- package/dist/modules/sales/__integration__/TC-SALES-005.spec.js.map +0 -7
- package/dist/modules/sales/__integration__/TC-SALES-006.spec.js +0 -20
- package/dist/modules/sales/__integration__/TC-SALES-006.spec.js.map +0 -7
- package/dist/modules/sales/__integration__/TC-SALES-007.spec.js +0 -19
- package/dist/modules/sales/__integration__/TC-SALES-007.spec.js.map +0 -7
- package/dist/modules/sales/__integration__/TC-SALES-008.spec.js +0 -7
- package/dist/modules/sales/__integration__/TC-SALES-008.spec.js.map +0 -7
- package/dist/modules/sales/__integration__/TC-SALES-009.spec.js +0 -7
- package/dist/modules/sales/__integration__/TC-SALES-009.spec.js.map +0 -7
- package/dist/modules/sales/__integration__/TC-SALES-010.spec.js +0 -16
- package/dist/modules/sales/__integration__/TC-SALES-010.spec.js.map +0 -7
- package/dist/modules/sales/__integration__/TC-SALES-011.spec.js +0 -20
- package/dist/modules/sales/__integration__/TC-SALES-011.spec.js.map +0 -7
- package/dist/modules/sales/__integration__/TC-SALES-012.spec.js +0 -7
- package/dist/modules/sales/__integration__/TC-SALES-012.spec.js.map +0 -7
- package/dist/modules/sales/__integration__/TC-SALES-013.spec.js +0 -66
- package/dist/modules/sales/__integration__/TC-SALES-013.spec.js.map +0 -7
- package/dist/modules/sales/__integration__/TC-SALES-014.spec.js +0 -13
- package/dist/modules/sales/__integration__/TC-SALES-014.spec.js.map +0 -7
- package/dist/modules/sales/__integration__/TC-SALES-015.spec.js +0 -13
- package/dist/modules/sales/__integration__/TC-SALES-015.spec.js.map +0 -7
- package/dist/modules/sales/__integration__/TC-SALES-016.spec.js +0 -13
- package/dist/modules/sales/__integration__/TC-SALES-016.spec.js.map +0 -7
- package/dist/modules/sales/__integration__/TC-SALES-017.spec.js +0 -44
- package/dist/modules/sales/__integration__/TC-SALES-017.spec.js.map +0 -7
- package/dist/modules/sales/__integration__/TC-SALES-018.spec.js +0 -18
- package/dist/modules/sales/__integration__/TC-SALES-018.spec.js.map +0 -7
- package/dist/modules/sales/__integration__/TC-SALES-019.spec.js +0 -16
- package/dist/modules/sales/__integration__/TC-SALES-019.spec.js.map +0 -7
- package/dist/modules/sales/__integration__/TC-SALES-020.spec.js +0 -75
- package/dist/modules/sales/__integration__/TC-SALES-020.spec.js.map +0 -7
- package/dist/modules/staff/__integration__/TC-INT-006.spec.js +0 -64
- package/dist/modules/staff/__integration__/TC-INT-006.spec.js.map +0 -7
- package/dist/modules/translations/__integration__/TC-TRANS-001.spec.js +0 -48
- package/dist/modules/translations/__integration__/TC-TRANS-001.spec.js.map +0 -7
- package/dist/modules/translations/__integration__/TC-TRANS-002.spec.js +0 -94
- package/dist/modules/translations/__integration__/TC-TRANS-002.spec.js.map +0 -7
- package/dist/modules/translations/__integration__/TC-TRANS-003.spec.js +0 -61
- package/dist/modules/translations/__integration__/TC-TRANS-003.spec.js.map +0 -7
- package/dist/modules/translations/__integration__/TC-TRANS-004.spec.js +0 -52
- package/dist/modules/translations/__integration__/TC-TRANS-004.spec.js.map +0 -7
- package/dist/modules/translations/__integration__/TC-TRANS-005.spec.js +0 -106
- package/dist/modules/translations/__integration__/TC-TRANS-005.spec.js.map +0 -7
- package/dist/modules/translations/__integration__/TC-TRANS-006.spec.js +0 -94
- package/dist/modules/translations/__integration__/TC-TRANS-006.spec.js.map +0 -7
- package/dist/modules/translations/__integration__/TC-TRANS-007.spec.js +0 -62
- package/dist/modules/translations/__integration__/TC-TRANS-007.spec.js.map +0 -7
- package/dist/modules/translations/__integration__/TC-TRANS-008.spec.js +0 -168
- package/dist/modules/translations/__integration__/TC-TRANS-008.spec.js.map +0 -7
- package/dist/modules/translations/__integration__/helpers/translationFixtures.js +0 -63
- package/dist/modules/translations/__integration__/helpers/translationFixtures.js.map +0 -7
- package/dist/modules/workflows/__integration__/TC-WF-001.spec.js +0 -73
- package/dist/modules/workflows/__integration__/TC-WF-001.spec.js.map +0 -7
- package/src/__tests__/module-decoupling.test.ts +0 -356
- package/src/modules/api_keys/api/__tests__/keys.route.test.ts +0 -244
- package/src/modules/attachments/api/__tests__/attachments.api.test.ts +0 -240
- package/src/modules/attachments/components/__tests__/AttachmentContentPreview.test.tsx +0 -45
- package/src/modules/attachments/data/__tests__/entities-ocr.test.ts +0 -15
- package/src/modules/attachments/lib/__tests__/ocr-config.test.ts +0 -27
- package/src/modules/attachments/lib/__tests__/textExtraction.test.ts +0 -64
- package/src/modules/audit_logs/api/__tests__/access.route.test.ts +0 -118
- package/src/modules/audit_logs/api/__tests__/redo.route.test.ts +0 -131
- package/src/modules/audit_logs/api/__tests__/undo.route.test.ts +0 -103
- package/src/modules/audit_logs/services/__tests__/actionLogService.test.ts +0 -26
- package/src/modules/auth/__integration__/TC-AUTH-001.spec.ts +0 -13
- package/src/modules/auth/__integration__/TC-AUTH-002.spec.ts +0 -30
- package/src/modules/auth/__integration__/TC-AUTH-003.spec.ts +0 -28
- package/src/modules/auth/__integration__/TC-AUTH-004.spec.ts +0 -21
- package/src/modules/auth/__integration__/TC-AUTH-005.spec.ts +0 -17
- package/src/modules/auth/__integration__/TC-AUTH-006.spec.ts +0 -17
- package/src/modules/auth/__integration__/TC-AUTH-007.spec.ts +0 -19
- package/src/modules/auth/__integration__/TC-AUTH-008.spec.ts +0 -31
- package/src/modules/auth/__integration__/TC-AUTH-009.spec.ts +0 -22
- package/src/modules/auth/__integration__/TC-AUTH-010.spec.ts +0 -39
- package/src/modules/auth/__integration__/TC-AUTH-011.spec.ts +0 -35
- package/src/modules/auth/__integration__/TC-AUTH-012.spec.ts +0 -36
- package/src/modules/auth/__integration__/TC-AUTH-013.spec.ts +0 -48
- package/src/modules/auth/__integration__/TC-AUTH-014.spec.ts +0 -31
- package/src/modules/auth/__integration__/TC-AUTH-015.spec.ts +0 -28
- package/src/modules/auth/__integration__/TC-AUTH-016.spec.ts +0 -109
- package/src/modules/auth/__tests__/cli-rotate-encryption.test.ts +0 -97
- package/src/modules/auth/__tests__/cli-setup-acl.test.ts +0 -148
- package/src/modules/auth/api/__tests__/feature-check.test.ts +0 -65
- package/src/modules/auth/api/__tests__/login.test.ts +0 -47
- package/src/modules/auth/commands/__tests__/roles.custom-fields.test.ts +0 -126
- package/src/modules/auth/commands/__tests__/users.custom-fields.test.ts +0 -147
- package/src/modules/auth/lib/__tests__/rateLimitCheck.test.ts +0 -224
- package/src/modules/auth/services/__tests__/authService.test.ts +0 -32
- package/src/modules/auth/services/__tests__/rbacService.test.ts +0 -814
- package/src/modules/business_rules/api/__tests__/execute.route.test.ts +0 -311
- package/src/modules/business_rules/api/__tests__/logs-detail.route.test.ts +0 -181
- package/src/modules/business_rules/api/__tests__/logs.route.test.ts +0 -261
- package/src/modules/business_rules/api/__tests__/rules-detail.route.test.ts +0 -115
- package/src/modules/business_rules/api/__tests__/rules.route.test.ts +0 -746
- package/src/modules/business_rules/api/__tests__/sets-detail.route.test.ts +0 -169
- package/src/modules/business_rules/api/__tests__/sets-members.route.test.ts +0 -367
- package/src/modules/business_rules/api/__tests__/sets.route.test.ts +0 -361
- package/src/modules/business_rules/api/__tests__/test-helpers.ts +0 -42
- package/src/modules/business_rules/components/utils/__tests__/formHelpers.test.ts +0 -69
- package/src/modules/business_rules/data/__tests__/validators.test.ts +0 -637
- package/src/modules/business_rules/lib/__tests__/action-executor.test.ts +0 -728
- package/src/modules/business_rules/lib/__tests__/expression-evaluator.test.ts +0 -592
- package/src/modules/business_rules/lib/__tests__/rule-engine.test.ts +0 -805
- package/src/modules/business_rules/lib/__tests__/rule-evaluator.test.ts +0 -436
- package/src/modules/catalog/__integration__/TC-CAT-001.spec.ts +0 -32
- package/src/modules/catalog/__integration__/TC-CAT-002.spec.ts +0 -19
- package/src/modules/catalog/__integration__/TC-CAT-003.spec.ts +0 -39
- package/src/modules/catalog/__integration__/TC-CAT-004.spec.ts +0 -41
- package/src/modules/catalog/__integration__/TC-CAT-005.spec.ts +0 -37
- package/src/modules/catalog/__integration__/TC-CAT-006.spec.ts +0 -40
- package/src/modules/catalog/__integration__/TC-CAT-007.spec.ts +0 -37
- package/src/modules/catalog/__integration__/TC-CAT-008.spec.ts +0 -76
- package/src/modules/catalog/__integration__/TC-CAT-009.spec.ts +0 -39
- package/src/modules/catalog/__integration__/TC-CAT-010.spec.ts +0 -36
- package/src/modules/catalog/__integration__/TC-CAT-011.spec.ts +0 -44
- package/src/modules/catalog/__integration__/TC-CAT-012.spec.ts +0 -35
- package/src/modules/catalog/api/__tests__/offers.route.test.ts +0 -161
- package/src/modules/catalog/api/__tests__/prices.route.test.ts +0 -39
- package/src/modules/catalog/api/__tests__/products.route.test.ts +0 -91
- package/src/modules/catalog/api/__tests__/utils.test.ts +0 -36
- package/src/modules/catalog/api/__tests__/variants.route.test.ts +0 -44
- package/src/modules/catalog/backend/catalog/products/__tests__/ProductsDataTable.test.tsx +0 -172
- package/src/modules/catalog/commands/__tests__/products.delete.test.ts +0 -146
- package/src/modules/catalog/commands/__tests__/products.update.test.ts +0 -142
- package/src/modules/catalog/commands/__tests__/registration.test.ts +0 -54
- package/src/modules/catalog/commands/__tests__/shared.test.ts +0 -129
- package/src/modules/catalog/components/__tests__/catalogComponentsRender.test.tsx +0 -373
- package/src/modules/catalog/components/products/__tests__/ProductImageCell.test.tsx +0 -51
- package/src/modules/catalog/components/products/__tests__/productForm.test.ts +0 -32
- package/src/modules/catalog/lib/__tests__/pricing.test.ts +0 -150
- package/src/modules/catalog/services/__tests__/catalogPricingService.test.ts +0 -21
- package/src/modules/configs/components/__tests__/CachePanel.test.tsx +0 -134
- package/src/modules/configs/components/__tests__/SystemStatusPanel.test.tsx +0 -93
- package/src/modules/configs/lib/__tests__/system-status.test.ts +0 -55
- package/src/modules/configs/lib/__tests__/upgrade-actions.test.ts +0 -135
- package/src/modules/core/__integration__/admin/TC-ADMIN-001.spec.ts +0 -70
- package/src/modules/core/__integration__/admin/TC-ADMIN-002.spec.ts +0 -83
- package/src/modules/core/__integration__/admin/TC-ADMIN-003.spec.ts +0 -50
- package/src/modules/core/__integration__/admin/TC-ADMIN-004.spec.ts +0 -77
- package/src/modules/core/__integration__/admin/TC-ADMIN-005.spec.ts +0 -49
- package/src/modules/core/__integration__/admin/TC-ADMIN-006.spec.ts +0 -59
- package/src/modules/core/__integration__/admin/TC-ADMIN-007.spec.ts +0 -68
- package/src/modules/core/__integration__/admin/TC-ADMIN-008.spec.ts +0 -127
- package/src/modules/core/__integration__/admin/TC-ADMIN-009.spec.ts +0 -48
- package/src/modules/core/__integration__/admin/TC-ADMIN-010.spec.ts +0 -57
- package/src/modules/core/__integration__/helpers/api.ts +0 -84
- package/src/modules/core/__integration__/helpers/auth.ts +0 -110
- package/src/modules/core/__integration__/helpers/authUi.ts +0 -33
- package/src/modules/core/__integration__/helpers/catalogFixtures.ts +0 -73
- package/src/modules/core/__integration__/helpers/crmFixtures.ts +0 -101
- package/src/modules/core/__integration__/helpers/salesFixtures.ts +0 -89
- package/src/modules/core/__integration__/helpers/salesUi.ts +0 -528
- package/src/modules/core/__integration__/integration/TC-INT-001.spec.ts +0 -34
- package/src/modules/core/__integration__/integration/TC-INT-002.spec.ts +0 -74
- package/src/modules/core/__integration__/integration/TC-INT-003.spec.ts +0 -43
- package/src/modules/core/__integration__/integration/TC-INT-004.spec.ts +0 -82
- package/src/modules/core/__integration__/integration/TC-INT-005.spec.ts +0 -29
- package/src/modules/currencies/backend/exchange-rates/__tests__/formatDateTimeLocal.test.ts +0 -78
- package/src/modules/currencies/data/__tests__/validators.test.ts +0 -100
- package/src/modules/currencies/services/__tests__/exchangeRateService.test.ts +0 -666
- package/src/modules/currencies/services/__tests__/rateFetchingService.basic.test.ts +0 -398
- package/src/modules/currencies/services/__tests__/rateFetchingService.errors.test.ts +0 -296
- package/src/modules/currencies/services/__tests__/rateFetchingService.providers.test.ts +0 -350
- package/src/modules/currencies/services/__tests__/rateFetchingService.setup.ts +0 -188
- package/src/modules/customers/__integration__/TC-CRM-001.spec.ts +0 -42
- package/src/modules/customers/__integration__/TC-CRM-002.spec.ts +0 -47
- package/src/modules/customers/__integration__/TC-CRM-003.spec.ts +0 -55
- package/src/modules/customers/__integration__/TC-CRM-004.spec.ts +0 -57
- package/src/modules/customers/__integration__/TC-CRM-005.spec.ts +0 -50
- package/src/modules/customers/__integration__/TC-CRM-006.spec.ts +0 -60
- package/src/modules/customers/__integration__/TC-CRM-007.spec.ts +0 -57
- package/src/modules/customers/__integration__/TC-CRM-008.spec.ts +0 -62
- package/src/modules/customers/__integration__/TC-CRM-009.spec.ts +0 -46
- package/src/modules/customers/__integration__/TC-CRM-010.spec.ts +0 -49
- package/src/modules/customers/__integration__/TC-CRM-011.spec.ts +0 -47
- package/src/modules/customers/__integration__/TC-CRM-012.spec.ts +0 -49
- package/src/modules/customers/__integration__/TC-CRM-013.spec.ts +0 -61
- package/src/modules/customers/__integration__/TC-CRM-014.spec.ts +0 -31
- package/src/modules/customers/__integration__/TC-CRM-015.spec.ts +0 -89
- package/src/modules/customers/__integration__/TC-CRM-016.spec.ts +0 -55
- package/src/modules/customers/__integration__/TC-CRM-017.spec.ts +0 -37
- package/src/modules/customers/__integration__/TC-CRM-018.spec.ts +0 -62
- package/src/modules/customers/__integration__/TC-CRM-019.spec.ts +0 -44
- package/src/modules/customers/__integration__/TC-CRM-020.spec.ts +0 -73
- package/src/modules/customers/api/__tests__/utils.test.ts +0 -61
- package/src/modules/customers/api/dashboard/widgets/new-deals/__tests__/route.test.ts +0 -54
- package/src/modules/customers/commands/__tests__/shared.test.ts +0 -263
- package/src/modules/customers/commands/__tests__/undo.custom-fields.test.ts +0 -1184
- package/src/modules/customers/components/detail/__tests__/ActivityForm.validation.test.ts +0 -37
- package/src/modules/customers/components/detail/__tests__/DealForm.validation.test.ts +0 -45
- package/src/modules/customers/components/detail/__tests__/InlineEditors.test.tsx +0 -166
- package/src/modules/customers/components/detail/__tests__/TaskForm.submit.test.ts +0 -21
- package/src/modules/customers/components/detail/hooks/__tests__/useCustomerDictionary.test.ts +0 -97
- package/src/modules/customers/lib/__tests__/customFieldRouting.test.ts +0 -107
- package/src/modules/customers/utils/__tests__/addressFormat.test.ts +0 -105
- package/src/modules/customers/utils/__tests__/phoneDuplicates.test.ts +0 -98
- package/src/modules/dashboards/__tests__/widgets.test.ts +0 -70
- package/src/modules/dashboards/lib/__tests__/aggregations.test.ts +0 -328
- package/src/modules/dashboards/lib/__tests__/formatters.test.ts +0 -128
- package/src/modules/directory/backend/directory/organizations/__tests__/create-submit.test.ts +0 -46
- package/src/modules/directory/backend/directory/organizations/__tests__/edit-submit.test.ts +0 -49
- package/src/modules/directory/components/__tests__/OrganizationSelect.test.tsx +0 -71
- package/src/modules/directory/components/__tests__/TenantSelect.test.tsx +0 -75
- package/src/modules/entities/__tests__/cli-decrypt-database.test.ts +0 -534
- package/src/modules/entities/__tests__/cli-rotate-encryption.test.ts +0 -123
- package/src/modules/entities/api/__tests__/encryption.api.test.ts +0 -57
- package/src/modules/entities/api/__tests__/records.get.custom-entity.test.ts +0 -43
- package/src/modules/entities/api/__tests__/records.validation.test.ts +0 -53
- package/src/modules/entities/backend/entities/user/__tests__/create-entity-submit.test.ts +0 -47
- package/src/modules/entities/backend/entities/user/__tests__/records-submit.test.ts +0 -104
- package/src/modules/feature_toggles/commands/__tests__/global.test.ts +0 -325
- package/src/modules/feature_toggles/commands/__tests__/overrides.test.ts +0 -186
- package/src/modules/feature_toggles/lib/__tests__/feature-flag-check.test.ts +0 -365
- package/src/modules/feature_toggles/lib/__tests__/queries.test.ts +0 -130
- package/src/modules/inbox_ops/api/emails/[id]/reprocess/__tests__/route.test.ts +0 -194
- package/src/modules/inbox_ops/api/proposals/[id]/__tests__/route.test.ts +0 -124
- package/src/modules/inbox_ops/api/proposals/[id]/accept-all/__tests__/route.test.ts +0 -154
- package/src/modules/inbox_ops/api/proposals/[id]/actions/[actionId]/__tests__/route.test.ts +0 -200
- package/src/modules/inbox_ops/api/proposals/[id]/actions/[actionId]/accept/__tests__/route.test.ts +0 -261
- package/src/modules/inbox_ops/api/proposals/[id]/actions/[actionId]/reject/__tests__/route.test.ts +0 -201
- package/src/modules/inbox_ops/api/proposals/[id]/reject/__tests__/route.test.ts +0 -123
- package/src/modules/inbox_ops/api/proposals/[id]/replies/[replyId]/send/__tests__/route.test.ts +0 -232
- package/src/modules/inbox_ops/api/proposals/[id]/translate/__tests__/route.test.ts +0 -173
- package/src/modules/inbox_ops/api/proposals/__tests__/route.test.ts +0 -185
- package/src/modules/inbox_ops/api/webhook/__tests__/inbound.test.ts +0 -317
- package/src/modules/inbox_ops/data/__tests__/validators.test.ts +0 -463
- package/src/modules/inbox_ops/lib/__tests__/catalogLookup.test.ts +0 -143
- package/src/modules/inbox_ops/lib/__tests__/contactMatcher.test.ts +0 -158
- package/src/modules/inbox_ops/lib/__tests__/emailParser.test.ts +0 -191
- package/src/modules/inbox_ops/lib/__tests__/executionEngine.test.ts +0 -1419
- package/src/modules/inbox_ops/lib/__tests__/extractionPrompt.test.ts +0 -151
- package/src/modules/inbox_ops/lib/__tests__/priceValidator.test.ts +0 -259
- package/src/modules/inbox_ops/lib/__tests__/translationProvider.test.ts +0 -99
- package/src/modules/inbox_ops/subscribers/__tests__/extractionWorker.test.ts +0 -803
- package/src/modules/notifications/__tests__/deliver-notification.test.ts +0 -285
- package/src/modules/notifications/__tests__/deliveryStrategies.test.ts +0 -19
- package/src/modules/notifications/__tests__/notificationService.test.ts +0 -248
- package/src/modules/planner/__tests__/availabilityMerge.test.ts +0 -99
- package/src/modules/planner/__tests__/plannerAvailabilityService.test.ts +0 -89
- package/src/modules/planner/data/__tests__/validators.test.ts +0 -78
- package/src/modules/progress/__integration__/TC-PROG-001.spec.ts +0 -67
- package/src/modules/progress/__tests__/progressService.test.ts +0 -377
- package/src/modules/query_index/__tests__/hybrid-engine.test.ts +0 -365
- package/src/modules/query_index/__tests__/indexer.test.ts +0 -175
- package/src/modules/resources/__integration__/TC-INT-007.spec.ts +0 -110
- package/src/modules/resources/__integration__/helpers/resourcesFixtures.ts +0 -50
- package/src/modules/resources/data/__tests__/validators.test.ts +0 -65
- package/src/modules/sales/__integration__/TC-SALES-001.spec.ts +0 -26
- package/src/modules/sales/__integration__/TC-SALES-002.spec.ts +0 -38
- package/src/modules/sales/__integration__/TC-SALES-003.spec.ts +0 -18
- package/src/modules/sales/__integration__/TC-SALES-004.spec.ts +0 -19
- package/src/modules/sales/__integration__/TC-SALES-005.spec.ts +0 -21
- package/src/modules/sales/__integration__/TC-SALES-006.spec.ts +0 -26
- package/src/modules/sales/__integration__/TC-SALES-007.spec.ts +0 -23
- package/src/modules/sales/__integration__/TC-SALES-008.spec.ts +0 -11
- package/src/modules/sales/__integration__/TC-SALES-009.spec.ts +0 -12
- package/src/modules/sales/__integration__/TC-SALES-010.spec.ts +0 -20
- package/src/modules/sales/__integration__/TC-SALES-011.spec.ts +0 -26
- package/src/modules/sales/__integration__/TC-SALES-012.spec.ts +0 -12
- package/src/modules/sales/__integration__/TC-SALES-013.spec.ts +0 -73
- package/src/modules/sales/__integration__/TC-SALES-014.spec.ts +0 -17
- package/src/modules/sales/__integration__/TC-SALES-015.spec.ts +0 -17
- package/src/modules/sales/__integration__/TC-SALES-016.spec.ts +0 -17
- package/src/modules/sales/__integration__/TC-SALES-017.spec.ts +0 -60
- package/src/modules/sales/__integration__/TC-SALES-018.spec.ts +0 -25
- package/src/modules/sales/__integration__/TC-SALES-019.spec.ts +0 -22
- package/src/modules/sales/__integration__/TC-SALES-020.spec.ts +0 -107
- package/src/modules/sales/api/__tests__/channels.route.test.ts +0 -50
- package/src/modules/sales/api/__tests__/document-history.test.ts +0 -146
- package/src/modules/sales/api/__tests__/documents.factory.test.ts +0 -98
- package/src/modules/sales/api/__tests__/documents.routes.test.ts +0 -149
- package/src/modules/sales/api/__tests__/quotes.acceptance.test.ts +0 -209
- package/src/modules/sales/api/__tests__/timeline.test.tsx +0 -165
- package/src/modules/sales/api/dashboard/widgets/new-orders/__tests__/route.test.ts +0 -112
- package/src/modules/sales/api/dashboard/widgets/new-quotes/__tests__/route.test.ts +0 -116
- package/src/modules/sales/commands/__tests__/documents.cache.test.ts +0 -126
- package/src/modules/sales/commands/__tests__/documents.undo.test.ts +0 -170
- package/src/modules/sales/commands/__tests__/registration.test.ts +0 -141
- package/src/modules/sales/components/__tests__/salesComponentsRender.test.tsx +0 -456
- package/src/modules/sales/lib/__tests__/calculations.test.ts +0 -210
- package/src/modules/sales/services/__tests__/salesCalculationService.test.ts +0 -181
- package/src/modules/sales/services/__tests__/taxCalculationService.test.ts +0 -79
- package/src/modules/sales/widgets/dashboard/new-orders/__tests__/config.test.ts +0 -47
- package/src/modules/sales/widgets/dashboard/new-quotes/__tests__/config.test.ts +0 -47
- package/src/modules/staff/__integration__/TC-INT-006.spec.ts +0 -71
- package/src/modules/staff/data/__tests__/validators.test.ts +0 -60
- package/src/modules/translations/__integration__/TC-TRANS-001.spec.ts +0 -57
- package/src/modules/translations/__integration__/TC-TRANS-002.spec.ts +0 -114
- package/src/modules/translations/__integration__/TC-TRANS-003.spec.ts +0 -71
- package/src/modules/translations/__integration__/TC-TRANS-004.spec.ts +0 -66
- package/src/modules/translations/__integration__/TC-TRANS-005.spec.ts +0 -135
- package/src/modules/translations/__integration__/TC-TRANS-006.spec.ts +0 -113
- package/src/modules/translations/__integration__/TC-TRANS-007.spec.ts +0 -80
- package/src/modules/translations/__integration__/TC-TRANS-008.spec.ts +0 -209
- package/src/modules/translations/__integration__/helpers/translationFixtures.ts +0 -95
- package/src/modules/translations/api/__tests__/locales.test.ts +0 -67
- package/src/modules/translations/data/__tests__/validators.test.ts +0 -143
- package/src/modules/translations/lib/__tests__/extract-record-id.test.ts +0 -75
- package/src/modules/translations/lib/__tests__/helpers.test.ts +0 -215
- package/src/modules/translations/lib/__tests__/locale.test.ts +0 -115
- package/src/modules/translations/lib/__tests__/resolve-field-list.test.ts +0 -176
- package/src/modules/translations/lib/__tests__/translatable-fields.test.ts +0 -79
- package/src/modules/translations/widgets/__tests__/injection-table.test.ts +0 -83
- package/src/modules/workflows/__integration__/TC-WF-001.spec.ts +0 -114
- package/src/modules/workflows/api/__tests__/definitions.route.test.ts +0 -762
- package/src/modules/workflows/api/__tests__/instances.route.test.ts +0 -869
- package/src/modules/workflows/data/__tests__/validators.test.ts +0 -707
- package/src/modules/workflows/lib/__tests__/activity-executor.test.ts +0 -1230
- package/src/modules/workflows/lib/__tests__/call-api.test.ts +0 -421
- package/src/modules/workflows/lib/__tests__/compensation.test.ts +0 -713
- package/src/modules/workflows/lib/__tests__/event-logger.test.ts +0 -615
- package/src/modules/workflows/lib/__tests__/integration.test.ts +0 -693
- package/src/modules/workflows/lib/__tests__/signals.test.ts +0 -566
- package/src/modules/workflows/lib/__tests__/step-handler.test.ts +0 -670
- package/src/modules/workflows/lib/__tests__/sub-workflow.test.ts +0 -934
- package/src/modules/workflows/lib/__tests__/transition-handler.test.ts +0 -925
- package/src/modules/workflows/lib/__tests__/workflow-executor.test.ts +0 -684
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { expect, test } from '@playwright/test'
|
|
2
|
-
import { apiRequest, getAuthToken } from '@open-mercato/core/modules/core/__integration__/helpers/api'
|
|
3
|
-
import { createProductFixture, deleteCatalogProductIfExists } from '@open-mercato/core/modules/core/__integration__/helpers/catalogFixtures'
|
|
4
|
-
import { deleteTranslationIfExists } from './helpers/translationFixtures'
|
|
5
|
-
|
|
6
|
-
const ENTITY_TYPE = 'catalog:catalog_product'
|
|
7
|
-
const BASE_URL = process.env.BASE_URL || 'http://localhost:3000'
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* TC-TRANS-003: Validation & Authorization
|
|
11
|
-
* Covers input validation (entityType, body limits) and basic access control.
|
|
12
|
-
*/
|
|
13
|
-
test.describe('TC-TRANS-003: Validation & Authorization', () => {
|
|
14
|
-
test('should reject invalid entityType format with 400', async ({ request }) => {
|
|
15
|
-
const token = await getAuthToken(request, 'superadmin')
|
|
16
|
-
const response = await apiRequest(request, 'PUT', '/api/translations/INVALID/some-id', {
|
|
17
|
-
token,
|
|
18
|
-
data: { en: { title: 'test' } },
|
|
19
|
-
})
|
|
20
|
-
expect(response.status()).toBe(400)
|
|
21
|
-
})
|
|
22
|
-
|
|
23
|
-
test('should reject field value exceeding 10000 characters with 400', async ({ request }) => {
|
|
24
|
-
const adminToken = await getAuthToken(request, 'admin')
|
|
25
|
-
const saToken = await getAuthToken(request, 'superadmin')
|
|
26
|
-
const productTitle = `QA TC-TRANS-003-2 ${Date.now()}`
|
|
27
|
-
const sku = `QA-TRANS-003-2-${Date.now()}`
|
|
28
|
-
let productId: string | null = null
|
|
29
|
-
|
|
30
|
-
try {
|
|
31
|
-
productId = await createProductFixture(request, adminToken, { title: productTitle, sku })
|
|
32
|
-
const longValue = 'x'.repeat(10001)
|
|
33
|
-
const response = await apiRequest(request, 'PUT', `/api/translations/${ENTITY_TYPE}/${productId}`, {
|
|
34
|
-
token: saToken,
|
|
35
|
-
data: { en: { title: longValue } },
|
|
36
|
-
})
|
|
37
|
-
expect(response.status()).toBe(400)
|
|
38
|
-
} finally {
|
|
39
|
-
await deleteTranslationIfExists(request, saToken, ENTITY_TYPE, productId)
|
|
40
|
-
await deleteCatalogProductIfExists(request, adminToken, productId)
|
|
41
|
-
}
|
|
42
|
-
})
|
|
43
|
-
|
|
44
|
-
test('should reject locale key exceeding max length with 400', async ({ request }) => {
|
|
45
|
-
const adminToken = await getAuthToken(request, 'admin')
|
|
46
|
-
const saToken = await getAuthToken(request, 'superadmin')
|
|
47
|
-
const productTitle = `QA TC-TRANS-003-3 ${Date.now()}`
|
|
48
|
-
const sku = `QA-TRANS-003-3-${Date.now()}`
|
|
49
|
-
let productId: string | null = null
|
|
50
|
-
|
|
51
|
-
try {
|
|
52
|
-
productId = await createProductFixture(request, adminToken, { title: productTitle, sku })
|
|
53
|
-
const response = await apiRequest(request, 'PUT', `/api/translations/${ENTITY_TYPE}/${productId}`, {
|
|
54
|
-
token: saToken,
|
|
55
|
-
data: { abcdefghijk: { title: 'test' } },
|
|
56
|
-
})
|
|
57
|
-
expect(response.status()).toBe(400)
|
|
58
|
-
} finally {
|
|
59
|
-
await deleteTranslationIfExists(request, saToken, ENTITY_TYPE, productId)
|
|
60
|
-
await deleteCatalogProductIfExists(request, adminToken, productId)
|
|
61
|
-
}
|
|
62
|
-
})
|
|
63
|
-
|
|
64
|
-
test('should reject unauthenticated requests with 401', async ({ request }) => {
|
|
65
|
-
const response = await request.fetch(`${BASE_URL}/api/translations/locales`, {
|
|
66
|
-
method: 'GET',
|
|
67
|
-
headers: { 'Content-Type': 'application/json' },
|
|
68
|
-
})
|
|
69
|
-
expect(response.status()).toBe(401)
|
|
70
|
-
})
|
|
71
|
-
})
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { expect, test } from '@playwright/test'
|
|
2
|
-
import { getAuthToken } from '@open-mercato/core/modules/core/__integration__/helpers/api'
|
|
3
|
-
import { login } from '@open-mercato/core/modules/core/__integration__/helpers/auth'
|
|
4
|
-
import { getLocales, setLocales } from './helpers/translationFixtures'
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* TC-TRANS-004: Locale Management Page
|
|
8
|
-
* Covers navigation to translations config, adding and removing locales via the UI.
|
|
9
|
-
*/
|
|
10
|
-
test.describe('TC-TRANS-004: Locale Management Page', () => {
|
|
11
|
-
test('should navigate to translations config page', async ({ page }) => {
|
|
12
|
-
await login(page, 'superadmin')
|
|
13
|
-
await page.goto('/backend/config/translations')
|
|
14
|
-
|
|
15
|
-
await expect(page.getByText('Supported locales')).toBeVisible()
|
|
16
|
-
await expect(page.getByRole('heading', { name: 'Translations' })).toBeVisible()
|
|
17
|
-
})
|
|
18
|
-
|
|
19
|
-
test('should add a locale via UI and verify via API', async ({ page, request }) => {
|
|
20
|
-
const token = await getAuthToken(request, 'admin')
|
|
21
|
-
const originalLocales = await getLocales(request, token)
|
|
22
|
-
|
|
23
|
-
try {
|
|
24
|
-
await login(page, 'superadmin')
|
|
25
|
-
await page.goto('/backend/config/translations')
|
|
26
|
-
await expect(page.getByText('Supported locales')).toBeVisible()
|
|
27
|
-
|
|
28
|
-
const searchInput = page.getByPlaceholder('e.g. fr, it, ja...')
|
|
29
|
-
await searchInput.fill('Japanese')
|
|
30
|
-
await page.getByText(/JA — Japanese/i).click()
|
|
31
|
-
await page.getByRole('button', { name: 'Add' }).click()
|
|
32
|
-
|
|
33
|
-
await expect(page.locator('span').filter({ hasText: /^JA/ })).toBeVisible()
|
|
34
|
-
|
|
35
|
-
const updatedLocales = await getLocales(request, token)
|
|
36
|
-
expect(updatedLocales).toContain('ja')
|
|
37
|
-
} finally {
|
|
38
|
-
await setLocales(request, token, originalLocales).catch(() => {})
|
|
39
|
-
}
|
|
40
|
-
})
|
|
41
|
-
|
|
42
|
-
test('should remove a locale via UI and verify via API', async ({ page, request }) => {
|
|
43
|
-
const token = await getAuthToken(request, 'admin')
|
|
44
|
-
const originalLocales = await getLocales(request, token)
|
|
45
|
-
|
|
46
|
-
try {
|
|
47
|
-
await setLocales(request, token, [...new Set([...originalLocales, 'ja'])])
|
|
48
|
-
|
|
49
|
-
await login(page, 'superadmin')
|
|
50
|
-
await page.goto('/backend/config/translations')
|
|
51
|
-
await expect(page.getByText('Supported locales')).toBeVisible()
|
|
52
|
-
|
|
53
|
-
const jaBadge = page.locator('span').filter({ hasText: /^JA/ })
|
|
54
|
-
await expect(jaBadge).toBeVisible()
|
|
55
|
-
const removeButton = jaBadge.getByRole('button')
|
|
56
|
-
await removeButton.click()
|
|
57
|
-
|
|
58
|
-
await expect(jaBadge).not.toBeVisible()
|
|
59
|
-
|
|
60
|
-
const updatedLocales = await getLocales(request, token)
|
|
61
|
-
expect(updatedLocales).not.toContain('ja')
|
|
62
|
-
} finally {
|
|
63
|
-
await setLocales(request, token, originalLocales).catch(() => {})
|
|
64
|
-
}
|
|
65
|
-
})
|
|
66
|
-
})
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import { expect, test } from '@playwright/test'
|
|
2
|
-
import { apiRequest, getAuthToken } from '@open-mercato/core/modules/core/__integration__/helpers/api'
|
|
3
|
-
import { createProductFixture, deleteCatalogProductIfExists } from '@open-mercato/core/modules/core/__integration__/helpers/catalogFixtures'
|
|
4
|
-
import { login } from '@open-mercato/core/modules/core/__integration__/helpers/auth'
|
|
5
|
-
import { deleteTranslationIfExists, getLocales, setLocales } from './helpers/translationFixtures'
|
|
6
|
-
|
|
7
|
-
const ENTITY_TYPE = 'catalog:catalog_product'
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Helper: set a value directly into a ComboboxInput using allowCustomValues.
|
|
11
|
-
* Types the value and presses Enter to confirm — avoids flaky dropdown clicks
|
|
12
|
-
* and search index lag for async suggestions.
|
|
13
|
-
*/
|
|
14
|
-
async function fillCombobox(page: import('@playwright/test').Page, placeholder: string, value: string) {
|
|
15
|
-
const input = page.getByPlaceholder(placeholder)
|
|
16
|
-
await expect(input).toBeEnabled({ timeout: 10_000 })
|
|
17
|
-
await input.click()
|
|
18
|
-
await input.fill(value)
|
|
19
|
-
await input.press('Enter')
|
|
20
|
-
// Move focus away so the ComboboxInput's onBlur handler fires and settles
|
|
21
|
-
// (onBlur has a 200ms timeout that calls confirmSelection, which may reset hasUserEdited)
|
|
22
|
-
await input.press('Tab')
|
|
23
|
-
await page.waitForTimeout(300)
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* TC-TRANS-005: Translation Manager Standalone
|
|
28
|
-
* Covers selecting entity/record, entering translations, saving, and verifying persistence.
|
|
29
|
-
*/
|
|
30
|
-
test.describe('TC-TRANS-005: Translation Manager Standalone', () => {
|
|
31
|
-
test('should select entity type and record, showing the field table', async ({ page, request }) => {
|
|
32
|
-
const adminToken = await getAuthToken(request, 'admin')
|
|
33
|
-
const saToken = await getAuthToken(request, 'superadmin')
|
|
34
|
-
const originalLocales = await getLocales(request, adminToken)
|
|
35
|
-
const productTitle = `QA TC-TRANS-005-1 ${Date.now()}`
|
|
36
|
-
const sku = `QA-TRANS-005-1-${Date.now()}`
|
|
37
|
-
let productId: string | null = null
|
|
38
|
-
|
|
39
|
-
try {
|
|
40
|
-
await setLocales(request, adminToken, [...new Set([...originalLocales, 'de'])])
|
|
41
|
-
productId = await createProductFixture(request, adminToken, { title: productTitle, sku })
|
|
42
|
-
|
|
43
|
-
await login(page, 'superadmin')
|
|
44
|
-
await page.goto('/backend/config/translations')
|
|
45
|
-
await expect(page.getByRole('heading', { name: 'Translations' })).toBeVisible()
|
|
46
|
-
|
|
47
|
-
await fillCombobox(page, 'Select an entity', ENTITY_TYPE)
|
|
48
|
-
await fillCombobox(page, 'Search records...', productId!)
|
|
49
|
-
|
|
50
|
-
await expect(page.getByText('Base value')).toBeVisible()
|
|
51
|
-
} finally {
|
|
52
|
-
await deleteTranslationIfExists(request, saToken, ENTITY_TYPE, productId)
|
|
53
|
-
await deleteCatalogProductIfExists(request, adminToken, productId)
|
|
54
|
-
await setLocales(request, adminToken, originalLocales).catch(() => {})
|
|
55
|
-
}
|
|
56
|
-
})
|
|
57
|
-
|
|
58
|
-
test('should enter and save a translation via standalone manager', async ({ page, request }) => {
|
|
59
|
-
const adminToken = await getAuthToken(request, 'admin')
|
|
60
|
-
const saToken = await getAuthToken(request, 'superadmin')
|
|
61
|
-
const originalLocales = await getLocales(request, adminToken)
|
|
62
|
-
const productTitle = `QA TC-TRANS-005-2 ${Date.now()}`
|
|
63
|
-
const sku = `QA-TRANS-005-2-${Date.now()}`
|
|
64
|
-
let productId: string | null = null
|
|
65
|
-
|
|
66
|
-
try {
|
|
67
|
-
await setLocales(request, adminToken, [...new Set([...originalLocales, 'de'])])
|
|
68
|
-
productId = await createProductFixture(request, adminToken, { title: productTitle, sku })
|
|
69
|
-
|
|
70
|
-
await login(page, 'superadmin')
|
|
71
|
-
await page.goto('/backend/config/translations')
|
|
72
|
-
|
|
73
|
-
await fillCombobox(page, 'Select an entity', ENTITY_TYPE)
|
|
74
|
-
await fillCombobox(page, 'Search records...', productId!)
|
|
75
|
-
|
|
76
|
-
const managerCard = page.locator('.bg-card').filter({
|
|
77
|
-
has: page.getByRole('button', { name: 'Save translations' }),
|
|
78
|
-
})
|
|
79
|
-
const deTab = managerCard.getByRole('button', { name: 'DE' })
|
|
80
|
-
await deTab.click()
|
|
81
|
-
|
|
82
|
-
const titleInput = page.locator('table input').first()
|
|
83
|
-
await titleInput.fill('Deutscher Titel QA')
|
|
84
|
-
|
|
85
|
-
await page.getByRole('button', { name: 'Save translations' }).click()
|
|
86
|
-
await expect(page.getByText('Translations saved').first()).toBeVisible()
|
|
87
|
-
|
|
88
|
-
const getResponse = await apiRequest(request, 'GET', `/api/translations/${ENTITY_TYPE}/${productId}`, { token: saToken })
|
|
89
|
-
expect(getResponse.ok()).toBeTruthy()
|
|
90
|
-
const body = (await getResponse.json()) as { translations: Record<string, Record<string, string>> }
|
|
91
|
-
expect(body.translations.de.title).toBe('Deutscher Titel QA')
|
|
92
|
-
} finally {
|
|
93
|
-
await deleteTranslationIfExists(request, saToken, ENTITY_TYPE, productId)
|
|
94
|
-
await deleteCatalogProductIfExists(request, adminToken, productId)
|
|
95
|
-
await setLocales(request, adminToken, originalLocales).catch(() => {})
|
|
96
|
-
}
|
|
97
|
-
})
|
|
98
|
-
|
|
99
|
-
test('should persist translations after page reload', async ({ page, request }) => {
|
|
100
|
-
const adminToken = await getAuthToken(request, 'admin')
|
|
101
|
-
const saToken = await getAuthToken(request, 'superadmin')
|
|
102
|
-
const originalLocales = await getLocales(request, adminToken)
|
|
103
|
-
const productTitle = `QA TC-TRANS-005-3 ${Date.now()}`
|
|
104
|
-
const sku = `QA-TRANS-005-3-${Date.now()}`
|
|
105
|
-
let productId: string | null = null
|
|
106
|
-
|
|
107
|
-
try {
|
|
108
|
-
await setLocales(request, adminToken, [...new Set([...originalLocales, 'de'])])
|
|
109
|
-
productId = await createProductFixture(request, adminToken, { title: productTitle, sku })
|
|
110
|
-
|
|
111
|
-
await apiRequest(request, 'PUT', `/api/translations/${ENTITY_TYPE}/${productId}`, {
|
|
112
|
-
token: saToken,
|
|
113
|
-
data: { de: { title: 'Persistenter Titel' } },
|
|
114
|
-
})
|
|
115
|
-
|
|
116
|
-
await login(page, 'superadmin')
|
|
117
|
-
await page.goto('/backend/config/translations')
|
|
118
|
-
|
|
119
|
-
await fillCombobox(page, 'Select an entity', ENTITY_TYPE)
|
|
120
|
-
await fillCombobox(page, 'Search records...', productId!)
|
|
121
|
-
|
|
122
|
-
const managerCard = page.locator('.bg-card').filter({
|
|
123
|
-
has: page.getByRole('button', { name: 'Save translations' }),
|
|
124
|
-
})
|
|
125
|
-
const deTab = managerCard.getByRole('button', { name: 'DE' })
|
|
126
|
-
await deTab.click()
|
|
127
|
-
|
|
128
|
-
await expect(page.locator('table input').first()).toHaveValue('Persistenter Titel')
|
|
129
|
-
} finally {
|
|
130
|
-
await deleteTranslationIfExists(request, saToken, ENTITY_TYPE, productId)
|
|
131
|
-
await deleteCatalogProductIfExists(request, adminToken, productId)
|
|
132
|
-
await setLocales(request, adminToken, originalLocales).catch(() => {})
|
|
133
|
-
}
|
|
134
|
-
})
|
|
135
|
-
})
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import { expect, test } from '@playwright/test'
|
|
2
|
-
import { apiRequest, getAuthToken } from '@open-mercato/core/modules/core/__integration__/helpers/api'
|
|
3
|
-
import { createProductFixture, deleteCatalogProductIfExists } from '@open-mercato/core/modules/core/__integration__/helpers/catalogFixtures'
|
|
4
|
-
import { login } from '@open-mercato/core/modules/core/__integration__/helpers/auth'
|
|
5
|
-
import { deleteTranslationIfExists, getLocales, setLocales } from './helpers/translationFixtures'
|
|
6
|
-
|
|
7
|
-
const ENTITY_TYPE = 'catalog:catalog_product'
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* TC-TRANS-006: Embedded Widget on Product Detail
|
|
11
|
-
* Covers the translation widget injected on the catalog product edit page.
|
|
12
|
-
*/
|
|
13
|
-
test.describe('TC-TRANS-006: Embedded Widget on Product Detail', () => {
|
|
14
|
-
test.use({ actionTimeout: 30_000 })
|
|
15
|
-
test('should show translation widget on product edit page', async ({ page, request }) => {
|
|
16
|
-
const adminToken = await getAuthToken(request, 'admin')
|
|
17
|
-
const originalLocales = await getLocales(request, adminToken)
|
|
18
|
-
const productTitle = `QA TC-TRANS-006-1 ${Date.now()}`
|
|
19
|
-
const sku = `QA-TRANS-006-1-${Date.now()}`
|
|
20
|
-
let productId: string | null = null
|
|
21
|
-
|
|
22
|
-
try {
|
|
23
|
-
await setLocales(request, adminToken, [...new Set([...originalLocales, 'de'])])
|
|
24
|
-
productId = await createProductFixture(request, adminToken, { title: productTitle, sku })
|
|
25
|
-
|
|
26
|
-
await login(page, 'superadmin')
|
|
27
|
-
await page.goto(`/backend/catalog/products/${productId}`)
|
|
28
|
-
|
|
29
|
-
await expect(page.getByRole('link', { name: /Translation manager/ })).toBeVisible()
|
|
30
|
-
await expect(page.getByRole('button', { name: 'Save translations' })).toBeVisible()
|
|
31
|
-
} finally {
|
|
32
|
-
await deleteCatalogProductIfExists(request, adminToken, productId)
|
|
33
|
-
await setLocales(request, adminToken, originalLocales).catch(() => {})
|
|
34
|
-
}
|
|
35
|
-
})
|
|
36
|
-
|
|
37
|
-
test('should enter and save a translation in the embedded widget', async ({ page, request }) => {
|
|
38
|
-
const adminToken = await getAuthToken(request, 'admin')
|
|
39
|
-
const saToken = await getAuthToken(request, 'superadmin')
|
|
40
|
-
const originalLocales = await getLocales(request, adminToken)
|
|
41
|
-
const productTitle = `QA TC-TRANS-006-2 ${Date.now()}`
|
|
42
|
-
const sku = `QA-TRANS-006-2-${Date.now()}`
|
|
43
|
-
let productId: string | null = null
|
|
44
|
-
|
|
45
|
-
try {
|
|
46
|
-
await setLocales(request, adminToken, [...new Set([...originalLocales, 'de'])])
|
|
47
|
-
productId = await createProductFixture(request, adminToken, { title: productTitle, sku })
|
|
48
|
-
|
|
49
|
-
await login(page, 'superadmin')
|
|
50
|
-
await page.goto(`/backend/catalog/products/${productId}`)
|
|
51
|
-
|
|
52
|
-
const widgetSection = page.locator('div').filter({
|
|
53
|
-
has: page.getByRole('link', { name: /Translation manager/ }),
|
|
54
|
-
}).filter({
|
|
55
|
-
has: page.getByRole('button', { name: 'Save translations' }),
|
|
56
|
-
}).last()
|
|
57
|
-
await expect(widgetSection).toBeVisible()
|
|
58
|
-
|
|
59
|
-
const deTab = widgetSection.getByRole('button', { name: 'DE' })
|
|
60
|
-
await deTab.click()
|
|
61
|
-
|
|
62
|
-
const translationInput = widgetSection.locator('table input').first()
|
|
63
|
-
await translationInput.fill('Widget Titel QA')
|
|
64
|
-
|
|
65
|
-
await widgetSection.getByRole('button', { name: 'Save translations' }).click()
|
|
66
|
-
await expect(page.getByText('Translations saved').first()).toBeVisible()
|
|
67
|
-
} finally {
|
|
68
|
-
await deleteTranslationIfExists(request, saToken, ENTITY_TYPE, productId)
|
|
69
|
-
await deleteCatalogProductIfExists(request, adminToken, productId)
|
|
70
|
-
await setLocales(request, adminToken, originalLocales).catch(() => {})
|
|
71
|
-
}
|
|
72
|
-
})
|
|
73
|
-
|
|
74
|
-
test('should verify widget-saved translation via API', async ({ page, request }) => {
|
|
75
|
-
const adminToken = await getAuthToken(request, 'admin')
|
|
76
|
-
const saToken = await getAuthToken(request, 'superadmin')
|
|
77
|
-
const originalLocales = await getLocales(request, adminToken)
|
|
78
|
-
const productTitle = `QA TC-TRANS-006-3 ${Date.now()}`
|
|
79
|
-
const sku = `QA-TRANS-006-3-${Date.now()}`
|
|
80
|
-
let productId: string | null = null
|
|
81
|
-
|
|
82
|
-
try {
|
|
83
|
-
await setLocales(request, adminToken, [...new Set([...originalLocales, 'de'])])
|
|
84
|
-
productId = await createProductFixture(request, adminToken, { title: productTitle, sku })
|
|
85
|
-
|
|
86
|
-
await login(page, 'superadmin')
|
|
87
|
-
await page.goto(`/backend/catalog/products/${productId}`)
|
|
88
|
-
|
|
89
|
-
const widgetSection = page.locator('div').filter({
|
|
90
|
-
has: page.getByRole('link', { name: /Translation manager/ }),
|
|
91
|
-
}).filter({
|
|
92
|
-
has: page.getByRole('button', { name: 'Save translations' }),
|
|
93
|
-
}).last()
|
|
94
|
-
const deTab = widgetSection.getByRole('button', { name: 'DE' })
|
|
95
|
-
await deTab.click()
|
|
96
|
-
|
|
97
|
-
const translationInput = widgetSection.locator('table input').first()
|
|
98
|
-
await translationInput.fill('API Verifiziert QA')
|
|
99
|
-
|
|
100
|
-
await widgetSection.getByRole('button', { name: 'Save translations' }).click()
|
|
101
|
-
await expect(page.getByText('Translations saved').first()).toBeVisible()
|
|
102
|
-
|
|
103
|
-
const getResponse = await apiRequest(request, 'GET', `/api/translations/${ENTITY_TYPE}/${productId}`, { token: saToken })
|
|
104
|
-
expect(getResponse.ok()).toBeTruthy()
|
|
105
|
-
const body = (await getResponse.json()) as { translations: Record<string, Record<string, string>> }
|
|
106
|
-
expect(body.translations.de.title).toBe('API Verifiziert QA')
|
|
107
|
-
} finally {
|
|
108
|
-
await deleteTranslationIfExists(request, saToken, ENTITY_TYPE, productId)
|
|
109
|
-
await deleteCatalogProductIfExists(request, adminToken, productId)
|
|
110
|
-
await setLocales(request, adminToken, originalLocales).catch(() => {})
|
|
111
|
-
}
|
|
112
|
-
})
|
|
113
|
-
})
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { expect, test } from '@playwright/test'
|
|
2
|
-
import { apiRequest, getAuthToken } from '@open-mercato/core/modules/core/__integration__/helpers/api'
|
|
3
|
-
import { createCategoryFixture, deleteCatalogCategoryIfExists } from '@open-mercato/core/modules/core/__integration__/helpers/catalogFixtures'
|
|
4
|
-
import { login } from '@open-mercato/core/modules/core/__integration__/helpers/auth'
|
|
5
|
-
import { deleteTranslationIfExists, getLocales, setLocales } from './helpers/translationFixtures'
|
|
6
|
-
|
|
7
|
-
const ENTITY_TYPE = 'catalog:catalog_product_category'
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* TC-TRANS-007: Dynamic Widget Injection on Category Edit
|
|
11
|
-
* Verifies that the Translation Manager widget auto-injects on entity types
|
|
12
|
-
* beyond catalog products. Since injection-table.ts now dynamically generates
|
|
13
|
-
* entries for ALL translatable entity types, this test confirms the mechanism
|
|
14
|
-
* works for product categories (a second CrudForm-based entity).
|
|
15
|
-
*/
|
|
16
|
-
test.describe('TC-TRANS-007: Dynamic Widget Injection on Category Edit', () => {
|
|
17
|
-
test.use({ actionTimeout: 30_000 })
|
|
18
|
-
|
|
19
|
-
test('should show translation widget on category edit page', async ({ page, request }) => {
|
|
20
|
-
const adminToken = await getAuthToken(request, 'admin')
|
|
21
|
-
const originalLocales = await getLocales(request, adminToken)
|
|
22
|
-
const categoryName = `QA TC-TRANS-007-1 ${Date.now()}`
|
|
23
|
-
let categoryId: string | null = null
|
|
24
|
-
|
|
25
|
-
try {
|
|
26
|
-
await setLocales(request, adminToken, [...new Set([...originalLocales, 'de'])])
|
|
27
|
-
categoryId = await createCategoryFixture(request, adminToken, { name: categoryName })
|
|
28
|
-
|
|
29
|
-
await login(page, 'superadmin')
|
|
30
|
-
await page.goto(`/backend/catalog/categories/${categoryId}/edit`)
|
|
31
|
-
|
|
32
|
-
await expect(page.getByRole('link', { name: /Translation manager/ })).toBeVisible()
|
|
33
|
-
await expect(page.getByRole('button', { name: 'Save translations' })).toBeVisible()
|
|
34
|
-
} finally {
|
|
35
|
-
await deleteCatalogCategoryIfExists(request, adminToken, categoryId)
|
|
36
|
-
await setLocales(request, adminToken, originalLocales).catch(() => {})
|
|
37
|
-
}
|
|
38
|
-
})
|
|
39
|
-
|
|
40
|
-
test('should save a translation via the category widget and verify via API', async ({ page, request }) => {
|
|
41
|
-
const adminToken = await getAuthToken(request, 'admin')
|
|
42
|
-
const saToken = await getAuthToken(request, 'superadmin')
|
|
43
|
-
const originalLocales = await getLocales(request, adminToken)
|
|
44
|
-
const categoryName = `QA TC-TRANS-007-2 ${Date.now()}`
|
|
45
|
-
let categoryId: string | null = null
|
|
46
|
-
|
|
47
|
-
try {
|
|
48
|
-
await setLocales(request, adminToken, [...new Set([...originalLocales, 'de'])])
|
|
49
|
-
categoryId = await createCategoryFixture(request, adminToken, { name: categoryName })
|
|
50
|
-
|
|
51
|
-
await login(page, 'superadmin')
|
|
52
|
-
await page.goto(`/backend/catalog/categories/${categoryId}/edit`)
|
|
53
|
-
|
|
54
|
-
const widgetSection = page.locator('div').filter({
|
|
55
|
-
has: page.getByRole('link', { name: /Translation manager/ }),
|
|
56
|
-
}).filter({
|
|
57
|
-
has: page.getByRole('button', { name: 'Save translations' }),
|
|
58
|
-
}).last()
|
|
59
|
-
await expect(widgetSection).toBeVisible()
|
|
60
|
-
|
|
61
|
-
const deTab = widgetSection.getByRole('button', { name: 'DE' })
|
|
62
|
-
await deTab.click()
|
|
63
|
-
|
|
64
|
-
const translationInput = widgetSection.locator('table input').first()
|
|
65
|
-
await translationInput.fill('Kategorie QA')
|
|
66
|
-
|
|
67
|
-
await widgetSection.getByRole('button', { name: 'Save translations' }).click()
|
|
68
|
-
await expect(page.getByText('Translations saved').first()).toBeVisible()
|
|
69
|
-
|
|
70
|
-
const getResponse = await apiRequest(request, 'GET', `/api/translations/${ENTITY_TYPE}/${categoryId}`, { token: saToken })
|
|
71
|
-
expect(getResponse.ok()).toBeTruthy()
|
|
72
|
-
const body = (await getResponse.json()) as { translations: Record<string, Record<string, string>> }
|
|
73
|
-
expect(body.translations.de.name).toBe('Kategorie QA')
|
|
74
|
-
} finally {
|
|
75
|
-
await deleteTranslationIfExists(request, saToken, ENTITY_TYPE, categoryId)
|
|
76
|
-
await deleteCatalogCategoryIfExists(request, adminToken, categoryId)
|
|
77
|
-
await setLocales(request, adminToken, originalLocales).catch(() => {})
|
|
78
|
-
}
|
|
79
|
-
})
|
|
80
|
-
})
|